Add missing xinetd/rsync container for Swift
[apex-tripleo-heat-templates.git] / docker / services / swift-storage.yaml
1 heat_template_version: pike
2
3 description: >
4   OpenStack containerized Swift Storage services.
5
6 parameters:
7   DockerNamespace:
8     description: namespace
9     default: 'tripleoupstream'
10     type: string
11   DockerSwiftProxyImage:
12     description: image
13     default: 'centos-binary-swift-proxy-server:latest'
14     type: string
15   DockerSwiftAccountImage:
16     description: image
17     default: 'centos-binary-swift-account:latest'
18     type: string
19   DockerSwiftContainerImage:
20     description: image
21     default: 'centos-binary-swift-container:latest'
22     type: string
23   DockerSwiftObjectImage:
24     description: image
25     default: 'centos-binary-swift-object:latest'
26     type: string
27   EndpointMap:
28     default: {}
29     description: Mapping of service endpoint -> protocol. Typically set
30                  via parameter_defaults in the resource registry.
31     type: json
32   DefaultPasswords:
33     default: {}
34     type: json
35   RoleName:
36     default: ''
37     description: Role name on which the service is applied
38     type: string
39   RoleParameters:
40     default: {}
41     description: Parameters specific to the role
42     type: json
43   ServiceNetMap:
44     default: {}
45     description: Mapping of service_name -> network name. Typically set
46                  via parameter_defaults in the resource registry.  This
47                  mapping overrides those in ServiceNetMapDefaults.
48     type: json
49
50 resources:
51
52   ContainersCommon:
53     type: ./containers-common.yaml
54
55   SwiftStorageBase:
56     type: ../../puppet/services/swift-storage.yaml
57     properties:
58       EndpointMap: {get_param: EndpointMap}
59       ServiceNetMap: {get_param: ServiceNetMap}
60       DefaultPasswords: {get_param: DefaultPasswords}
61       RoleName: {get_param: RoleName}
62       RoleParameters: {get_param: RoleParameters}
63
64 outputs:
65   role_data:
66     description: Role data for the swift storage services.
67     value:
68       service_name: {get_attr: [SwiftStorageBase, role_data, service_name]}
69       config_settings: {get_attr: [SwiftStorageBase, role_data, config_settings]}
70       step_config: &step_config
71         get_attr: [SwiftStorageBase, role_data, step_config]
72       service_config_settings: {get_attr: [SwiftStorageBase, role_data, service_config_settings]}
73       # BEGIN DOCKER SETTINGS
74       puppet_config:
75         config_volume: swift
76         puppet_tags: swift_config,swift_container_config,swift_container_sync_realms_config,swift_account_config,swift_object_config,swift_object_expirer_config,rsync::server
77         step_config: *step_config
78         config_image: &swift_proxy_image
79           list_join:
80             - '/'
81             - [ {get_param: DockerNamespace}, {get_param: DockerSwiftProxyImage} ]
82       kolla_config:
83         /var/lib/kolla/config_files/swift_account_auditor.json:
84           command: /usr/bin/swift-account-auditor /etc/swift/account-server.conf
85         /var/lib/kolla/config_files/swift_account_reaper.json:
86           command: /usr/bin/swift-account-reaper /etc/swift/account-server.conf
87         /var/lib/kolla/config_files/swift_account_replicator.json:
88           command: /usr/bin/swift-account-replicator /etc/swift/account-server.conf
89         /var/lib/kolla/config_files/swift_account_server.json:
90           command: /usr/bin/swift-account-server /etc/swift/account-server.conf
91         /var/lib/kolla/config_files/swift_container_auditor.json:
92           command: /usr/bin/swift-container-auditor /etc/swift/container-server.conf
93         /var/lib/kolla/config_files/swift_container_replicator.json:
94           command: /usr/bin/swift-container-replicator /etc/swift/container-server.conf
95         /var/lib/kolla/config_files/swift_container_updater.json:
96           command: /usr/bin/swift-container-updater /etc/swift/container-server.conf
97         /var/lib/kolla/config_files/swift_container_server.json:
98           command: /usr/bin/swift-container-server /etc/swift/container-server.conf
99         /var/lib/kolla/config_files/swift_object_auditor.json:
100           command: /usr/bin/swift-object-auditor /etc/swift/object-server.conf
101         /var/lib/kolla/config_files/swift_object_expirer.json:
102           command: /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
103         /var/lib/kolla/config_files/swift_object_replicator.json:
104           command: /usr/bin/swift-object-replicator /etc/swift/object-server.conf
105         /var/lib/kolla/config_files/swift_object_updater.json:
106           command: /usr/bin/swift-object-updater /etc/swift/object-server.conf
107         /var/lib/kolla/config_files/swift_object_server.json:
108           command: /usr/bin/swift-object-server /etc/swift/object-server.conf
109           permissions:
110             - path: /var/log/swift
111               owner: swift:swift
112               recurse: true
113         /var/lib/kolla/config_files/swift_xinetd_rsync.json:
114           command: /usr/sbin/xinetd -dontfork
115       docker_config:
116         step_3:
117           # The puppet config sets this up but we don't have a way to mount the named
118           # volume during the configuration stage.  We just need to create this
119           # directory and make sure it's owned by swift.
120           swift_setup_srv:
121             image: &swift_account_image
122               list_join:
123                 - '/'
124                 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftAccountImage} ]
125             user: root
126             command: ['chown', '-R', 'swift:', '/srv/node']
127             volumes:
128               - /srv/node:/srv/node
129         step_4:
130           swift_account_auditor:
131             image: *swift_account_image
132             net: host
133             user: swift
134             restart: always
135             volumes:
136               list_concat:
137                 - {get_attr: [ContainersCommon, volumes]}
138                 -
139                   - /var/lib/kolla/config_files/swift_account_auditor.json:/var/lib/kolla/config_files/config.json:ro
140                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
141                   - /run:/run
142                   - /srv/node:/srv/node
143                   - /dev:/dev
144                   - /var/log/containers/swift:/var/log/swift
145             environment: &kolla_env
146               - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
147           swift_account_reaper:
148             image: *swift_account_image
149             net: host
150             user: swift
151             restart: always
152             volumes:
153               list_concat:
154                 - {get_attr: [ContainersCommon, volumes]}
155                 -
156                   - /var/lib/kolla/config_files/swift_account_reaper.json:/var/lib/kolla/config_files/config.json:ro
157                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
158                   - /run:/run
159                   - /srv/node:/srv/node
160                   - /dev:/dev
161                   - /var/log/containers/swift:/var/log/swift
162             environment: *kolla_env
163           swift_account_replicator:
164             image: *swift_account_image
165             net: host
166             user: swift
167             restart: always
168             volumes:
169               list_concat:
170                 - {get_attr: [ContainersCommon, volumes]}
171                 -
172                   - /var/lib/kolla/config_files/swift_account_replicator.json:/var/lib/kolla/config_files/config.json:ro
173                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
174                   - /run:/run
175                   - /srv/node:/srv/node
176                   - /dev:/dev
177                   - /var/log/containers/swift:/var/log/swift
178             environment: *kolla_env
179           swift_account_server:
180             image: *swift_account_image
181             net: host
182             user: swift
183             restart: always
184             volumes:
185               list_concat:
186                 - {get_attr: [ContainersCommon, volumes]}
187                 -
188                   - /var/lib/kolla/config_files/swift_account_server.json:/var/lib/kolla/config_files/config.json:ro
189                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
190                   - /run:/run
191                   - /srv/node:/srv/node
192                   - /dev:/dev
193                   - /var/log/containers/swift:/var/log/swift
194             environment: *kolla_env
195           swift_container_auditor:
196             image: &swift_container_image
197               list_join:
198                 - '/'
199                 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftContainerImage} ]
200             net: host
201             user: swift
202             restart: always
203             volumes:
204               list_concat:
205                 - {get_attr: [ContainersCommon, volumes]}
206                 -
207                   - /var/lib/kolla/config_files/swift_container_auditor.json:/var/lib/kolla/config_files/config.json:ro
208                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
209                   - /run:/run
210                   - /srv/node:/srv/node
211                   - /dev:/dev
212                   - /var/log/containers/swift:/var/log/swift
213             environment: *kolla_env
214           swift_container_replicator:
215             image: *swift_container_image
216             net: host
217             user: swift
218             restart: always
219             volumes:
220               list_concat:
221                 - {get_attr: [ContainersCommon, volumes]}
222                 -
223                   - /var/lib/kolla/config_files/swift_container_replicator.json:/var/lib/kolla/config_files/config.json:ro
224                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
225                   - /run:/run
226                   - /srv/node:/srv/node
227                   - /dev:/dev
228                   - /var/log/containers/swift:/var/log/swift
229             environment: *kolla_env
230           swift_container_updater:
231             image: *swift_container_image
232             net: host
233             user: swift
234             restart: always
235             volumes:
236               list_concat:
237                 - {get_attr: [ContainersCommon, volumes]}
238                 -
239                   - /var/lib/kolla/config_files/swift_container_updater.json:/var/lib/kolla/config_files/config.json:ro
240                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
241                   - /run:/run
242                   - /srv/node:/srv/node
243                   - /dev:/dev
244                   - /var/log/containers/swift:/var/log/swift
245             environment: *kolla_env
246           swift_container_server:
247             image: *swift_container_image
248             net: host
249             user: swift
250             restart: always
251             volumes:
252               list_concat:
253                 - {get_attr: [ContainersCommon, volumes]}
254                 -
255                   - /var/lib/kolla/config_files/swift_container_server.json:/var/lib/kolla/config_files/config.json:ro
256                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
257                   - /run:/run
258                   - /srv/node:/srv/node
259                   - /dev:/dev
260                   - /var/log/containers/swift:/var/log/swift
261             environment: *kolla_env
262           swift_object_auditor:
263             image: &swift_object_image
264               list_join:
265                 - '/'
266                 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftObjectImage} ]
267             net: host
268             user: swift
269             restart: always
270             volumes:
271               list_concat:
272                 - {get_attr: [ContainersCommon, volumes]}
273                 -
274                   - /var/lib/kolla/config_files/swift_object_auditor.json:/var/lib/kolla/config_files/config.json:ro
275                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
276                   - /run:/run
277                   - /srv/node:/srv/node
278                   - /dev:/dev
279                   - /var/log/containers/swift:/var/log/swift
280             environment: *kolla_env
281           swift_object_expirer:
282             image: *swift_proxy_image
283             net: host
284             user: swift
285             restart: always
286             volumes:
287               list_concat:
288                 - {get_attr: [ContainersCommon, volumes]}
289                 -
290                   - /var/lib/kolla/config_files/swift_object_expirer.json:/var/lib/kolla/config_files/config.json:ro
291                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
292                   - /run:/run
293                   - /srv/node:/srv/node
294                   - /dev:/dev
295                   - /var/log/containers/swift:/var/log/swift
296             environment: *kolla_env
297           swift_object_replicator:
298             image: *swift_object_image
299             net: host
300             user: swift
301             restart: always
302             volumes:
303               list_concat:
304                 - {get_attr: [ContainersCommon, volumes]}
305                 -
306                   - /var/lib/kolla/config_files/swift_object_replicator.json:/var/lib/kolla/config_files/config.json:ro
307                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
308                   - /run:/run
309                   - /srv/node:/srv/node
310                   - /dev:/dev
311                   - /var/log/containers/swift:/var/log/swift
312             environment: *kolla_env
313           swift_object_updater:
314             image: *swift_object_image
315             net: host
316             user: swift
317             restart: always
318             volumes:
319               list_concat:
320                 - {get_attr: [ContainersCommon, volumes]}
321                 -
322                   - /var/lib/kolla/config_files/swift_object_updater.json:/var/lib/kolla/config_files/config.json:ro
323                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
324                   - /run:/run
325                   - /srv/node:/srv/node
326                   - /dev:/dev
327                   - /var/log/containers/swift:/var/log/swift
328             environment: *kolla_env
329           swift_object_server:
330             image: *swift_object_image
331             net: host
332             user: swift
333             restart: always
334             volumes:
335               list_concat:
336                 - {get_attr: [ContainersCommon, volumes]}
337                 -
338                   - /var/lib/kolla/config_files/swift_object_server.json:/var/lib/kolla/config_files/config.json:ro
339                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
340                   - /run:/run
341                   - /srv/node:/srv/node
342                   - /dev:/dev
343                   - /var/log/containers/swift:/var/log/swift
344             environment: *kolla_env
345           swift_xinetd_rsync:
346             image: *swift_object_image
347             net: host
348             user: root
349             restart: always
350             privileged: true
351             volumes:
352               list_concat:
353                 - {get_attr: [ContainersCommon, volumes]}
354                 -
355                   - /var/lib/kolla/config_files/swift_xinetd_rsync.json:/var/lib/kolla/config_files/config.json:ro
356                   - /var/lib/config-data/swift/etc:/etc
357                   - /run:/run
358                   - /srv/node:/srv/node
359                   - /dev:/dev
360                   - /var/log/containers/swift:/var/log/swift
361             environment: *kolla_env
362
363       host_prep_tasks:
364         - name: create persistent directories
365           file:
366             path: "{{ item }}"
367             state: directory
368           with_items:
369             - /var/log/containers/swift
370             - /srv/node
371       upgrade_tasks:
372         - name: Stop and disable swift storage services
373           tags: step2
374           service: name={{ item }} state=stopped enabled=no
375           with_items:
376             - openstack-swift-account-auditor
377             - openstack-swift-account-reaper
378             - openstack-swift-account-replicator
379             - openstack-swift-account
380             - openstack-swift-container-auditor
381             - openstack-swift-container-replicator
382             - openstack-swift-container-updater
383             - openstack-swift-container
384             - openstack-swift-object-auditor
385             - openstack-swift-object-replicator
386             - openstack-swift-object-updater
387             - openstack-swift-object