Merge "configure Heat with new authtoken parameters"
[apex-tripleo-heat-templates.git] / overcloud.yaml
index a4f8fee..4bdd0b8 100644 (file)
@@ -16,6 +16,30 @@ parameters:
     default: overcloud
     description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
     type: string
+  CloudNameInternal:
+    default: overcloud.internalapi.localdomain
+    description: >
+      The DNS name of this cloud's internal API endpoint. E.g.
+      'ci-overcloud.internalapi.tripleo.org'.
+    type: string
+  CloudNameStorage:
+    default: overcloud.storage.localdomain
+    description: >
+      The DNS name of this cloud's storage endpoint. E.g.
+      'ci-overcloud.storage.tripleo.org'.
+    type: string
+  CloudNameStorageManagement:
+    default: overcloud.storagemgmt.localdomain
+    description: >
+      The DNS name of this cloud's storage management endpoint. E.g.
+      'ci-overcloud.storagemgmt.tripleo.org'.
+    type: string
+  CloudNameManagement:
+    default: overcloud.management.localdomain
+    description: >
+      The DNS name of this cloud's storage management endpoint. E.g.
+      'ci-overcloud.management.tripleo.org'.
+    type: string
   ControlFixedIPs:
     default: []
     description: Should be used for arbitrary ips.
@@ -56,6 +80,12 @@ parameters:
         Control the IP allocation for the StorageMgmgVirtualInterface port. E.g.
         [{'ip_address':'1.2.3.4'}]
     type: json
+  RedisVirtualFixedIPs:
+    default: []
+    description: >
+        Control the IP allocation for the virtual IP used by Redis. E.g.
+        [{'ip_address':'1.2.3.4'}]
+    type: json
   CloudDomain:
     default: 'localdomain'
     type: string
@@ -85,11 +115,6 @@ parameters:
       may be implementation specific, e.g puppet hieradata.  Any role specific
       ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
     type: json
-  SwiftHashSuffix:
-    description: A random string to be used as a salt when hashing to determine mappings in the ring.
-    type: string
-    hidden: true
-
 
 # Compute-specific params
   ComputeCount:
@@ -109,6 +134,7 @@ parameters:
 
   ControllerServices:
     default:
+      - OS::TripleO::Services::CACerts
       - OS::TripleO::Services::CephMon
       - OS::TripleO::Services::CephExternal
       - OS::TripleO::Services::CinderApi
@@ -172,6 +198,7 @@ parameters:
       - OS::TripleO::Services::NovaIronic
       - OS::TripleO::Services::TripleoPackages
       - OS::TripleO::Services::TripleoFirewall
+      - OS::TripleO::Services::OpenDaylight
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the Controllers.
@@ -179,6 +206,7 @@ parameters:
 
   ComputeServices:
     default:
+      - OS::TripleO::Services::CACerts
       - OS::TripleO::Services::CephClient
       - OS::TripleO::Services::CephExternal
       - OS::TripleO::Services::Timezone
@@ -194,6 +222,8 @@ parameters:
       - OS::TripleO::Services::ComputeNeutronMetadataAgent
       - OS::TripleO::Services::TripleoPackages
       - OS::TripleO::Services::TripleoFirewall
+      - OS::TripleO::Services::NeutronSriovAgent
+      - OS::TripleO::Services::OpenDaylightOvs
     description: A list of service resources (configured in the Heat
                  resource_registry) which represent nested stacks
                  for each service that should get installed on the Compute Nodes.
@@ -211,6 +241,7 @@ parameters:
     type: json
   BlockStorageServices:
     default:
+      - OS::TripleO::Services::CACerts
       - OS::TripleO::Services::CinderVolume
       - OS::TripleO::Services::Kernel
       - OS::TripleO::Services::Ntp
@@ -235,6 +266,7 @@ parameters:
     type: json
   ObjectStorageServices:
     default:
+      - OS::TripleO::Services::CACerts
       - OS::TripleO::Services::Kernel
       - OS::TripleO::Services::Ntp
       - OS::TripleO::Services::SwiftStorage
@@ -262,6 +294,7 @@ parameters:
     type: json
   CephStorageServices:
     default:
+      - OS::TripleO::Services::CACerts
       - OS::TripleO::Services::CephOSD
       - OS::TripleO::Services::Kernel
       - OS::TripleO::Services::Ntp
@@ -374,7 +407,12 @@ resources:
   EndpointMap:
     type: OS::TripleO::EndpointMap
     properties:
-      CloudName: {get_param: CloudName}
+      CloudEndpoints:
+        external: {get_param: CloudName}
+        internal_api: {get_param: CloudNameInternal}
+        storage: {get_param: CloudNameStorage}
+        storage_mgmt: {get_param: CloudNameStorageManagement}
+        management: {get_param: CloudNameManagement}
       NetIpMap: {get_attr: [VipMap, net_ip_map]}
       ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
 
@@ -397,17 +435,11 @@ resources:
         properties:
           CloudDomain: {get_param: CloudDomain}
           controllerExtraConfig: {get_param: controllerExtraConfig}
-          HeatAuthEncryptionKey: {get_resource: HeatAuthEncryptionKey}
-          HorizonSecret: {get_resource: HorizonSecret}
-          MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
-          MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
           PcsdPassword: {get_resource: PcsdPassword}
-          RabbitCookie: {get_attr: [RabbitCookie, value]}
           RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
           RedisVirtualIPUri: {get_attr: [RedisVirtualIP, ip_address_uri]}
           ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
           EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
