Provide RabbitMQ clients with a list of servers instead of VIP
[apex-tripleo-heat-templates.git] / puppet / all-nodes-config.yaml
1 heat_template_version: 2014-10-16
2 description: 'All Nodes Config for Puppet'
3
4 parameters:
5   compute_hosts:
6     type: comma_delimited_list
7   controller_hosts:
8     type: comma_delimited_list
9   controller_ips:
10     type: comma_delimited_list
11   block_storage_hosts:
12     type: comma_delimited_list
13   object_storage_hosts:
14     type: comma_delimited_list
15   ceph_storage_hosts:
16     type: comma_delimited_list
17   controller_names:
18     type: comma_delimited_list
19
20 resources:
21
22   allNodesConfigImpl:
23     type: OS::Heat::StructuredConfig
24     properties:
25       config:
26         completion-signal: {get_input: deploy_signal_id}
27         hosts:
28           list_join:
29           - "\n"
30           - - list_join:
31               - "\n"
32               - {get_param: compute_hosts}
33             - list_join:
34               - "\n"
35               - {get_param: controller_hosts}
36             - list_join:
37               - "\n"
38               - {get_param: block_storage_hosts}
39             - list_join:
40               - "\n"
41               - {get_param: object_storage_hosts}
42             - list_join:
43               - "\n"
44               - {get_param: ceph_storage_hosts}
45         sysctl:
46           net.ipv4.tcp_keepalive_time: 5
47           net.ipv4.tcp_keepalive_probes: 5
48           net.ipv4.tcp_keepalive_intvl: 1
49         hiera:
50           datafiles:
51             all_nodes:
52               mapped_data:
53                 controller_node_ips:
54                   list_join:
55                   - ','
56                   - {get_param: controller_ips}
57                 controller_node_names:
58                   list_join:
59                   - ','
60                   - {get_param: controller_names}
61                 galera_node_names:
62                   list_join:
63                   - ','
64                   - {get_param: controller_names}
65                 rabbit_node_ips: &rabbit_nodes_array
66                   str_replace:
67                     template: "['SERVERS_LIST']"
68                     params:
69                       SERVERS_LIST:
70                         list_join:
71                         - "','"
72                         - {get_param: controller_ips}
73                 mongo_node_ips:
74                   list_join:
75                   - ','
76                   - {get_param: controller_ips}
77                 redis_node_ips:
78                   list_join:
79                   - ','
80                   - {get_param: controller_ips}
81                 memcache_node_ips:
82                   list_join:
83                   - ','
84                   - {get_param: controller_ips}
85                 # NOTE(gfidente): interpolation with %{} in the
86                 # hieradata file can't be used as it returns string
87                 ceilometer::rabbit_hosts: *rabbit_nodes_array
88                 cinder::rabbit_hosts: *rabbit_nodes_array
89                 heat::rabbit_hosts: *rabbit_nodes_array
90                 neutron::rabbit_hosts: *rabbit_nodes_array
91                 nova::rabbit_hosts: *rabbit_nodes_array
92
93 outputs:
94   config_id:
95     description: The ID of the allNodesConfigImpl resource.
96     value:
97       {get_resource: allNodesConfigImpl}