Merge "Move gnocchi's kestone::auth parameters to API profile"
[apex-tripleo-heat-templates.git] / puppet / all-nodes-config.yaml
1 heat_template_version: 2015-04-30
2 description: 'All Nodes Config for Puppet'
3
4 parameters:
5   hosts:
6     type: comma_delimited_list
7   controller_ips:
8     type: comma_delimited_list
9   controller_names:
10     type: comma_delimited_list
11   rabbit_node_ips:
12     type: comma_delimited_list
13   mongo_node_ips:
14     type: comma_delimited_list
15   redis_node_ips:
16     type: comma_delimited_list
17   memcache_node_ips:
18     type: comma_delimited_list
19   mysql_node_ips:
20     type: comma_delimited_list
21   horizon_node_ips:
22     type: comma_delimited_list
23   heat_api_node_ips:
24     type: comma_delimited_list
25   swift_proxy_node_ips:
26     type: comma_delimited_list
27   ceilometer_api_node_ips:
28     type: comma_delimited_list
29   aodh_api_node_ips:
30     type: comma_delimited_list
31   nova_api_node_ips:
32     type: comma_delimited_list
33   nova_metadata_node_ips:
34     type: comma_delimited_list
35   glance_api_node_ips:
36     type: comma_delimited_list
37   glance_registry_node_ips:
38     type: comma_delimited_list
39   gnocchi_api_node_ips:
40     type: comma_delimited_list
41   cinder_api_node_ips:
42     type: comma_delimited_list
43   manila_api_node_ips:
44     type: comma_delimited_list
45   neutron_api_node_ips:
46     type: comma_delimited_list
47   keystone_public_api_node_ips:
48     type: comma_delimited_list
49   keystone_admin_api_node_ips:
50     type: comma_delimited_list
51   sahara_api_node_ips:
52     type: comma_delimited_list
53   ironic_api_node_ips:
54     type: comma_delimited_list
55   ceph_mon_node_ips:
56     type: comma_delimited_list
57   ceph_mon_node_names:
58     type: comma_delimited_list
59   DeployIdentifier:
60     type: string
61     description: >
62       Setting this to a unique value will re-run any deployment tasks which
63       perform configuration on a Heat stack-update.
64   UpdateIdentifier:
65     type: string
66     description: >
67       Setting to a previously unused value during stack-update will trigger
68       package update on all nodes
69   StackAction:
70     type: string
71     description: >
72       Heat action on performed top-level stack.
73     constraints:
74     - allowed_values: ['CREATE', 'UPDATE']
75
76 resources:
77
78   allNodesConfigImpl:
79     type: OS::Heat::StructuredConfig
80     properties:
81       group: os-apply-config
82       config:
83         hosts:
84           list_join:
85           - "\n"
86           - {get_param: hosts}
87         hiera:
88           datafiles:
89             bootstrap_node:
90               mapped_data:
91                 bootstrap_nodeid: {get_input: bootstrap_nodeid}
92                 bootstrap_nodeid_ip: {get_input: bootstrap_nodeid_ip}
93             all_nodes:
94               mapped_data:
95                 controller_node_ips:
96                   list_join:
97                   - ','
98                   - {get_param: controller_ips}
99                 controller_node_names:
100                   list_join:
101                   - ','
102                   - {get_param: controller_names}
103                 galera_node_names:
104                   list_join:
105                   - ','
106                   - {get_param: controller_names}
107                 rabbit_node_ips: &rabbit_nodes_array
108                   str_replace:
109                     template: "['SERVERS_LIST']"
110                     params:
111                       SERVERS_LIST:
112                         list_join:
113                         - "','"
114                         - {get_param: rabbit_node_ips}
115                 mongo_node_ips:
116                   str_replace:
117                     template: "['SERVERS_LIST']"
118                     params:
119                       SERVERS_LIST:
120                         list_join:
121                         - "','"
122                         - {get_param: mongo_node_ips}
123                 redis_node_ips:
124                   str_replace:
125                     template: "['SERVERS_LIST']"
126                     params:
127                       SERVERS_LIST:
128                         list_join:
129                         - "','"
130                         - {get_param: redis_node_ips}
131                 memcache_node_ips:
132                   str_replace:
133                     template: "['SERVERS_LIST']"
134                     params:
135                       SERVERS_LIST:
136                         list_join:
137                         - "','"
138                         - {get_param: memcache_node_ips}
139                 memcache_node_ips_v6:
140                   str_replace:
141                     template: "['inet6:[SERVERS_LIST]']"
142                     params:
143                       SERVERS_LIST:
144                         list_join:
145                         - "]','inet6:["
146                         - {get_param: memcache_node_ips}
147                 mysql_node_ips:
148                   str_replace:
149                     template: "['SERVERS_LIST']"
150                     params:
151                       SERVERS_LIST:
152                         list_join:
153                         - "','"
154                         - {get_param: mysql_node_ips}
155                 horizon_node_ips:
156                   str_replace:
157                     template: "['SERVERS_LIST']"
158                     params:
159                       SERVERS_LIST:
160                         list_join:
161                         - "','"
162                         - {get_param: horizon_node_ips}
163                 heat_api_node_ips:
164                   str_replace:
165                     template: "['SERVERS_LIST']"
166                     params:
167                       SERVERS_LIST:
168                         list_join:
169                         - "','"
170                         - {get_param: heat_api_node_ips}
171                 swift_proxy_node_ips:
172                   str_replace:
173                     template: "['SERVERS_LIST']"
174                     params:
175                       SERVERS_LIST:
176                         list_join:
177                         - "','"
178                         - {get_param: swift_proxy_node_ips}
179                 ceilometer_api_node_ips:
180                   str_replace:
181                     template: "['SERVERS_LIST']"
182                     params:
183                       SERVERS_LIST:
184                         list_join:
185                         - "','"
186                         - {get_param: ceilometer_api_node_ips}
187                 aodh_api_node_ips:
188                   str_replace:
189                     template: "['SERVERS_LIST']"
190                     params:
191                       SERVERS_LIST:
192                         list_join:
193                         - "','"
194                         - {get_param: aodh_api_node_ips}
195                 gnocchi_api_node_ips:
196                   str_replace:
197                     template: "['SERVERS_LIST']"
198                     params:
199                       SERVERS_LIST:
200                         list_join:
201                         - "','"
202                         - {get_param: gnocchi_api_node_ips}
203                 nova_api_node_ips:
204                   str_replace:
205                     template: "['SERVERS_LIST']"
206                     params:
207                       SERVERS_LIST:
208                         list_join:
209                         - "','"
210                         - {get_param: nova_api_node_ips}
211                 nova_metadata_node_ips:
212                   str_replace:
213                     template: "['SERVERS_LIST']"
214                     params:
215                       SERVERS_LIST:
216                         list_join:
217                         - "','"
218                         - {get_param: nova_metadata_node_ips}
219                 glance_api_node_ips:
220                   str_replace:
221                     template: "['SERVERS_LIST']"
222                     params:
223                       SERVERS_LIST:
224                         list_join:
225                         - "','"
226                         - {get_param: glance_api_node_ips}
227                 glance_registry_node_ips:
228                   str_replace:
229                     template: "['SERVERS_LIST']"
230                     params:
231                       SERVERS_LIST:
232                         list_join:
233                         - "','"
234                         - {get_param: glance_registry_node_ips}
235                 cinder_api_node_ips:
236                   str_replace:
237                     template: "['SERVERS_LIST']"
238                     params:
239                       SERVERS_LIST:
240                         list_join:
241                         - "','"
242                         - {get_param: cinder_api_node_ips}
243                 manila_api_node_ips:
244                   str_replace:
245                     template: "['SERVERS_LIST']"
246                     params:
247                       SERVERS_LIST:
248                         list_join:
249                         - "','"
250                         - {get_param: manila_api_node_ips}
251                 neutron_api_node_ips:
252                   str_replace:
253                     template: "['SERVERS_LIST']"
254                     params:
255                       SERVERS_LIST:
256                         list_join:
257                         - "','"
258                         - {get_param: neutron_api_node_ips}
259                 # TODO: pass a `midonet_api_node_ips` var
260                 midonet_api_node_ips:
261                   str_replace:
262                     template: "['SERVERS_LIST']"
263                     params:
264                       SERVERS_LIST:
265                         list_join:
266                         - "','"
267                         - {get_param: neutron_api_node_ips}
268                 keystone_public_api_node_ips:
269                   str_replace:
270                     template: "['SERVERS_LIST']"
271                     params:
272                       SERVERS_LIST:
273                         list_join:
274                         - "','"
275                         - {get_param: keystone_public_api_node_ips}
276                 keystone_admin_api_node_ips:
277                   str_replace:
278                     template: "['SERVERS_LIST']"
279                     params:
280                       SERVERS_LIST:
281                         list_join:
282                         - "','"
283                         - {get_param: keystone_admin_api_node_ips}
284                 sahara_api_node_ips:
285                   str_replace:
286                     template: "['SERVERS_LIST']"
287                     params:
288                       SERVERS_LIST:
289                         list_join:
290                         - "','"
291                         - {get_param: sahara_api_node_ips}
292                 ironic_api_node_ips:
293                   str_replace:
294                     template: "['SERVERS_LIST']"
295                     params:
296                       SERVERS_LIST:
297                         list_join:
298                         - "','"
299                         - {get_param: ironic_api_node_ips}
300
301                 tripleo::profile::base::ceph::ceph_mon_initial_members:
302                   list_join:
303                   - ','
304                   - {get_param: ceph_mon_node_names}
305                 tripleo::profile::base::ceph::ceph_mon_host:
306                   list_join:
307                   - ','
308                   - {get_param: ceph_mon_node_ips}
309                 tripleo::profile::base::ceph::ceph_mon_host_v6:
310                   str_replace:
311                     template: "'[IPS_LIST]'"
312                     params:
313                       IPS_LIST:
314                         list_join:
315                         - '],['
316                         - {get_param: ceph_mon_node_ips}
317                 # NOTE(gfidente): interpolation with %{} in the
318                 # hieradata file can't be used as it returns string
319                 ceilometer::rabbit_hosts: *rabbit_nodes_array
320                 aodh::rabbit_hosts: *rabbit_nodes_array
321                 cinder::rabbit_hosts: *rabbit_nodes_array
322                 glance::notify::rabbitmq::rabbit_hosts: *rabbit_nodes_array
323                 manila::rabbit_hosts: *rabbit_nodes_array
324                 heat::rabbit_hosts: *rabbit_nodes_array
325                 neutron::rabbit_hosts: *rabbit_nodes_array
326                 nova::rabbit_hosts: *rabbit_nodes_array
327                 keystone::rabbit_hosts: *rabbit_nodes_array
328                 sahara::rabbit_hosts: *rabbit_nodes_array
329                 ironic::rabbit_hosts: *rabbit_nodes_array
330
331                 deploy_identifier: {get_param: DeployIdentifier}
332                 update_identifier: {get_param: UpdateIdentifier}
333                 stack_action: {get_param: StackAction}
334
335 outputs:
336   config_id:
337     description: The ID of the allNodesConfigImpl resource.
338     value:
339       {get_resource: allNodesConfigImpl}
340   hosts_entries:
341     description: |
342       The content that should be appended to your /etc/hosts if you want to get
343       hostname-based access to the deployed nodes (useful for testing without
344       setting up a DNS).
345     value: {get_attr: [allNodesConfigImpl, config, hosts]}