Merge "Rename opendaylight service to opendaylight_api"
[apex-tripleo-heat-templates.git] / puppet / all-nodes-config.yaml
index f1ce42b..20e50d4 100644 (file)
@@ -1,9 +1,13 @@
-heat_template_version: 2015-04-30
+heat_template_version: 2016-10-14
 description: 'All Nodes Config for Puppet'
 
 parameters:
   hosts:
     type: comma_delimited_list
+  # FIXME(shardy) this can be comma_delimited_list when
+  # https://bugs.launchpad.net/heat/+bug/1617019 is fixed
+  enabled_services:
+    type: string
   controller_ips:
     type: comma_delimited_list
   controller_names:
@@ -56,6 +60,8 @@ parameters:
     type: comma_delimited_list
   ceph_mon_node_names:
     type: comma_delimited_list
+  opendaylight_api_node_ips:
+    type: comma_delimited_list
   DeployIdentifier:
     type: string
     description: >
@@ -92,245 +98,267 @@ resources:
                 bootstrap_nodeid_ip: {get_input: bootstrap_nodeid_ip}
             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}
-                rabbitmq_node_ips: &rabbit_nodes_array
-                  str_replace:
-                    template: "['SERVERS_LIST']"
-                    params:
-                      SERVERS_LIST:
-                        list_join:
-                        - "','"
-                        - {get_param: rabbit_node_ips}
-                mongodb_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}
-                memcached_node_ips:
-                  str_replace:
-                    template: "['SERVERS_LIST']"
-                    params:
-                      SERVERS_LIST:
-                        list_join:
-                        - "','"
-                        - {get_param: memcache_node_ips}
-                memcached_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}
-                manila_api_node_ips:
-                  str_replace:
-                    template: "['SERVERS_LIST']"
-                    params:
-                      SERVERS_LIST:
-                        list_join:
-                        - "','"
-                        - {get_param: manila_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}
-                ironic_api_node_ips:
-                  str_replace:
-                    template: "['SERVERS_LIST']"
-                    params:
-                      SERVERS_LIST:
-                        list_join:
-                        - "','"
-                        - {get_param: ironic_api_node_ips}
+                map_merge:
+                  - enabled_services: {get_param: enabled_services}
+                  # This writes out a mapping of service_name_enabled: 'true'
+                  # For any services not enabled, hiera foo_enabled will
+                  # return nil, as it's undefined
+                  - map_merge:
+                      repeat:
+                        template:
+                          # Note this must be string 'true' due to
+                          # https://bugs.launchpad.net/heat/+bug/1617203
+                          SERVICE_enabled: 'true'
+                        for_each:
+                          SERVICE:
+                            str_split: [',', {get_param: enabled_services}]
+                  - 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}
+                    rabbitmq_node_ips: &rabbit_nodes_array
+                      str_replace:
+                        template: "['SERVERS_LIST']"
+                        params:
+                          SERVERS_LIST:
+                            list_join:
+                            - "','"
+                            - {get_param: rabbit_node_ips}
+                    mongodb_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}
+                    memcached_node_ips:
+                      str_replace:
+                        template: "['SERVERS_LIST']"
+                        params:
+                          SERVERS_LIST:
+                            list_join:
+                            - "','"
+                            - {get_param: memcache_node_ips}
+                    memcached_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}
+                    manila_api_node_ips:
+                      str_replace:
+                        template: "['SERVERS_LIST']"
+                        params:
+                          SERVERS_LIST:
+                            list_join:
+                            - "','"
+                            - {get_param: manila_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}
+                    ironic_api_node_ips:
+                      str_replace:
+                        template: "['SERVERS_LIST']"
+                        params:
+                          SERVERS_LIST:
+                            list_join:
+                            - "','"
+                            - {get_param: ironic_api_node_ips}
+                    opendaylight_api_node_ips:
+                      str_replace:
+                        template: "['SERVERS_LIST']"
+                        params:
+                          SERVERS_LIST:
+                            list_join:
+                            - "','"
+                            - {get_param: opendaylight_api_node_ips}
 
-                tripleo::profile::base::ceph::ceph_mon_initial_members:
-                  list_join:
-                  - ','
-                  - {get_param: ceph_mon_node_names}
-                tripleo::profile::base::ceph::ceph_mon_host:
-                  list_join:
-                  - ','
-                  - {get_param: ceph_mon_node_ips}
-                tripleo::profile::base::ceph::ceph_mon_host_v6:
-                  str_replace:
-                    template: "'[IPS_LIST]'"
-                    params:
-                      IPS_LIST:
-                        list_join:
-                        - '],['
-                        - {get_param: ceph_mon_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
-                manila::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
-                ironic::rabbit_hosts: *rabbit_nodes_array
+                    tripleo::profile::base::ceph::ceph_mon_initial_members:
+                      list_join:
+                      - ','
+                      - {get_param: ceph_mon_node_names}
+                    tripleo::profile::base::ceph::ceph_mon_host:
+                      list_join:
+                      - ','
+                      - {get_param: ceph_mon_node_ips}
+                    tripleo::profile::base::ceph::ceph_mon_host_v6:
+                      str_replace:
+                        template: "'[IPS_LIST]'"
+                        params:
+                          IPS_LIST:
+                            list_join:
+                            - '],['
+                            - {get_param: ceph_mon_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
+                    manila::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
+                    ironic::rabbit_hosts: *rabbit_nodes_array
 
-                deploy_identifier: {get_param: DeployIdentifier}
-                update_identifier: {get_param: UpdateIdentifier}
-                stack_action: {get_param: StackAction}
+                    deploy_identifier: {get_param: DeployIdentifier}
+                    update_identifier: {get_param: UpdateIdentifier}
+                    stack_action: {get_param: StackAction}
 
 outputs:
   config_id: