Add promises on lxc SR
[slapos.git] / software / lxc / instance-lxc.cfg
1 [buildout]
2
3 eggs-directory = ${buildout:eggs-directory}
4 develop-eggs-directory = ${buildout:develop-eggs-directory}
5 offline = true
6
7 parts =
8     publish
9     rootfs
10     uuid
11     lxc-conf
12     shellinabox
13     certificate-authority
14     ca-shellinabox
15     container-promise
16     shellinabox-promise
17     rootfs-promise
18
19
20 [rootdirectory]
21 recipe = slapos.cookbook:mkdirectory
22 etc = $${buildout:directory}/etc
23 tmp = $${buildout:directory}/tmp
24 srv = $${buildout:directory}/srv
25 bin = $${buildout:directory}/bin
26
27 [basedirectory]
28 recipe = slapos.cookbook:mkdirectory
29 services = $${rootdirectory:etc}/run
30 promises = $${rootdirectory:etc}/promise
31
32 [directory]
33 recipe = slapos.cookbook:mkdirectory
34 shellinabox = $${rootdirectory:srv}/shellinabox/
35 ca-dir = $${rootdirectory:srv}/ca/
36
37 [cadirectory]
38 recipe = slapos.cookbook:mkdirectory
39 requests = $${directory:ca-dir}/requests/
40 private = $${directory:ca-dir}/private/
41 certs = $${directory:ca-dir}/certs/
42 newcerts = $${directory:ca-dir}/newcerts/
43 crl = $${directory:ca-dir}/crl/
44
45 [cadirectory]
46 recipe = slapos.cookbook:mkdirectory
47 requests = $${directory:ca-dir}/requests/
48 private = $${directory:ca-dir}/private/
49 certs = $${directory:ca-dir}/certs/
50 newcerts = $${directory:ca-dir}/newcerts/
51 crl = $${directory:ca-dir}/crl/
52
53 [rootfs]
54 recipe = slapos.cookbook:downloader
55 url = $${slap-parameter:rootfs}
56 md5sum = $${slap-parameter:rootfs-md5sum}
57 downloaded-file = $${rootdirectory:srv}/rootfs.img
58 downloaded-file-complete = $${:downloaded-file}.complete
59 binary = $${basedirectory:services}/rootfsdownload
60 path = ${tar:location}/bin/:${gzip:location}/bin/:${bzip2:location}/bin/:${xz-utils:location}/bin/
61 archive = true
62
63 [lxc-conf]
64 recipe = slapos.recipe.template
65 url = ${lxc-conf-in:location}/${lxc-conf-in:filename}
66 output = $${rootdirectory:etc}/lxc.conf
67 bridge = !!BRIDGE_NAME!!
68 interface = lxc$${slap-network-information:network-interface}
69
70 [passwd]
71 recipe = slapos.cookbook:pwgen
72 file = $${buildout:directory}/.password
73 pwgen-binary = ${pwgen:location}/bin/pwgen
74
75 [shellinabox]
76 recipe = slapos.cookbook:shellinabox
77 ipv6 = $${slap-network-information:global-ipv6}
78 port = 8080
79 shell = ${lxc:location}/bin/lxc-console -n $${uuid:uuid}
80 wrapper = $${rootdirectory:bin}/shellinaboxd_raw
81 shellinabox-binary = ${shellinabox:location}/bin/shellinaboxd
82 password = $${passwd:password}
83 directory = $${buildout:directory}/
84 login-shell = $${rootdirectory:bin}/login
85 certificate-directory = $${directory:shellinabox}
86 cert-file = $${directory:shellinabox}/public.crt
87 key-file = $${directory:shellinabox}/private.key
88
89 [ca-shellinabox]
90 <= certificate-authority
91 recipe = slapos.cookbook:certificate_authority.request
92 executable = $${shellinabox:wrapper}
93 wrapper = $${rootdirectory:bin}/shellinaboxd
94 key-file = $${shellinabox:key-file}
95 cert-file = $${shellinabox:cert-file}
96
97 [certificate-authority]
98 recipe = slapos.cookbook:certificate_authority
99 openssl-binary = ${openssl:location}/bin/openssl
100 ca-dir = $${directory:ca-dir}
101 requests-directory = $${cadirectory:requests}
102 wrapper = $${basedirectory:services}/ca
103 ca-private = $${cadirectory:private}
104 ca-certs = $${cadirectory:certs}
105 ca-newcerts = $${cadirectory:newcerts}
106 ca-crl = $${cadirectory:crl}
107
108 [ca-shellinabox]
109 <= certificate-authority
110 recipe = slapos.cookbook:certificate_authority.request
111 executable = $${shellinabox:wrapper}
112 wrapper = $${rootdirectory:bin}/shellinaboxd
113 key-file = $${shellinabox:key-file}
114 cert-file = $${shellinabox:cert-file}
115
116 [uuid]
117 recipe = slapos.cookbook:uuid
118 cache-file = $${buildout:directory}/.slapcontainername
119
120 [publish]
121 recipe = slapos.cookbook:publish
122 url = https://[$${shellinabox:ipv6}]:$${shellinabox:port}/
123 password = $${shellinabox:password}
124
125 [template-promise-state]
126 recipe = slapos.recipe.template
127 url = ${promise-state:location}/${promise-state:filename}
128 bash = ${bash:location}/bin/bash
129 test-binary = ${coreutils:location}/bin/test
130 cat = ${coreutils:location}/bin/cat
131 value = started
132 mode = 700
133
134 [container-promise]
135 <= template-promise-state
136 output = $${basedirectory:promises}/slapcontainer
137 file = $${buildout:directory}/.slapcontainer.state
138
139 [shellinabox-promise]
140 <= template-promise-state
141 output = $${basedirectory:promises}/shellinabox
142 file = $${buildout:directory}/.shellinabox.state
143
144 [rootfs-promise]
145 recipe = slapos.recipe.template
146 url = ${promise-exists:location}/${promise-exists:filename}
147 output = $${basedirectory:promises}/rootfs
148 bash = ${bash:location}/bin/bash
149 test-binary = ${coreutils:location}/bin/test
150 file = $${rootfs:downloaded-file-complete}
151 mode = 700
152
153 [slap-parameter]
154 rootfs-md5sum =