heat_template_version: 2015-04-30 description: 'All Nodes Config for Puppet' parameters: compute_hosts: type: comma_delimited_list controller_hosts: type: comma_delimited_list controller_ips: type: comma_delimited_list block_storage_hosts: type: comma_delimited_list object_storage_hosts: type: comma_delimited_list ceph_storage_hosts: type: comma_delimited_list controller_names: type: comma_delimited_list rabbit_node_ips: type: comma_delimited_list mongo_node_ips: type: comma_delimited_list redis_node_ips: type: comma_delimited_list memcache_node_ips: type: comma_delimited_list mysql_node_ips: type: comma_delimited_list horizon_node_ips: type: comma_delimited_list heat_api_node_ips: type: comma_delimited_list swift_proxy_node_ips: type: comma_delimited_list ceilometer_api_node_ips: type: comma_delimited_list aodh_api_node_ips: type: comma_delimited_list nova_api_node_ips: type: comma_delimited_list nova_metadata_node_ips: type: comma_delimited_list glance_api_node_ips: type: comma_delimited_list glance_registry_node_ips: type: comma_delimited_list gnocchi_api_node_ips: type: comma_delimited_list cinder_api_node_ips: type: comma_delimited_list neutron_api_node_ips: type: comma_delimited_list keystone_public_api_node_ips: type: comma_delimited_list keystone_admin_api_node_ips: type: comma_delimited_list sahara_api_node_ips: type: comma_delimited_list DeployIdentifier: type: string description: > Setting this to a unique value will re-run any deployment tasks which perform configuration on a Heat stack-update. UpdateIdentifier: type: string description: > Setting to a previously unused value during stack-update will trigger package update on all nodes StackAction: type: string description: > Heat action on performed top-level stack. constraints: - allowed_values: ['CREATE', 'UPDATE'] resources: allNodesConfigImpl: type: OS::Heat::StructuredConfig properties: group: os-apply-config config: hosts: list_join: - "\n" - - list_join: - "\n" - {get_param: compute_hosts} - list_join: - "\n" - {get_param: controller_hosts} - list_join: - "\n" - {get_param: block_storage_hosts} - list_join: - "\n" - {get_param: object_storage_hosts} - list_join: - "\n" - {get_param: ceph_storage_hosts} hiera: datafiles: RedHat: raw_data: {get_file: hieradata/RedHat.yaml} all_nodes: mapped_data: controller_node_ips: list_join: - ',' - {get_param: controller_ips} controller_node_names: list_join: - ',' - {get_param: controller_names} galera_node_names: list_join: - ',' - {get_param: controller_names} rabbit_node_ips: &rabbit_nodes_array str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: rabbit_node_ips} mongo_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: mongo_node_ips} redis_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: redis_node_ips} memcache_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: memcache_node_ips} memcache_node_ips_v6: str_replace: template: "['inet6:[SERVERS_LIST]']" params: SERVERS_LIST: list_join: - "]','inet6:[" - {get_param: memcache_node_ips} mysql_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: mysql_node_ips} horizon_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: horizon_node_ips} heat_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: heat_api_node_ips} swift_proxy_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: swift_proxy_node_ips} ceilometer_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: ceilometer_api_node_ips} aodh_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: aodh_api_node_ips} gnocchi_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: gnocchi_api_node_ips} nova_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: nova_api_node_ips} nova_metadata_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: nova_metadata_node_ips} glance_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: glance_api_node_ips} glance_registry_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: glance_registry_node_ips} cinder_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: cinder_api_node_ips} neutron_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: neutron_api_node_ips} # TODO: pass a `midonet_api_node_ips` var midonet_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: neutron_api_node_ips} keystone_public_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: keystone_public_api_node_ips} keystone_admin_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: keystone_admin_api_node_ips} sahara_api_node_ips: str_replace: template: "['SERVERS_LIST']" params: SERVERS_LIST: list_join: - "','" - {get_param: sahara_api_node_ips} # NOTE(gfidente): interpolation with %{} in the # hieradata file can't be used as it returns string ceilometer::rabbit_hosts: *rabbit_nodes_array aodh::rabbit_hosts: *rabbit_nodes_array cinder::rabbit_hosts: *rabbit_nodes_array glance::notify::rabbitmq::rabbit_hosts: *rabbit_nodes_array heat::rabbit_hosts: *rabbit_nodes_array neutron::rabbit_hosts: *rabbit_nodes_array nova::rabbit_hosts: *rabbit_nodes_array keystone::rabbit_hosts: *rabbit_nodes_array sahara::rabbit_hosts: *rabbit_nodes_array deploy_identifier: {get_param: DeployIdentifier} update_identifier: {get_param: UpdateIdentifier} stack_action: {get_param: StackAction} outputs: config_id: description: The ID of the allNodesConfigImpl resource. value: {get_resource: allNodesConfigImpl} hosts_entries: description: | The content that should be appended to your /etc/hosts if you want to get hostname-based access to the deployed nodes (useful for testing without setting up a DNS). value: {get_attr: [allNodesConfigImpl, config, hosts]}