instance.cfg.in 3.1 KB
Newer Older
1 2 3 4
[buildout]
parts =
  nginx-service
  runTestSuite-instance
5
  promises
6
  publish
7 8 9 10 11
eggs-directory = ${buildout:eggs-directory}
develop-eggs-directory = ${buildout:develop-eggs-directory}
offline = true

[publish]
12
recipe = slapos.cookbook:publish.serialised
13 14 15 16 17 18 19 20 21 22 23 24 25
nginx = http://[$${nginx-configuration:ip}]:$${nginx-configuration:port}/

[directory]
recipe = slapos.cookbook:mkdirectory
etc = $${buildout:directory}/etc
bin = $${buildout:directory}/bin
srv = $${buildout:directory}/srv
var = $${buildout:directory}/var
run = $${:var}/run
log = $${:var}/log
varnginx = $${:var}/nginx
scripts = $${:etc}/run
services = $${:etc}/service
26
promise = $${:etc}/promise
27 28 29 30 31 32
www = $${:srv}/www
home = $${:etc}/home
ssl = $${:etc}/ssl
framebuffer = $${:srv}/framebuffer

#################################
33
# Test runner
34 35 36 37 38
#################################
[runTestSuite-instance]
recipe = slapos.recipe.template
url = ${template-runTestSuite:output}
output = $${directory:bin}/runTestSuite
39
buildout-directory = $${buildout:directory}
40 41
mode = 0700

42 43 44 45 46 47 48 49 50
[runTestSuite-config-file]
recipe = slapos.recipe.template:jinja2
rendered = $${directory:etc}/$${:_buildout_section_name_}.json
template = inline:
  $${instance-parameter:configuration._}

#################################
# Xvfb / Firefox
#################################
51
[xvfb-instance]
52 53 54 55
recipe = slapos.cookbook:wrapper
wrapper-path = $${directory:services}/$${:_buildout_section_name_}
command-line =
  ${xserver:location}/bin/Xvfb
56
    :$${:display}
57 58 59 60 61
    -screen 0 1024x768x24
    -fbdir $${directory:framebuffer}
environment =
  XORG_LOCK_DIR=$${:lock-dir}

62
display = 0
63 64
lock-dir = $${directory:run}

65 66 67 68 69
[xvfb-promise]
recipe = slapos.cookbook:wrapper
wrapper-path = $${directory:promise}/$${:_buildout_section_name_}
command-line = bash -c "[ -S $${xvfb-instance:lock-dir}/.X11-unix/X$${xvfb-instance:display} ]"

70 71 72 73 74 75 76 77 78

#################################
# Nginx service
#################################
[nginx-service]
recipe = slapos.recipe.template
url = ${template-nginx-service:output}
output = $${directory:services}/nginx
mode = 0700
79
virtual-depends =
80 81 82 83 84 85 86 87 88
  $${nginx-configuration:ip}

[nginx-configuration]
recipe = slapos.recipe.template
url = ${template-nginx-configuration:output}
output = $${directory:etc}/nginx.cfg
mode = 0600
access_log = $${directory:log}/nginx-access.log
error_log = $${directory:log}/nginx-error.log
Ivan Tyagov's avatar
Ivan Tyagov committed
89
ip = $${instance-parameter:ipv6-random}
90 91 92 93 94
port = 9443
ssl_key = $${directory:ssl}/nginx.key
ssl_csr = $${directory:ssl}/nginx.csr
ssl_crt = $${directory:ssl}/nginx.crt

95 96 97 98 99 100 101
[nginx-listen-promise]
recipe = slapos.cookbook:check_port_listening
path = $${directory:promise}/$${:_buildout_section_name_}
hostname = $${nginx-configuration:ip}
port = $${nginx-configuration:port}


102 103 104
#################################
# SlapOS service
#################################
Ivan Tyagov's avatar
Ivan Tyagov committed
105
[instance-parameter]
106
recipe = slapos.cookbook:slapconfiguration
107 108 109 110 111
computer = $${slap-connection:computer-id}
partition = $${slap-connection:partition-id}
url = $${slap-connection:server-url}
key = $${slap-connection:key-file}
cert = $${slap-connection:cert-file}
112 113 114 115 116 117 118
configuration._ = {}

[promises]
recipe =
depends =
  $${nginx-listen-promise:recipe}
  $${xvfb-promise:recipe}