Commit 7179e81f authored by Vincent Pelletier's avatar Vincent Pelletier

varnish: Provide web-checker's required parameters.

Also, update documentation to state that web-checker can be disabled
altogether and that frontend-url is optional (it has a working default
value).
Also, provide replacements in frontend-url for easier configuration.
Also, stop depending on slap-network-information magical section.
parent 56b43b6d
...@@ -14,17 +14,24 @@ ...@@ -14,17 +14,24 @@
"description": "The backend url that varnish will cache", "description": "The backend url that varnish will cache",
"type": "string" "type": "string"
}, },
"web-checker-frontend-url": { "web-checker": {
"description": "The entry-point-url that web checker will check the HTTP headers of all links in the web site", "description": "Controls automated cache checker, disabled if null or empty"
"type": "string" "properties": {
}, "frontend-url": {
"web-checker-mail-address": { "description": "Override entry-point-url web checker will check the HTTP headers of all links in the web site, '%(ip)s' and '%(port)s' being substituted with varnish's listening ip and port, respectively",
"description": "Email address to which web checker result is sent", "default": "http://%(ip)s:%(port)s/",
"type": "string" "type": "string"
}, },
"web-checker-smtp-host": { "mail-address": {
"description": "The smtp server to be used to send the web checker result", "description": "Email address to which web checker result is sent",
"type": "string" "type": "string"
},
"smtp-host": {
"description": "The smtp server to be used to send the web checker result",
"type": "string"
}
},
"type": "object"
} }
} }
} }
{% set web_checker_parameter = slapparameter_dict['web-checker-mail-address'] -%}
{% set tcpv4_port = slapparameter_dict.get('tcpv4_port', 6001) -%} {% set tcpv4_port = slapparameter_dict.get('tcpv4_port', 6001) -%}
{% set ip = (ipv4_set | list)[0] %}
[buildout] [buildout]
parts = parts =
publish-varnish-connection-information publish-varnish-connection-information
varnish-instance varnish-instance
cron cron
cron-entry-logrotate cron-entry-logrotate
{# When web_checker related parameter is given, web_checker will be enabled.#} {# When web_checker related parameter is given, web_checker will be enabled.-#}
{% if web_checker_parameter is defined %} {% set web_checker_dict = slapparameter_dict.get('web-checker', {}) -%}
{% if web_checker_dict -%}
web-checker web-checker
cron-entry-web-checker cron-entry-web-checker
logrotate-entry-web-checker logrotate-entry-web-checker
{% endif %}
[cron-entry-web-checker]
<= cron
recipe = slapos.cookbook:cron.d
name = web-checker
frequency = 0 0 * * *
command = ${varnish-instance:web-checker} ${web-checker:web-checker-config}
[web-checker]
recipe = slapos.cookbook:webchecker
web-checker-config = ${rootdirectory:etc}/web_checker.cfg
web-checker-working-directory = ${directory:web-checker}
frontend-url = {{ web_checker_dict.get('frontend-url', 'http://%(ip)s:%(port)s/') % {
'ip': ip,
'port': tcpv4_port,
} -%}
mail-address = {{ web_checker_dict['mail-address'] }}
smtp-host = {{ web_checker_dict['smtp-host'] }}
wget-binary-path = {{ parameter_dict['wget'] }}/bin/wget
varnishlog-binary-path = ${varnish-instance:varnishlog-wrapper}
web-checker-log = ${basedirectory:log}/web-checker.log
[logrotate-entry-web-checker]
<= logrotate
recipe = slapos.cookbook:logrotate.d
name = web-checker
log = ${web-checker:web-checker-log}
frequency = daily
rotate-num = 30
sharedscripts = true
notifempty = true
create = true
{%- endif %}
eggs-directory = {{ eggs_directory }} eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }} develop-eggs-directory = {{ develop_eggs_directory }}
...@@ -26,7 +59,7 @@ recipe = slapos.cookbook:generic.varnish ...@@ -26,7 +59,7 @@ recipe = slapos.cookbook:generic.varnish
backend-url = {{ slapparameter_dict['backend-url'] }} backend-url = {{ slapparameter_dict['backend-url'] }}
# Network options # Network options
ip = ${slap-network-information:local-ipv4} ip = {{ ip }}
server-port = {{ tcpv4_port }} server-port = {{ tcpv4_port }}
manager-port = {{ tcpv4_port + 1 }} manager-port = {{ tcpv4_port + 1 }}
stunnel-port = {{ tcpv4_port + 2}} stunnel-port = {{ tcpv4_port + 2}}
...@@ -52,22 +85,6 @@ varnish-data = ${directory:varnish-data} ...@@ -52,22 +85,6 @@ varnish-data = ${directory:varnish-data}
varnish-instance-name = ${directory:varnish-instance} varnish-instance-name = ${directory:varnish-instance}
web-checker = {{ parameter_dict['buildout-bin-directory'] }}/web_checker_utility web-checker = {{ parameter_dict['buildout-bin-directory'] }}/web_checker_utility
[cron-entry-web-checker]
<= cron
recipe = slapos.cookbook:cron.d
name = web-checker
frequency = 0 0 * * *
command = ${varnish-instance:web-checker} ${web-checker:web-checker-config}
[web-checker]
recipe = slapos.cookbook:webchecker
web-checker-config = ${rootdirectory:etc}/web_checker.cfg
web-checker-working-directory = ${directory:web-checker}
frontend-url = ${varnish-instance:ip}:${varnish-instance:server-port}
wget-binary-path = {{ parameter_dict['wget'] }}/bin/wget
varnishlog-binary-path = ${varnish-instance:varnishlog-wrapper}
web-checker-log = ${basedirectory:log}/web-checker.log
[cron] [cron]
recipe = slapos.cookbook:cron recipe = slapos.cookbook:cron
dcrond-binary = {{ parameter_dict['dcron'] }}/sbin/crond dcrond-binary = {{ parameter_dict['dcron'] }}/sbin/crond
...@@ -102,17 +119,6 @@ logrotate-entries = ${directory:logrotate-entries} ...@@ -102,17 +119,6 @@ logrotate-entries = ${directory:logrotate-entries}
backup = ${directory:logrotate-backup} backup = ${directory:logrotate-backup}
state-file = ${rootdirectory:srv}/logrotate.status state-file = ${rootdirectory:srv}/logrotate.status
[logrotate-entry-web-checker]
<= logrotate
recipe = slapos.cookbook:logrotate.d
name = web-checker
log = ${web-checker:web-checker-log}
frequency = daily
rotate-num = 30
sharedscripts = true
notifempty = true
create = true
[basedirectory] [basedirectory]
recipe = slapos.cookbook:mkdirectory recipe = slapos.cookbook:mkdirectory
services = ${rootdirectory:etc}/run services = ${rootdirectory:etc}/run
......
...@@ -22,6 +22,7 @@ context = ...@@ -22,6 +22,7 @@ context =
key eggs_directory buildout:eggs-directory key eggs_directory buildout:eggs-directory
key develop_eggs_directory buildout:develop-eggs-directory key develop_eggs_directory buildout:develop-eggs-directory
key slapparameter_dict slap-parameters:configuration key slapparameter_dict slap-parameters:configuration
key ipv4_set slap-configuration:ipv4
${:extra-context} ${:extra-context}
[dynamic-template-varnish-parameters] [dynamic-template-varnish-parameters]
......
...@@ -71,7 +71,7 @@ context = ...@@ -71,7 +71,7 @@ context =
# XXX: "template.cfg" is hardcoded in instanciation recipe # XXX: "template.cfg" is hardcoded in instanciation recipe
filename = template.cfg filename = template.cfg
template = ${:_profile_base_location_}/instance.cfg.in template = ${:_profile_base_location_}/instance.cfg.in
md5sum = 6d84e8697eec80cea0f4a4635b720188 md5sum = 8b6296df7fc1e01820dd68ffe768694f
extra-context = extra-context =
key buildout_bin_directory buildout:bin-directory key buildout_bin_directory buildout:bin-directory
key dash_location dash:location key dash_location dash:location
...@@ -87,7 +87,7 @@ extra-context = ...@@ -87,7 +87,7 @@ extra-context =
[template-varnish] [template-varnish]
recipe = slapos.recipe.build:download recipe = slapos.recipe.build:download
url = ${:_profile_base_location_}/instance-varnish.cfg.in url = ${:_profile_base_location_}/instance-varnish.cfg.in
md5sum = 699d31010ec9924093dfdc8f4f40d341 md5sum = febb523b1cb1aff5214d6f07c78644bb
mode = 640 mode = 640
[eggs] [eggs]
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment