1 heat_template_version: pike
4 OpenStack containerized Swift Storage services.
9 default: 'tripleoupstream'
11 DockerSwiftProxyImage:
13 default: 'centos-binary-swift-proxy-server:latest'
15 DockerSwiftAccountImage:
17 default: 'centos-binary-swift-account:latest'
19 DockerSwiftContainerImage:
21 default: 'centos-binary-swift-container:latest'
23 DockerSwiftObjectImage:
25 default: 'centos-binary-swift-object:latest'
27 DockerSwiftConfigImage:
28 description: The container image to use for the swift config_volume
29 default: 'centos-binary-swift-proxy-server:latest'
33 description: Mapping of service endpoint -> protocol. Typically set
34 via parameter_defaults in the resource registry.
41 description: Role name on which the service is applied
45 description: Parameters specific to the role
49 description: Dictionary packing service data
53 description: Mapping of service_name -> network name. Typically set
54 via parameter_defaults in the resource registry. This
55 mapping overrides those in ServiceNetMapDefaults.
59 description: 'A hash of additional raw devices to use as Swift backend (eg. {sdb: {}})'
66 type: ./containers-common.yaml
69 type: ../../puppet/services/swift-storage.yaml
71 EndpointMap: {get_param: EndpointMap}
72 ServiceData: {get_param: ServiceData}
73 ServiceNetMap: {get_param: ServiceNetMap}
74 DefaultPasswords: {get_param: DefaultPasswords}
75 RoleName: {get_param: RoleName}
76 RoleParameters: {get_param: RoleParameters}
80 description: Role data for the swift storage services.
82 service_name: {get_attr: [SwiftStorageBase, role_data, service_name]}
85 - {get_attr: [SwiftStorageBase, role_data, config_settings]}
86 # FIXME (cschwede): re-enable this once checks works inside containers
87 - swift::storage::all::mount_check: false
88 step_config: &step_config
89 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
99 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftConfigImage} ]
101 /var/lib/kolla/config_files/swift_account_auditor.json:
102 command: /usr/bin/swift-account-auditor /etc/swift/account-server.conf
104 - source: "/var/lib/kolla/config_files/src/*"
107 preserve_properties: true
108 /var/lib/kolla/config_files/swift_account_reaper.json:
109 command: /usr/bin/swift-account-reaper /etc/swift/account-server.conf
111 - source: "/var/lib/kolla/config_files/src/*"
114 preserve_properties: true
115 /var/lib/kolla/config_files/swift_account_replicator.json:
116 command: /usr/bin/swift-account-replicator /etc/swift/account-server.conf
118 - source: "/var/lib/kolla/config_files/src/*"
121 preserve_properties: true
122 /var/lib/kolla/config_files/swift_account_server.json:
123 command: /usr/bin/swift-account-server /etc/swift/account-server.conf
125 - source: "/var/lib/kolla/config_files/src/*"
128 preserve_properties: true
129 /var/lib/kolla/config_files/swift_container_auditor.json:
130 command: /usr/bin/swift-container-auditor /etc/swift/container-server.conf
132 - source: "/var/lib/kolla/config_files/src/*"
135 preserve_properties: true
136 /var/lib/kolla/config_files/swift_container_replicator.json:
137 command: /usr/bin/swift-container-replicator /etc/swift/container-server.conf
139 - source: "/var/lib/kolla/config_files/src/*"
142 preserve_properties: true
143 /var/lib/kolla/config_files/swift_container_updater.json:
144 command: /usr/bin/swift-container-updater /etc/swift/container-server.conf
146 - source: "/var/lib/kolla/config_files/src/*"
149 preserve_properties: true
150 /var/lib/kolla/config_files/swift_container_server.json:
151 command: /usr/bin/swift-container-server /etc/swift/container-server.conf
153 - source: "/var/lib/kolla/config_files/src/*"
156 preserve_properties: true
157 /var/lib/kolla/config_files/swift_object_auditor.json:
158 command: /usr/bin/swift-object-auditor /etc/swift/object-server.conf
160 - source: "/var/lib/kolla/config_files/src/*"
163 preserve_properties: true
164 /var/lib/kolla/config_files/swift_object_expirer.json:
165 command: /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
167 - source: "/var/lib/kolla/config_files/src/*"
170 preserve_properties: true
171 /var/lib/kolla/config_files/swift_object_replicator.json:
172 command: /usr/bin/swift-object-replicator /etc/swift/object-server.conf
174 - source: "/var/lib/kolla/config_files/src/*"
177 preserve_properties: true
178 /var/lib/kolla/config_files/swift_object_updater.json:
179 command: /usr/bin/swift-object-updater /etc/swift/object-server.conf
181 - source: "/var/lib/kolla/config_files/src/*"
184 preserve_properties: true
185 /var/lib/kolla/config_files/swift_object_server.json:
186 command: /usr/bin/swift-object-server /etc/swift/object-server.conf
188 - source: "/var/lib/kolla/config_files/src/*"
191 preserve_properties: true
193 - path: /var/log/swift
196 /var/lib/kolla/config_files/swift_rsync.json:
197 command: /usr/bin/rsync --daemon --no-detach --config=/etc/rsyncd.conf
199 - source: "/var/lib/kolla/config_files/src/*"
202 preserve_properties: true
205 # The puppet config sets this up but we don't have a way to mount the named
206 # volume during the configuration stage. We just need to create this
207 # directory and make sure it's owned by swift.
209 image: &swift_account_image
212 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftAccountImage} ]
214 command: ['chown', '-R', 'swift:', '/srv/node']
216 - /srv/node:/srv/node
218 swift_account_auditor:
219 image: *swift_account_image
225 - {get_attr: [ContainersCommon, volumes]}
227 - /var/lib/kolla/config_files/swift_account_auditor.json:/var/lib/kolla/config_files/config.json:ro
228 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
230 - /srv/node:/srv/node
232 - /var/log/containers/swift:/var/log/swift
233 environment: &kolla_env
234 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
235 swift_account_reaper:
236 image: *swift_account_image
242 - {get_attr: [ContainersCommon, volumes]}
244 - /var/lib/kolla/config_files/swift_account_reaper.json:/var/lib/kolla/config_files/config.json:ro
245 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
247 - /srv/node:/srv/node
249 - /var/log/containers/swift:/var/log/swift
250 environment: *kolla_env
251 swift_account_replicator:
252 image: *swift_account_image
258 - {get_attr: [ContainersCommon, volumes]}
260 - /var/lib/kolla/config_files/swift_account_replicator.json:/var/lib/kolla/config_files/config.json:ro
261 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
263 - /srv/node:/srv/node
265 - /var/log/containers/swift:/var/log/swift
266 environment: *kolla_env
267 swift_account_server:
268 image: *swift_account_image
274 - {get_attr: [ContainersCommon, volumes]}
276 - /var/lib/kolla/config_files/swift_account_server.json:/var/lib/kolla/config_files/config.json:ro
277 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
279 - /srv/node:/srv/node
281 - /var/log/containers/swift:/var/log/swift
282 environment: *kolla_env
283 swift_container_auditor:
284 image: &swift_container_image
287 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftContainerImage} ]
293 - {get_attr: [ContainersCommon, volumes]}
295 - /var/lib/kolla/config_files/swift_container_auditor.json:/var/lib/kolla/config_files/config.json:ro
296 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
298 - /srv/node:/srv/node
300 - /var/log/containers/swift:/var/log/swift
301 environment: *kolla_env
302 swift_container_replicator:
303 image: *swift_container_image
309 - {get_attr: [ContainersCommon, volumes]}
311 - /var/lib/kolla/config_files/swift_container_replicator.json:/var/lib/kolla/config_files/config.json:ro
312 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
314 - /srv/node:/srv/node
316 - /var/log/containers/swift:/var/log/swift
317 environment: *kolla_env
318 swift_container_updater:
319 image: *swift_container_image
325 - {get_attr: [ContainersCommon, volumes]}
327 - /var/lib/kolla/config_files/swift_container_updater.json:/var/lib/kolla/config_files/config.json:ro
328 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
330 - /srv/node:/srv/node
332 - /var/log/containers/swift:/var/log/swift
333 environment: *kolla_env
334 swift_container_server:
335 image: *swift_container_image
341 - {get_attr: [ContainersCommon, volumes]}
343 - /var/lib/kolla/config_files/swift_container_server.json:/var/lib/kolla/config_files/config.json:ro
344 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
346 - /srv/node:/srv/node
348 - /var/log/containers/swift:/var/log/swift
349 environment: *kolla_env
350 swift_object_auditor:
351 image: &swift_object_image
354 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftObjectImage} ]
360 - {get_attr: [ContainersCommon, volumes]}
362 - /var/lib/kolla/config_files/swift_object_auditor.json:/var/lib/kolla/config_files/config.json:ro
363 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
365 - /srv/node:/srv/node
367 - /var/log/containers/swift:/var/log/swift
368 environment: *kolla_env
369 swift_object_expirer:
370 image: &swift_proxy_image
373 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftProxyImage} ]
379 - {get_attr: [ContainersCommon, volumes]}
381 - /var/lib/kolla/config_files/swift_object_expirer.json:/var/lib/kolla/config_files/config.json:ro
382 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
384 - /srv/node:/srv/node
386 - /var/log/containers/swift:/var/log/swift
387 environment: *kolla_env
388 swift_object_replicator:
389 image: *swift_object_image
395 - {get_attr: [ContainersCommon, volumes]}
397 - /var/lib/kolla/config_files/swift_object_replicator.json:/var/lib/kolla/config_files/config.json:ro
398 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
400 - /srv/node:/srv/node
402 - /var/log/containers/swift:/var/log/swift
403 environment: *kolla_env
404 swift_object_updater:
405 image: *swift_object_image
411 - {get_attr: [ContainersCommon, volumes]}
413 - /var/lib/kolla/config_files/swift_object_updater.json:/var/lib/kolla/config_files/config.json:ro
414 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
416 - /srv/node:/srv/node
418 - /var/log/containers/swift:/var/log/swift
419 environment: *kolla_env
421 image: *swift_object_image
427 - {get_attr: [ContainersCommon, volumes]}
429 - /var/lib/kolla/config_files/swift_object_server.json:/var/lib/kolla/config_files/config.json:ro
430 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
432 - /srv/node:/srv/node
434 - /var/log/containers/swift:/var/log/swift
435 environment: *kolla_env
437 image: *swift_object_image
444 - {get_attr: [ContainersCommon, volumes]}
446 - /var/lib/kolla/config_files/swift_rsync.json:/var/lib/kolla/config_files/config.json:ro
447 - /var/lib/config-data/puppet-generated/swift/:/var/lib/kolla/config_files/src:ro
449 - /srv/node:/srv/node
451 - /var/log/containers/swift:/var/log/swift
452 environment: *kolla_env
455 - name: create persistent directories
460 - /var/log/containers/swift
462 - name: Format and mount devices defined in SwiftRawDisks
464 name: /srv/node/{{ item }}
473 DEVICE: {get_param: SwiftRawDisks}
475 - name: Stop and disable swift storage services
477 service: name={{ item }} state=stopped enabled=no
479 - openstack-swift-account-auditor
480 - openstack-swift-account-reaper
481 - openstack-swift-account-replicator
482 - openstack-swift-account
483 - openstack-swift-container-auditor
484 - openstack-swift-container-replicator
485 - openstack-swift-container-updater
486 - openstack-swift-container
487 - openstack-swift-object-auditor
488 - openstack-swift-object-replicator
489 - openstack-swift-object-updater
490 - openstack-swift-object