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