instance-kumofs.cfg.in 3.88 KB
Newer Older
1
{% set use_ipv6 = slapparameter_dict.get('use-ipv6', False) -%}
2
[buildout]
3 4 5
extends =
  {{ logrotate_cfg }}
  {{ parameter_dict['template-monitor'] }}
6
parts +=
7
  publish
8 9
  kumofs-instance
  logrotate-entry-kumofs
10
  resiliency-exclude-file
11 12 13 14
  promise-kumofs-server
  promise-kumofs-server-listen
  promise-kumofs-gateway
  promise-kumofs-manager
15
  promise-check-computer-memory
16

17
[publish]
18 19 20 21
recipe = slapos.cookbook:publish.serialised
{% if use_ipv6 -%}
url = memcached://[${kumofs-instance:ip}]:${kumofs-instance:gateway-port}/
{% else -%}
22
url = memcached://${kumofs-instance:ip}:${kumofs-instance:gateway-port}/
23
{% endif -%}
24
monitor-base-url = ${monitor-publish-parameters:monitor-base-url}
25 26 27 28 29

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

# Network options
30
{% if use_ipv6 -%}
31
ip = {{ (ipv6_set | list)[0] }}
32 33
address-family = inet6
{% else -%}
34
ip = {{ (ipv4_set | list)[0] }}
35 36 37 38 39 40 41 42 43 44 45 46
address-family = inet4
{% endif -%}
{% 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 }}
# Paths: Data
{% set ram_storage_size = slapparameter_dict.get('ram-storage-size') -%}
{% if ram_storage_size -%}
data-path = *#capsiz={{ ram_storage_size }}m
{% else -%}
47 48
# (with 10M buckets and HDBTLARGE option)
data-path = ${directory:kumofs-data}/kumodb.tch#bnum=10485760#opts=l
49
{% endif -%}
50 51

# Paths: Running wrappers
52 53 54
gateway-wrapper = ${directory:services}/kumofs_gateway
manager-wrapper = ${directory:services}/kumofs_manager
server-wrapper = ${directory:services}/kumofs_server
55 56

# Paths: Logs
57 58 59
kumo-gateway-log = ${directory:log}/kumo-gateway.log
kumo-manager-log = ${directory:log}/kumo-manager.log
kumo-server-log = ${directory:log}/kumo-server.log
60 61

# Binary information
62 63 64 65
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
66 67

[logrotate-entry-kumofs]
68
< = logrotate-entry-base
69
name = kumofs
70
log = ${kumofs-instance:kumo-gateway-log} ${kumofs-instance:kumo-manager-log} ${kumofs-instance:kumo-server-log}
71 72 73

[directory]
recipe = slapos.cookbook:mkdirectory
74 75 76
log = ${buildout:directory}/var/log
services = ${buildout:directory}/etc/run
promise = ${buildout:directory}/etc/promise
77 78
srv = ${buildout:directory}/srv
kumofs-data = ${:srv}/kumofs
79

80 81
[resiliency-exclude-file]
# Generate rdiff exclude file in case of resiliency
82 83 84 85
recipe = slapos.recipe.template:jinja2
mode = 644
template = {{ 'inline:{{ "**\\n" }}' }}
rendered = ${directory:srv}/exporter.exclude
86

87 88 89 90 91 92 93 94
# 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
95
path = ${directory:promise}/kumofs-server
96 97 98 99
port = ${kumofs-instance:server-port}

[promise-kumofs-server-listen]
<= promise-template
100
path = ${directory:promise}/kumofs-server-listen
101 102 103 104
port = ${kumofs-instance:server-listen-port}

[promise-kumofs-gateway]
<= promise-template
105
path = ${directory:promise}/kumofs-gateway
106 107 108 109
port = ${kumofs-instance:gateway-port}

[promise-kumofs-manager]
<= promise-template
110
path = ${directory:promise}/kumofs-manager
111
port = ${kumofs-instance:manager-port}
112

113 114 115 116 117
[promise-check-computer-memory]
recipe = slapos.cookbook:wrapper
wrapper-path = ${directory:promise}/check-computer-memory
command-line = "{{ parameter_dict["check-computer-memory-binary"] }}" -db ${monitor-instance-parameter:collector-db} --threshold "{{ slapparameter_dict["computer-memory-percent-threshold"] }}" --unit percent

118 119 120
[monitor-instance-parameter]
monitor-httpd-ipv6 = {{ (ipv6_set | list)[0] }}
monitor-httpd-port = {{ tcpv4_port + 4 }}
121
monitor-title = {{ slapparameter_dict['name'] }}
122
password = {{ slapparameter_dict['monitor-passwd'] }}