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