heat_template_version: 2015-04-30
description: 'All Nodes Config'

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
  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
  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

resources:

  allNodesConfigImpl:
    type: OS::Heat::StructuredConfig
    properties:
      config:
        completion-signal: {get_input: deploy_signal_id}
        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}
        rabbit:
          nodes:
            list_join:
            - ','
            - {get_param: controller_names}
        sysctl:
          net.ipv4.tcp_keepalive_time: 5
          net.ipv4.tcp_keepalive_probes: 5
          net.ipv4.tcp_keepalive_intvl: 1

outputs:
  config_id:
    description: The ID of the allNodesConfigImpl resource.
    value:
      {get_resource: allNodesConfigImpl}