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