-          MysqlVirtualIP: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
           Hostname:
             str_replace:
               template: {get_param: ControllerHostnameFormat}
@@ -437,9 +469,6 @@ resources:
           CloudDomain: {get_param: CloudDomain}
           NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
           NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
-          # L3 HA and Failover is not relevant for Computes, should be removed
-          NovaApiHost: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
-          NovaPublicIP: {get_attr: [VipMap, net_ip_map, external]}
           ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
           EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
           Hostname:
@@ -500,7 +529,6 @@ resources:
       resource_def:
         type: OS::TripleO::ObjectStorage
         properties:
-          HashSuffix: {get_param: SwiftHashSuffix}
           UpdateIdentifier: {get_param: UpdateIdentifier}
           ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
           Hostname:
@@ -558,6 +586,8 @@ resources:
       StorageMgmtIpList: {get_attr: [Controller, storage_mgmt_ip_address]}
       TenantIpList: {get_attr: [Controller, tenant_ip_address]}
       ManagementIpList: {get_attr: [Controller, management_ip_address]}
+      EnabledServices: {get_attr: [ControllerServiceChain, role_data, service_names]}
+      ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
 
   allNodesConfig:
     type: OS::TripleO::AllNodes::SoftwareConfig
@@ -578,31 +608,22 @@ resources:
         - list_join:
             - '\n'
             - {get_attr: [CephStorage, hosts_entry]}
+      enabled_services:
+        list_join:
+          - ','
+          - {get_attr: [ControllerServiceChain, role_data, service_names]}
+          - {get_attr: [ComputeServiceChain, role_data, service_names]}
+          - {get_attr: [BlockStorageServiceChain, role_data, service_names]}
+          - {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
+          - {get_attr: [CephStorageServiceChain, role_data, service_names]}
       controller_ips: {get_attr: [Controller, ip_address]}
       controller_names: {get_attr: [Controller, hostname]}
+      service_ips: {get_attr: [ControllerIpListMap, service_ips]}
+      # FIXME(shardy): These require further work to move into service_ips
       rabbit_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitmqNetwork]}]}
-      mongo_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MongodbNetwork]}]}
-      redis_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}]}
       memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]}
-      mysql_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]}
-      horizon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]}
-      heat_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]}
-      swift_proxy_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]}
-      ceilometer_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]}
-      aodh_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]}
-      gnocchi_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]}
-      nova_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
-      nova_metadata_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]}
-      glance_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]}
-      glance_registry_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]}
-      cinder_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]}
-      manila_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]}
-      neutron_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]}
       keystone_public_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]}
       keystone_admin_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]}
-      sahara_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
-      ironic_api_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
-      ceph_mon_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CephPublicNetwork]}]}
       ceph_mon_node_names: {get_attr: [Controller, hostname]}
       DeployIdentifier: {get_param: DeployIdentifier}
       UpdateIdentifier: {get_param: UpdateIdentifier}
@@ -612,11 +633,6 @@ resources:
     properties:
       length: 10
 
-  MysqlClusterUniquePart:
-    type: OS::Heat::RandomString
-    properties:
-      length: 10
-
   RabbitCookie:
     type: OS::Heat::RandomString
     properties:
@@ -627,7 +643,6 @@ resources:
     type: OS::TripleO::DefaultPasswords
     properties:
       DefaultMysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
-      DefaultMysqlClusterPassword: {get_attr: [MysqlClusterUniquePart, value]}
       DefaultRabbitCookie: {get_attr: [RabbitCookie, value]}
       DefaultHeatAuthEncryptionKey: {get_attr: [HeatAuthEncryptionKey, value]}
       DefaultPcsdPassword: {get_attr: [PcsdPassword, value]}
@@ -655,6 +670,7 @@ resources:
       PortName: redis_virtual_ip
       NetworkName: {get_attr: [ServiceNetMap, service_net_map, RedisNetwork]}
       ServiceName: redis
+      FixedIPs: {get_param: RedisVirtualFixedIPs}
 
   # The public VIP is on the External net, falls back to ctlplane
   PublicVirtualIP:
@@ -739,6 +755,7 @@ resources:
         internal_api_virtual_ip: {get_attr: [VipMap, net_ip_map, internal_api]}
         sahara_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}
         ironic_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, IronicApiNetwork]}]}
+        opendaylight_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
         storage_virtual_ip: {get_attr: [VipMap, net_ip_map, storage]}
         storage_mgmt_virtual_ip: {get_attr: [VipMap, net_ip_map, storage_mgmt]}
 
@@ -934,6 +951,9 @@ resources:
       RoleData: {get_attr: [CephStorageServiceChain, role_data]}
 
 outputs:
+  ManagedEndpoints:
+    description: Asserts that the keystone endpoints have been provisioned.
+    value: true
   KeystoneURL:
     description: URL for the Overcloud Keystone service
     value: {get_attr: [EndpointMap, endpoint_map, KeystonePublic, uri]}
@@ -976,6 +996,9 @@ outputs:
   NovaInternalVip:
     description: VIP for Nova API internal endpoint
     value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]}
+  OpenDaylightInternalVip:
+    description: VIP for OpenDaylight API internal endpoint
+    value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, OpenDaylightApiNetwork]}]}
   SaharaInternalVip:
     description: VIP for Sahara API internal endpoint
     value: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SaharaApiNetwork]}]}