instance-kumofs.cfg.in 4.81 KB
Newer Older
1 2
{% if software_type == slap_software_type -%}
{% set use_ipv6 = slapparameter_dict.get('use-ipv6', False) -%}
3 4 5 6 7 8 9 10
[buildout]
parts =
  publish-kumofs-connection-information
  kumofs-instance
  logrotate
  logrotate-entry-kumofs
  cron
  cron-entry-logrotate
11 12 13 14
  promise-kumofs-server
  promise-kumofs-server-listen
  promise-kumofs-gateway
  promise-kumofs-manager
15 16 17 18 19 20

eggs-directory = {{ eggs_directory }}
develop-eggs-directory = {{ develop_eggs_directory }}
offline = true

[publish-kumofs-connection-information]
21 22 23 24
recipe = slapos.cookbook:publish.serialised
{% if use_ipv6 -%}
url = memcached://[${kumofs-instance:ip}]:${kumofs-instance:gateway-port}/
{% else -%}
25
url = memcached://${kumofs-instance:ip}:${kumofs-instance:gateway-port}/
26
{% endif -%}
27 28 29 30 31

[kumofs-instance]
recipe = slapos.cookbook:generic.kumofs

# Network options
32 33 34 35
{% if use_ipv6 -%}
ip = ${slap-network-information:global-ipv6}
address-family = inet6
{% else -%}
36
ip = ${slap-network-information:local-ipv4}
37 38
address-family = inet4
{% endif -%}
Vincent Pelletier's avatar
Vincent Pelletier committed
39 40 41 42 43
{% set tcpv4_port = slapparameter_dict['tcpv4-port'] -%}
manager-port = {{ tcpv4_port }}
server-port = {{ tcpv4_port + 1 }}
server-listen-port = {{ tcpv4_port + 2 }}
gateway-port = {{ tcpv4_port + 3 }}
44 45 46
# Paths: Data
{% set ram_storage_size = slapparameter_dict.get('ram-storage-size') -%}
{% if ram_storage_size -%}
47
data-path = *#capsiz={{ ram_storage_size }}m
48 49 50
{% else -%}
data-directory = ${directory:kumofs-data}
{% endif -%}
51 52 53 54 55 56 57 58 59 60 61 62

# Paths: Running wrappers
gateway-wrapper = ${basedirectory:services}/kumofs_gateway
manager-wrapper = ${basedirectory:services}/kumofs_manager
server-wrapper = ${basedirectory:services}/kumofs_server

# Paths: Logs
kumo-gateway-log = ${basedirectory:log}/kumo-gateway.log
kumo-manager-log = ${basedirectory:log}/kumo-manager.log
kumo-server-log = ${basedirectory:log}/kumo-server.log

# Binary information
63 64 65 66
kumo-gateway-binary = {{ parameter_dict['kumo-location'] }}/bin/kumo-gateway
kumo-manager-binary = {{ parameter_dict['kumo-location'] }}/bin/kumo-manager
kumo-server-binary = {{ parameter_dict['kumo-location'] }}/bin/kumo-server
shell-path = {{ parameter_dict['dash-location'] }}/bin/dash
67 68 69 70 71

[logrotate-entry-kumofs]
<= logrotate
recipe = slapos.cookbook:logrotate.d
name = kumofs
72
log = ${kumofs-instance:kumo-gateway-log} ${kumofs-instance:kumo-manager-log} ${kumofs-instance:kumo-server-log}
73 74 75 76 77 78

# rest of parts are candidates for some generic stuff

[logrotate]
recipe = slapos.cookbook:logrotate
# Binaries
79 80 81
logrotate-binary = {{ parameter_dict['logrotate-location'] }}/usr/sbin/logrotate
gzip-binary = {{ parameter_dict['gzip-location'] }}/bin/gzip
gunzip-binary = {{ parameter_dict['gzip-location'] }}/bin/gunzip
82 83 84 85 86 87 88 89 90 91 92
# Directories
wrapper = ${rootdirectory:bin}/logrotate
conf = ${rootdirectory:etc}/logrotate.conf
logrotate-entries = ${directory:logrotate-entries}
backup = ${directory:logrotate-backup}
state-file = ${rootdirectory:srv}/logrotate.status

[basedirectory]
recipe = slapos.cookbook:mkdirectory
log = ${rootdirectory:var}/log
services = ${rootdirectory:etc}/run
93
promise = ${rootdirectory:etc}/promise
94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114
run = ${rootdirectory:var}/run
backup = ${rootdirectory:srv}/backup

[directory]
recipe = slapos.cookbook:mkdirectory
cron-entries = ${rootdirectory:etc}/cron.d
crontabs = ${rootdirectory:etc}/crontabs
cronstamps = ${rootdirectory:etc}/cronstamps
logrotate-backup = ${basedirectory:backup}/logrotate
logrotate-entries = ${rootdirectory:etc}/logrotate.d
kumofs-data = ${rootdirectory:srv}/kumofs

[rootdirectory]
recipe = slapos.cookbook:mkdirectory
etc = ${buildout:directory}/etc
var = ${buildout:directory}/var
srv = ${buildout:directory}/srv
bin = ${buildout:directory}/bin

[cron]
recipe = slapos.cookbook:cron
115
dcrond-binary = {{ parameter_dict['dcron-location'] }}/sbin/crond
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
cron-entries = ${directory:cron-entries}
crontabs = ${directory:crontabs}
cronstamps = ${directory:cronstamps}
catcher = ${cron-simplelogger:wrapper}
binary = ${basedirectory:services}/crond

[cron-simplelogger]
recipe = slapos.cookbook:simplelogger
wrapper = ${rootdirectory:bin}/cron_simplelogger
log = ${basedirectory:log}/cron.log

[cron-entry-logrotate]
<= cron
recipe = slapos.cookbook:cron.d
name = logrotate
frequency = 0 0 * * *
command = ${logrotate:wrapper}
133 134 135 136 137 138 139 140 141

# Deploy zope promises scripts
[promise-template]
recipe = slapos.cookbook:check_port_listening
hostname = ${kumofs-instance:ip}
port = ${kumofs-instance:server-listen-port}

[promise-kumofs-server]
<= promise-template
142
path = ${basedirectory:promise}/kumofs-server
143 144 145 146
port = ${kumofs-instance:server-port}

[promise-kumofs-server-listen]
<= promise-template
147
path = ${basedirectory:promise}/kumofs-server-listen
148 149 150 151
port = ${kumofs-instance:server-listen-port}

[promise-kumofs-gateway]
<= promise-template
152
path = ${basedirectory:promise}/kumofs-gateway
153 154 155 156
port = ${kumofs-instance:gateway-port}

[promise-kumofs-manager]
<= promise-template
157
path = ${basedirectory:promise}/kumofs-manager
158
port = ${kumofs-instance:manager-port}
159
{% endif %}