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'
29 description: Mapping of service endpoint -> protocol. Typically set
30 via parameter_defaults in the resource registry.
37 description: Role name on which the service is applied
41 description: Parameters specific to the role
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: {}})'
58 type: ./containers-common.yaml
61 type: ../../puppet/services/swift-storage.yaml
63 EndpointMap: {get_param: EndpointMap}
64 ServiceNetMap: {get_param: ServiceNetMap}
65 DefaultPasswords: {get_param: DefaultPasswords}
66 RoleName: {get_param: RoleName}
67 RoleParameters: {get_param: RoleParameters}
71 description: Role data for the swift storage services.
73 service_name: {get_attr: [SwiftStorageBase, role_data, service_name]}
76 - {get_attr: [SwiftStorageBase, role_data, config_settings]}
77 # FIXME (cschwede): re-enable this once checks works inside containers
78 - swift::storage::all::mount_check: false
79 step_config: &step_config
80 get_attr: [SwiftStorageBase, role_data, step_config]
81 service_config_settings: {get_attr: [SwiftStorageBase, role_data, service_config_settings]}
82 # BEGIN DOCKER SETTINGS
85 puppet_tags: swift_config,swift_container_config,swift_container_sync_realms_config,swift_account_config,swift_object_config,swift_object_expirer_config
86 step_config: *step_config
87 config_image: &swift_proxy_image
90 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftProxyImage} ]
92 /var/lib/kolla/config_files/swift_account_auditor.json:
93 command: /usr/bin/swift-account-auditor /etc/swift/account-server.conf
94 /var/lib/kolla/config_files/swift_account_reaper.json:
95 command: /usr/bin/swift-account-reaper /etc/swift/account-server.conf
96 /var/lib/kolla/config_files/swift_account_replicator.json:
97 command: /usr/bin/swift-account-replicator /etc/swift/account-server.conf
98 /var/lib/kolla/config_files/swift_account_server.json:
99 command: /usr/bin/swift-account-server /etc/swift/account-server.conf
100 /var/lib/kolla/config_files/swift_container_auditor.json:
101 command: /usr/bin/swift-container-auditor /etc/swift/container-server.conf
102 /var/lib/kolla/config_files/swift_container_replicator.json:
103 command: /usr/bin/swift-container-replicator /etc/swift/container-server.conf
104 /var/lib/kolla/config_files/swift_container_updater.json:
105 command: /usr/bin/swift-container-updater /etc/swift/container-server.conf
106 /var/lib/kolla/config_files/swift_container_server.json:
107 command: /usr/bin/swift-container-server /etc/swift/container-server.conf
108 /var/lib/kolla/config_files/swift_object_auditor.json:
109 command: /usr/bin/swift-object-auditor /etc/swift/object-server.conf
110 /var/lib/kolla/config_files/swift_object_expirer.json:
111 command: /usr/bin/swift-object-expirer /etc/swift/object-expirer.conf
112 /var/lib/kolla/config_files/swift_object_replicator.json:
113 command: /usr/bin/swift-object-replicator /etc/swift/object-server.conf
114 /var/lib/kolla/config_files/swift_object_updater.json:
115 command: /usr/bin/swift-object-updater /etc/swift/object-server.conf
116 /var/lib/kolla/config_files/swift_object_server.json:
117 command: /usr/bin/swift-object-server /etc/swift/object-server.conf
119 - path: /var/log/swift
124 # The puppet config sets this up but we don't have a way to mount the named
125 # volume during the configuration stage. We just need to create this
126 # directory and make sure it's owned by swift.
128 image: &swift_account_image
131 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftAccountImage} ]
133 command: ['chown', '-R', 'swift:', '/srv/node']
135 - /srv/node:/srv/node
137 swift_account_auditor:
138 image: *swift_account_image
144 - {get_attr: [ContainersCommon, volumes]}
146 - /var/lib/kolla/config_files/swift_account_auditor.json:/var/lib/kolla/config_files/config.json:ro
147 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
149 - /srv/node:/srv/node
151 - /var/log/containers/swift:/var/log/swift
152 environment: &kolla_env
153 - KOLLA_CONFIG_STRATEGY=COPY_ALWAYS
154 swift_account_reaper:
155 image: *swift_account_image
161 - {get_attr: [ContainersCommon, volumes]}
163 - /var/lib/kolla/config_files/swift_account_reaper.json:/var/lib/kolla/config_files/config.json:ro
164 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
166 - /srv/node:/srv/node
168 - /var/log/containers/swift:/var/log/swift
169 environment: *kolla_env
170 swift_account_replicator:
171 image: *swift_account_image
177 - {get_attr: [ContainersCommon, volumes]}
179 - /var/lib/kolla/config_files/swift_account_replicator.json:/var/lib/kolla/config_files/config.json:ro
180 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
182 - /srv/node:/srv/node
184 - /var/log/containers/swift:/var/log/swift
185 environment: *kolla_env
186 swift_account_server:
187 image: *swift_account_image
193 - {get_attr: [ContainersCommon, volumes]}
195 - /var/lib/kolla/config_files/swift_account_server.json:/var/lib/kolla/config_files/config.json:ro
196 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
198 - /srv/node:/srv/node
200 - /var/log/containers/swift:/var/log/swift
201 environment: *kolla_env
202 swift_container_auditor:
203 image: &swift_container_image
206 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftContainerImage} ]
212 - {get_attr: [ContainersCommon, volumes]}
214 - /var/lib/kolla/config_files/swift_container_auditor.json:/var/lib/kolla/config_files/config.json:ro
215 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
217 - /srv/node:/srv/node
219 - /var/log/containers/swift:/var/log/swift
220 environment: *kolla_env
221 swift_container_replicator:
222 image: *swift_container_image
228 - {get_attr: [ContainersCommon, volumes]}
230 - /var/lib/kolla/config_files/swift_container_replicator.json:/var/lib/kolla/config_files/config.json:ro
231 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
233 - /srv/node:/srv/node
235 - /var/log/containers/swift:/var/log/swift
236 environment: *kolla_env
237 swift_container_updater:
238 image: *swift_container_image
244 - {get_attr: [ContainersCommon, volumes]}
246 - /var/lib/kolla/config_files/swift_container_updater.json:/var/lib/kolla/config_files/config.json:ro
247 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
249 - /srv/node:/srv/node
251 - /var/log/containers/swift:/var/log/swift
252 environment: *kolla_env
253 swift_container_server:
254 image: *swift_container_image
260 - {get_attr: [ContainersCommon, volumes]}
262 - /var/lib/kolla/config_files/swift_container_server.json:/var/lib/kolla/config_files/config.json:ro
263 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
265 - /srv/node:/srv/node
267 - /var/log/containers/swift:/var/log/swift
268 environment: *kolla_env
269 swift_object_auditor:
270 image: &swift_object_image
273 - [ {get_param: DockerNamespace}, {get_param: DockerSwiftObjectImage} ]
279 - {get_attr: [ContainersCommon, volumes]}
281 - /var/lib/kolla/config_files/swift_object_auditor.json:/var/lib/kolla/config_files/config.json:ro
282 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
284 - /srv/node:/srv/node
286 - /var/log/containers/swift:/var/log/swift
287 environment: *kolla_env
288 swift_object_expirer:
289 image: *swift_proxy_image
295 - {get_attr: [ContainersCommon, volumes]}
297 - /var/lib/kolla/config_files/swift_object_expirer.json:/var/lib/kolla/config_files/config.json:ro
298 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
300 - /srv/node:/srv/node
302 - /var/log/containers/swift:/var/log/swift
303 environment: *kolla_env
304 swift_object_replicator:
305 image: *swift_object_image
311 - {get_attr: [ContainersCommon, volumes]}
313 - /var/lib/kolla/config_files/swift_object_replicator.json:/var/lib/kolla/config_files/config.json:ro
314 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
316 - /srv/node:/srv/node
318 - /var/log/containers/swift:/var/log/swift
319 environment: *kolla_env
320 swift_object_updater:
321 image: *swift_object_image
327 - {get_attr: [ContainersCommon, volumes]}
329 - /var/lib/kolla/config_files/swift_object_updater.json:/var/lib/kolla/config_files/config.json:ro
330 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
332 - /srv/node:/srv/node
334 - /var/log/containers/swift:/var/log/swift
335 environment: *kolla_env
337 image: *swift_object_image
343 - {get_attr: [ContainersCommon, volumes]}
345 - /var/lib/kolla/config_files/swift_object_server.json:/var/lib/kolla/config_files/config.json:ro
346 - /var/lib/config-data/swift/etc/swift:/etc/swift:rw
348 - /srv/node:/srv/node
350 - /var/log/containers/swift:/var/log/swift
351 environment: *kolla_env
353 - name: create persistent directories
358 - /var/log/containers/swift
360 - name: Format and mount devices defined in SwiftRawDisks
362 name: /srv/node/{{ item }}
371 DEVICE: {get_param: SwiftRawDisks}
373 - name: Stop and disable swift storage services
375 service: name={{ item }} state=stopped enabled=no
377 - openstack-swift-account-auditor
378 - openstack-swift-account-reaper
379 - openstack-swift-account-replicator
380 - openstack-swift-account
381 - openstack-swift-container-auditor
382 - openstack-swift-container-replicator
383 - openstack-swift-container-updater
384 - openstack-swift-container
385 - openstack-swift-object-auditor
386 - openstack-swift-object-replicator
387 - openstack-swift-object-updater
388 - openstack-swift-object