1 heat_template_version: pike
4 OpenStack containerized Swift Storage services.
10 DockerSwiftAccountImage:
13 DockerSwiftContainerImage:
16 DockerSwiftObjectImage:
19 DockerSwiftConfigImage:
20 description: The container image to use for the swift config_volume
21 default: 'centos-binary-swift-proxy-server:latest'
25 description: Mapping of service endpoint -> protocol. Typically set
26 via parameter_defaults in the resource registry.
33 description: Role name on which the service is applied
37 description: Parameters specific to the role
41 description: Dictionary packing service data
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.
51 description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})'
53 UpgradeRemoveUnusedPackages:
55 description: Remove package if the service is being disabled during upgrade
61 type: ./containers-common.yaml
64 type: ../../puppet/services/swift-storage.yaml
66 EndpointMap: {get_param: EndpointMap}
67 ServiceData: {get_param: ServiceData}
68 ServiceNetMap: {get_param: ServiceNetMap}
69 DefaultPasswords: {get_param: DefaultPasswords}
70 RoleName: {get_param: RoleName}
71 RoleParameters: {get_param: RoleParameters}
75 description: Role data for the swift storage services.
77 service_name: {get_attr: [SwiftStorageBase, role_data, service_name]}
80 - {get_attr: [SwiftStorageBase, role_data, config_settings]}
81 # FIXME (cschwede): re-enable this once checks works inside containers
82 - swift::storage::all::mount_check: false
83 logging_source: {get_attr: [SwiftStorageBase, role_data, logging_source]}
84 logging_groups: {get_attr: [SwiftStorageBase, role_data, logging_groups]}
85 step_config: &step_config
88 - - {get_attr: [SwiftStorageBase, role_data, step_config]}
90 service_config_settings: {get_attr: [SwiftStorageBase, role_data, service_config_settings]}
91 # BEGIN DOCKER SETTINGS
94 puppet_tags: swift_config,swift_container_config,swift_container_sync_realms_config,swift_account_config,swift_object_config,swift_object_expirer_config,rsync::server
95 step_config: *step_config
96 config_image: {get_param: DockerSwiftConfigImage}
98 /var/lib/kolla/config_files/swift_account_auditor.json:
99 command: /usr/bin/swift-account-auditor /etc/swift/account-server.conf
101 - source: "/var/lib/kolla/config_files/src/*"
104 preserve_properties: true
105 /var/lib/kolla/config_files/swift_account_reaper.json:
106 command: /usr/bin/swift-account-reaper /etc/swift/account-server.conf
108 - source: "/var/lib/kolla/config_files/src/*"
111 preserve_properties: true
112 /var/lib/kolla/config_files/swift_account_replicator.json:
113 command: /usr/bin/swift-account-replicator /etc/swift/account-server.conf
115 - source: "/var/lib/kolla/config_files/src/*"
118 preserve_properties: true
119 /var/lib/kolla/config_files/swift_account_server.json:
120 command: /usr/bin/swift-account-server /etc/swift/account-server.conf
122 - source: "/var/lib/kolla/config_files/src/*"
125 preserve_properties: true
126 /var/lib/kolla/config_files/swift_container_auditor.json:
127 command: /usr/bin/swift-container-auditor /etc/swift/container-server.conf
129 - source: "/var/lib/kolla/config_files/src/*"
132 preserve_properties: true
133 /var/lib/kolla/config_files/swift_container_replicator.json:
134 command: /usr/bin/swift-container-replicator /etc/swift/container-server.conf
136 - source: "/var/lib/kolla/config_files/src/*"
139 preserve_properties: true
140 /var/lib/kolla/config_files/swift_container_updater.json:
141 command: /usr/bin/swift-container-updater /etc/swift/container-server.conf
143 - source: "/var/lib/kolla/config_files/src/*"
146 preserve_properties: true
147 /var/lib/kolla/config_files/swift_container_server.json:
148 command: /usr/bin/swift-container-server /etc/swift/container-server.conf
150 - source: "/var/lib/kolla/config_files/src/*"
153 preserve_properties: true
154 /var/lib/kolla/config_files/swift_object_auditor.json:
155 command: /usr/bin/swift-object-auditor /etc/swift/object-server.conf
157 - source: "/var/lib/kolla/config_files/src/*"
160 preserve_properties: true
161 /var/lib/kolla/config_files/swift_object_expirer.json:
162 command: /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
164 - source: "/var/lib/kolla/config_files/src/*"
167 preserve_properties: true
168 /var/lib/kolla/config_files/swift_object_replicator.json:
169 command: /usr/bin/swift-object-replicator /etc/swift/object-server.conf
171 - source: "/var/lib/kolla/config_files/src/*"
174 preserve_properties: true
175 /var/lib/kolla/config_files/swift_object_updater.json:
176 command: /usr/bin/swift-object-updater /etc/swift/object-server.conf
178 - source: "/var/lib/kolla/config_files/src/*"
181 preserve_properties: true
182 /var/lib/kolla/config_files/swift_object_server.json:
183 command: /usr/bin/swift-object-server /etc/swift/object-server.conf
185 - source: "/var/lib/kolla/config_files/src/*"
188 preserve_properties: true
190 - path: /var/log/swift
193 /var/lib/kolla/config_files/swift_rsync.json:
194 command: /usr/bin/rsync --daemon --no-detach --config=/etc/rsyncd.conf
196 - source: "/var/lib/kolla/config_files/src/*"
199 preserve_properties: true
202 # The puppet config sets this up but we don't have a way to mount the named
203 # volume during the configuration stage. We just need to create this
204 # directory and make sure it's owned by swift.
206 image: &swift_account_image {get_param: DockerSwiftAccountImage}
208 command: ['chown', '-R', 'swift:', '/srv/node']
210 - /srv/node:/srv/node
212 swift_account_auditor:
213 image: *swift_account_image
219 - {get_attr: [ContainersCommon, volumes]}
221 - /var/lib/kolla/config_files/swift_account_auditor.json:/var/lib/kolla/config_files/config.json:ro
222 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
224 - /srv/node:/srv/node
226 - /var/log/containers/swift:/var/log/swift
227 environment: &kolla_env
228 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
229 swift_account_reaper:
230 image: *swift_account_image
236 - {get_attr: [ContainersCommon, volumes]}
238 - /var/lib/kolla/config_files/swift_account_reaper.json:/var/lib/kolla/config_files/config.json:ro
239 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
241 - /srv/node:/srv/node
243 - /var/log/containers/swift:/var/log/swift
244 environment: *kolla_env
245 swift_account_replicator:
246 image: *swift_account_image
252 - {get_attr: [ContainersCommon, volumes]}
254 - /var/lib/kolla/config_files/swift_account_replicator.json:/var/lib/kolla/config_files/config.json:ro
255 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
257 - /srv/node:/srv/node
259 - /var/log/containers/swift:/var/log/swift
260 environment: *kolla_env
261 swift_account_server:
262 image: *swift_account_image
268 - {get_attr: [ContainersCommon, volumes]}
270 - /var/lib/kolla/config_files/swift_account_server.json:/var/lib/kolla/config_files/config.json:ro
271 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
273 - /srv/node:/srv/node
275 - /var/log/containers/swift:/var/log/swift
276 environment: *kolla_env
277 swift_container_auditor:
278 image: &swift_container_image {get_param: DockerSwiftContainerImage}
284 - {get_attr: [ContainersCommon, volumes]}
286 - /var/lib/kolla/config_files/swift_container_auditor.json:/var/lib/kolla/config_files/config.json:ro
287 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
289 - /srv/node:/srv/node
291 - /var/log/containers/swift:/var/log/swift
292 environment: *kolla_env
293 swift_container_replicator:
294 image: *swift_container_image
300 - {get_attr: [ContainersCommon, volumes]}
302 - /var/lib/kolla/config_files/swift_container_replicator.json:/var/lib/kolla/config_files/config.json:ro
303 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
305 - /srv/node:/srv/node
307 - /var/log/containers/swift:/var/log/swift
308 environment: *kolla_env
309 swift_container_updater:
310 image: *swift_container_image
316 - {get_attr: [ContainersCommon, volumes]}
318 - /var/lib/kolla/config_files/swift_container_updater.json:/var/lib/kolla/config_files/config.json:ro
319 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
321 - /srv/node:/srv/node
323 - /var/log/containers/swift:/var/log/swift
324 environment: *kolla_env
325 swift_container_server:
326 image: *swift_container_image
332 - {get_attr: [ContainersCommon, volumes]}
334 - /var/lib/kolla/config_files/swift_container_server.json:/var/lib/kolla/config_files/config.json:ro
335 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
337 - /srv/node:/srv/node
339 - /var/log/containers/swift:/var/log/swift
340 environment: *kolla_env
341 swift_object_auditor:
342 image: &swift_object_image {get_param: DockerSwiftObjectImage}
348 - {get_attr: [ContainersCommon, volumes]}
350 - /var/lib/kolla/config_files/swift_object_auditor.json:/var/lib/kolla/config_files/config.json:ro
351 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
353 - /srv/node:/srv/node
355 - /var/log/containers/swift:/var/log/swift
356 environment: *kolla_env
357 swift_object_expirer:
358 image: &swift_proxy_image {get_param: DockerSwiftProxyImage}
364 - {get_attr: [ContainersCommon, volumes]}
366 - /var/lib/kolla/config_files/swift_object_expirer.json:/var/lib/kolla/config_files/config.json:ro
367 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
369 - /srv/node:/srv/node
371 - /var/log/containers/swift:/var/log/swift
372 environment: *kolla_env
373 swift_object_replicator:
374 image: *swift_object_image
380 - {get_attr: [ContainersCommon, volumes]}
382 - /var/lib/kolla/config_files/swift_object_replicator.json:/var/lib/kolla/config_files/config.json:ro
383 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
385 - /srv/node:/srv/node
387 - /var/log/containers/swift:/var/log/swift
388 environment: *kolla_env
389 swift_object_updater:
390 image: *swift_object_image
396 - {get_attr: [ContainersCommon, volumes]}
398 - /var/lib/kolla/config_files/swift_object_updater.json:/var/lib/kolla/config_files/config.json:ro
399 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
401 - /srv/node:/srv/node
403 - /var/log/containers/swift:/var/log/swift
404 environment: *kolla_env
406 image: *swift_object_image
412 - {get_attr: [ContainersCommon, volumes]}
414 - /var/lib/kolla/config_files/swift_object_server.json:/var/lib/kolla/config_files/config.json:ro
415 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
417 - /srv/node:/srv/node
419 - /var/log/containers/swift:/var/log/swift
420 environment: *kolla_env
422 image: *swift_object_image
429 - {get_attr: [ContainersCommon, volumes]}
431 - /var/lib/kolla/config_files/swift_rsync.json:/var/lib/kolla/config_files/config.json:ro
432 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
434 - /srv/node:/srv/node
436 - /var/log/containers/swift:/var/log/swift
437 environment: *kolla_env
440 - name: create persistent directories
445 - /var/log/containers/swift
447 - name: Format and mount devices defined in SwiftRawDisks
449 name: /srv/node/{{ item }}
458 DEVICE: {get_param: SwiftRawDisks}
460 - name: Stop and disable swift storage services
462 service: name={{ item }} state=stopped enabled=no
464 - openstack-swift-account-auditor
465 - openstack-swift-account-reaper
466 - openstack-swift-account-replicator
467 - openstack-swift-account
468 - openstack-swift-container-auditor
469 - openstack-swift-container-replicator
470 - openstack-swift-container-updater
471 - openstack-swift-container
472 - openstack-swift-object-auditor
473 - openstack-swift-object-expirer
474 - openstack-swift-object-replicator
475 - openstack-swift-object-updater
476 - openstack-swift-object
477 - name: Remove openstack-swift-container,object,account packages if operator requests it
478 yum: name={{ item }} state=removed
481 when: {get_param: UpgradeRemoveUnusedPackages}
483 - openstack-swift-container
484 - openstack-swift-object
485 - openstack-swift-account