Move containers common volumes from yaql to list_concat
[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   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               list_concat:
121                 - {get_attr: [ContainersCommon, volumes]}
122                 -
123                   - /var/lib/kolla/config_files/swift_account_auditor.json:/var/lib/kolla/config_files/config.json:ro
124                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
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: *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_reaper.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             environment: *kolla_env
145           swift_account_replicator:
146             image: *swift_account_image
147             net: host
148             user: swift
149             restart: always
150             volumes:
151               list_concat:
152                 - {get_attr: [ContainersCommon, volumes]}
153                 -
154                   - /var/lib/kolla/config_files/swift_account_replicator.json:/var/lib/kolla/config_files/config.json:ro
155                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
156                   - /run:/run
157                   - /srv/node:/srv/node
158                   - /dev:/dev
159             environment: *kolla_env
160           swift_account_server:
161             image: *swift_account_image
162             net: host
163             user: swift
164             restart: always
165             volumes:
166               list_concat:
167                 - {get_attr: [ContainersCommon, volumes]}
168                 -
169                   - /var/lib/kolla/config_files/swift_account_server.json:/var/lib/kolla/config_files/config.json:ro
170                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
171                   - /run:/run
172                   - /srv/node:/srv/node
173                   - /dev:/dev
174             environment: *kolla_env
175           swift_container_auditor:
176             image: &swift_container_image
177               list_join:
178                 - '/'
179                 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftContainerImage} ]
180             net: host
181             user: swift
182             restart: always
183             volumes:
184               list_concat:
185                 - {get_attr: [ContainersCommon, volumes]}
186                 -
187                   - /var/lib/kolla/config_files/swift_container_auditor.json:/var/lib/kolla/config_files/config.json:ro
188                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
189                   - /run:/run
190                   - /srv/node:/srv/node
191                   - /dev:/dev
192             environment: *kolla_env
193           swift_container_replicator:
194             image: *swift_container_image
195             net: host
196             user: swift
197             restart: always
198             volumes:
199               list_concat:
200                 - {get_attr: [ContainersCommon, volumes]}
201                 -
202                   - /var/lib/kolla/config_files/swift_container_replicator.json:/var/lib/kolla/config_files/config.json:ro
203                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
204                   - /run:/run
205                   - /srv/node:/srv/node
206                   - /dev:/dev
207             environment: *kolla_env
208           swift_container_updater:
209             image: *swift_container_image
210             net: host
211             user: swift
212             restart: always
213             volumes:
214               list_concat:
215                 - {get_attr: [ContainersCommon, volumes]}
216                 -
217                   - /var/lib/kolla/config_files/swift_container_updater.json:/var/lib/kolla/config_files/config.json:ro
218                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
219                   - /run:/run
220                   - /srv/node:/srv/node
221                   - /dev:/dev
222             environment: *kolla_env
223           swift_container_server:
224             image: *swift_container_image
225             net: host
226             user: swift
227             restart: always
228             volumes:
229               list_concat:
230                 - {get_attr: [ContainersCommon, volumes]}
231                 -
232                   - /var/lib/kolla/config_files/swift_container_server.json:/var/lib/kolla/config_files/config.json:ro
233                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
234                   - /run:/run
235                   - /srv/node:/srv/node
236                   - /dev:/dev
237             environment: *kolla_env
238           swift_object_auditor:
239             image: &swift_object_image
240               list_join:
241                 - '/'
242                 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftObjectImage} ]
243             net: host
244             user: swift
245             restart: always
246             volumes:
247               list_concat:
248                 - {get_attr: [ContainersCommon, volumes]}
249                 -
250                   - /var/lib/kolla/config_files/swift_object_auditor.json:/var/lib/kolla/config_files/config.json:ro
251                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
252                   - /run:/run
253                   - /srv/node:/srv/node
254                   - /dev:/dev
255             environment: *kolla_env
256           swift_object_expirer:
257             image: *swift_proxy_image
258             net: host
259             user: swift
260             restart: always
261             volumes:
262               list_concat:
263                 - {get_attr: [ContainersCommon, volumes]}
264                 -
265                   - /var/lib/kolla/config_files/swift_object_expirer.json:/var/lib/kolla/config_files/config.json:ro
266                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
267                   - /run:/run
268                   - /srv/node:/srv/node
269                   - /dev:/dev
270             environment: *kolla_env
271           swift_object_replicator:
272             image: *swift_object_image
273             net: host
274             user: swift
275             restart: always
276             volumes:
277               list_concat:
278                 - {get_attr: [ContainersCommon, volumes]}
279                 -
280                   - /var/lib/kolla/config_files/swift_object_replicator.json:/var/lib/kolla/config_files/config.json:ro
281                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
282                   - /run:/run
283                   - /srv/node:/srv/node
284                   - /dev:/dev
285             environment: *kolla_env
286           swift_object_updater:
287             image: *swift_object_image
288             net: host
289             user: swift
290             restart: always
291             volumes:
292               list_concat:
293                 - {get_attr: [ContainersCommon, volumes]}
294                 -
295                   - /var/lib/kolla/config_files/swift_object_updater.json:/var/lib/kolla/config_files/config.json:ro
296                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
297                   - /run:/run
298                   - /srv/node:/srv/node
299                   - /dev:/dev
300             environment: *kolla_env
301           swift_object_server:
302             image: *swift_object_image
303             net: host
304             user: swift
305             restart: always
306             volumes:
307               list_concat:
308                 - {get_attr: [ContainersCommon, volumes]}
309                 -
310                   - /var/lib/kolla/config_files/swift_object_server.json:/var/lib/kolla/config_files/config.json:ro
311                   - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
312                   - /run:/run
313                   - /srv/node:/srv/node
314                   - /dev:/dev
315             environment: *kolla_env
316       host_prep_tasks:
317         - name: create /srv/node
318           file:
319             path: /srv/node
320             state: directory
321       upgrade_tasks:
322         - name: Stop and disable swift storage services
323           tags: step2
324           service: name={{ item }} state=stopped enabled=no
325           with_items:
326             - openstack-swift-account-auditor
327             - openstack-swift-account-reaper
328             - openstack-swift-account-replicator
329             - openstack-swift-account
330             - openstack-swift-container-auditor
331             - openstack-swift-container-replicator
332             - openstack-swift-container-updater
333             - openstack-swift-container
334             - openstack-swift-object-auditor
335             - openstack-swift-object-replicator
336             - openstack-swift-object-updater
337             - openstack-swift-object