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
86 get_attr: [SwiftStorageBase, role_data, step_config]
87 service_config_settings: {get_attr: [SwiftStorageBase, role_data, service_config_settings]}
88 # BEGIN DOCKER SETTINGS
91 puppet_tags: swift_config,swift_container_config,swift_container_sync_realms_config,swift_account_config,swift_object_config,swift_object_expirer_config,rsync::server
92 step_config: *step_config
93 config_image: {get_param: DockerSwiftConfigImage}
95 /var/lib/kolla/config_files/swift_account_auditor.json:
96 command: /usr/bin/swift-account-auditor /etc/swift/account-server.conf
98 - source: "/var/lib/kolla/config_files/src/*"
101 preserve_properties: true
102 /var/lib/kolla/config_files/swift_account_reaper.json:
103 command: /usr/bin/swift-account-reaper /etc/swift/account-server.conf
105 - source: "/var/lib/kolla/config_files/src/*"
108 preserve_properties: true
109 /var/lib/kolla/config_files/swift_account_replicator.json:
110 command: /usr/bin/swift-account-replicator /etc/swift/account-server.conf
112 - source: "/var/lib/kolla/config_files/src/*"
115 preserve_properties: true
116 /var/lib/kolla/config_files/swift_account_server.json:
117 command: /usr/bin/swift-account-server /etc/swift/account-server.conf
119 - source: "/var/lib/kolla/config_files/src/*"
122 preserve_properties: true
123 /var/lib/kolla/config_files/swift_container_auditor.json:
124 command: /usr/bin/swift-container-auditor /etc/swift/container-server.conf
126 - source: "/var/lib/kolla/config_files/src/*"
129 preserve_properties: true
130 /var/lib/kolla/config_files/swift_container_replicator.json:
131 command: /usr/bin/swift-container-replicator /etc/swift/container-server.conf
133 - source: "/var/lib/kolla/config_files/src/*"
136 preserve_properties: true
137 /var/lib/kolla/config_files/swift_container_updater.json:
138 command: /usr/bin/swift-container-updater /etc/swift/container-server.conf
140 - source: "/var/lib/kolla/config_files/src/*"
143 preserve_properties: true
144 /var/lib/kolla/config_files/swift_container_server.json:
145 command: /usr/bin/swift-container-server /etc/swift/container-server.conf
147 - source: "/var/lib/kolla/config_files/src/*"
150 preserve_properties: true
151 /var/lib/kolla/config_files/swift_object_auditor.json:
152 command: /usr/bin/swift-object-auditor /etc/swift/object-server.conf
154 - source: "/var/lib/kolla/config_files/src/*"
157 preserve_properties: true
158 /var/lib/kolla/config_files/swift_object_expirer.json:
159 command: /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
161 - source: "/var/lib/kolla/config_files/src/*"
164 preserve_properties: true
165 /var/lib/kolla/config_files/swift_object_replicator.json:
166 command: /usr/bin/swift-object-replicator /etc/swift/object-server.conf
168 - source: "/var/lib/kolla/config_files/src/*"
171 preserve_properties: true
172 /var/lib/kolla/config_files/swift_object_updater.json:
173 command: /usr/bin/swift-object-updater /etc/swift/object-server.conf
175 - source: "/var/lib/kolla/config_files/src/*"
178 preserve_properties: true
179 /var/lib/kolla/config_files/swift_object_server.json:
180 command: /usr/bin/swift-object-server /etc/swift/object-server.conf
182 - source: "/var/lib/kolla/config_files/src/*"
185 preserve_properties: true
187 - path: /var/log/swift
190 /var/lib/kolla/config_files/swift_rsync.json:
191 command: /usr/bin/rsync --daemon --no-detach --config=/etc/rsyncd.conf
193 - source: "/var/lib/kolla/config_files/src/*"
196 preserve_properties: true
199 # The puppet config sets this up but we don't have a way to mount the named
200 # volume during the configuration stage. We just need to create this
201 # directory and make sure it's owned by swift.
203 image: &swift_account_image {get_param: DockerSwiftAccountImage}
205 command: ['chown', '-R', 'swift:', '/srv/node']
207 - /srv/node:/srv/node
209 swift_account_auditor:
210 image: *swift_account_image
216 - {get_attr: [ContainersCommon, volumes]}
218 - /var/lib/kolla/config_files/swift_account_auditor.json:/var/lib/kolla/config_files/config.json:ro
219 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
221 - /srv/node:/srv/node
223 - /var/log/containers/swift:/var/log/swift
224 environment: &kolla_env
225 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
226 swift_account_reaper:
227 image: *swift_account_image
233 - {get_attr: [ContainersCommon, volumes]}
235 - /var/lib/kolla/config_files/swift_account_reaper.json:/var/lib/kolla/config_files/config.json:ro
236 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
238 - /srv/node:/srv/node
240 - /var/log/containers/swift:/var/log/swift
241 environment: *kolla_env
242 swift_account_replicator:
243 image: *swift_account_image
249 - {get_attr: [ContainersCommon, volumes]}
251 - /var/lib/kolla/config_files/swift_account_replicator.json:/var/lib/kolla/config_files/config.json:ro
252 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
254 - /srv/node:/srv/node
256 - /var/log/containers/swift:/var/log/swift
257 environment: *kolla_env
258 swift_account_server:
259 image: *swift_account_image
265 - {get_attr: [ContainersCommon, volumes]}
267 - /var/lib/kolla/config_files/swift_account_server.json:/var/lib/kolla/config_files/config.json:ro
268 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
270 - /srv/node:/srv/node
272 - /var/log/containers/swift:/var/log/swift
273 environment: *kolla_env
274 swift_container_auditor:
275 image: &swift_container_image {get_param: DockerSwiftContainerImage}
281 - {get_attr: [ContainersCommon, volumes]}
283 - /var/lib/kolla/config_files/swift_container_auditor.json:/var/lib/kolla/config_files/config.json:ro
284 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
286 - /srv/node:/srv/node
288 - /var/log/containers/swift:/var/log/swift
289 environment: *kolla_env
290 swift_container_replicator:
291 image: *swift_container_image
297 - {get_attr: [ContainersCommon, volumes]}
299 - /var/lib/kolla/config_files/swift_container_replicator.json:/var/lib/kolla/config_files/config.json:ro
300 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
302 - /srv/node:/srv/node
304 - /var/log/containers/swift:/var/log/swift
305 environment: *kolla_env
306 swift_container_updater:
307 image: *swift_container_image
313 - {get_attr: [ContainersCommon, volumes]}
315 - /var/lib/kolla/config_files/swift_container_updater.json:/var/lib/kolla/config_files/config.json:ro
316 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
318 - /srv/node:/srv/node
320 - /var/log/containers/swift:/var/log/swift
321 environment: *kolla_env
322 swift_container_server:
323 image: *swift_container_image
329 - {get_attr: [ContainersCommon, volumes]}
331 - /var/lib/kolla/config_files/swift_container_server.json:/var/lib/kolla/config_files/config.json:ro
332 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
334 - /srv/node:/srv/node
336 - /var/log/containers/swift:/var/log/swift
337 environment: *kolla_env
338 swift_object_auditor:
339 image: &swift_object_image {get_param: DockerSwiftObjectImage}
345 - {get_attr: [ContainersCommon, volumes]}
347 - /var/lib/kolla/config_files/swift_object_auditor.json:/var/lib/kolla/config_files/config.json:ro
348 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
350 - /srv/node:/srv/node
352 - /var/log/containers/swift:/var/log/swift
353 environment: *kolla_env
354 swift_object_expirer:
355 image: &swift_proxy_image {get_param: DockerSwiftProxyImage}
361 - {get_attr: [ContainersCommon, volumes]}
363 - /var/lib/kolla/config_files/swift_object_expirer.json:/var/lib/kolla/config_files/config.json:ro
364 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
366 - /srv/node:/srv/node
368 - /var/log/containers/swift:/var/log/swift
369 environment: *kolla_env
370 swift_object_replicator:
371 image: *swift_object_image
377 - {get_attr: [ContainersCommon, volumes]}
379 - /var/lib/kolla/config_files/swift_object_replicator.json:/var/lib/kolla/config_files/config.json:ro
380 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
382 - /srv/node:/srv/node
384 - /var/log/containers/swift:/var/log/swift
385 environment: *kolla_env
386 swift_object_updater:
387 image: *swift_object_image
393 - {get_attr: [ContainersCommon, volumes]}
395 - /var/lib/kolla/config_files/swift_object_updater.json:/var/lib/kolla/config_files/config.json:ro
396 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
398 - /srv/node:/srv/node
400 - /var/log/containers/swift:/var/log/swift
401 environment: *kolla_env
403 image: *swift_object_image
409 - {get_attr: [ContainersCommon, volumes]}
411 - /var/lib/kolla/config_files/swift_object_server.json:/var/lib/kolla/config_files/config.json:ro
412 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
414 - /srv/node:/srv/node
416 - /var/log/containers/swift:/var/log/swift
417 environment: *kolla_env
419 image: *swift_object_image
426 - {get_attr: [ContainersCommon, volumes]}
428 - /var/lib/kolla/config_files/swift_rsync.json:/var/lib/kolla/config_files/config.json:ro
429 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
431 - /srv/node:/srv/node
433 - /var/log/containers/swift:/var/log/swift
434 environment: *kolla_env
437 - name: create persistent directories
442 - /var/log/containers/swift
444 - name: Format and mount devices defined in SwiftRawDisks
446 name: /srv/node/{{ item }}
455 DEVICE: {get_param: SwiftRawDisks}
457 - name: Stop and disable swift storage services
459 service: name={{ item }} state=stopped enabled=no
461 - openstack-swift-account-auditor
462 - openstack-swift-account-reaper
463 - openstack-swift-account-replicator
464 - openstack-swift-account
465 - openstack-swift-container-auditor
466 - openstack-swift-container-replicator
467 - openstack-swift-container-updater
468 - openstack-swift-container
469 - openstack-swift-object-auditor
470 - openstack-swift-object-expirer
471 - openstack-swift-object-replicator
472 - openstack-swift-object-updater
473 - openstack-swift-object
474 - name: Remove openstack-swift-container,object,account packages if operator requests it
475 yum: name={{ item }} state=removed
478 when: {get_param: UpgradeRemoveUnusedPackages}
480 - openstack-swift-container
481 - openstack-swift-object
482 - openstack-swift-account