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