diff options
Diffstat (limited to 'overcloud.yaml')
-rw-r--r-- | overcloud.yaml | 145 |
1 files changed, 97 insertions, 48 deletions
diff --git a/overcloud.yaml b/overcloud.yaml index 4bdd0b82..6e039178 100644 --- a/overcloud.yaml +++ b/overcloud.yaml @@ -1,8 +1,8 @@ -heat_template_version: 2016-04-08 +heat_template_version: 2016-10-14 description: > Deploy an OpenStack environment, consisting of several node types (roles), - Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage + Controller, Compute, BlockStorage, SwiftStorage and CephStorage. The Storage roles enable independent scaling of the storage components, but the minimal deployment is one Controller and one Compute node. @@ -13,7 +13,7 @@ parameters: # Common parameters (not specific to a role) CloudName: - default: overcloud + default: overcloud.localdomain description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org type: string CloudNameInternal: @@ -199,6 +199,7 @@ parameters: - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::OpenDaylight + - OS::TripleO::Services::SensuClient 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. @@ -224,6 +225,7 @@ parameters: - OS::TripleO::Services::TripleoFirewall - OS::TripleO::Services::NeutronSriovAgent - OS::TripleO::Services::OpenDaylightOvs + - OS::TripleO::Services::SensuClient 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. @@ -249,6 +251,7 @@ parameters: - OS::TripleO::Services::Snmp - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient 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 BlockStorage nodes. @@ -275,6 +278,7 @@ parameters: - OS::TripleO::Services::Timezone - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient 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 ObjectStorage nodes. @@ -301,6 +305,7 @@ parameters: - OS::TripleO::Services::Timezone - OS::TripleO::Services::TripleoPackages - OS::TripleO::Services::TripleoFirewall + - OS::TripleO::Services::SensuClient 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 CephStorage nodes. @@ -435,9 +440,7 @@ resources: properties: CloudDomain: {get_param: CloudDomain} controllerExtraConfig: {get_param: controllerExtraConfig} - PcsdPassword: {get_resource: PcsdPassword} 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]} Hostname: @@ -448,6 +451,7 @@ resources: NodeIndex: '%index%' ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]} ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]} + MonitoringSubscriptions: {get_attr: [ControllerServiceChain, role_data, monitoring_subscriptions]} ComputeServiceChain: type: OS::TripleO::Services @@ -479,6 +483,7 @@ resources: NodeIndex: '%index%' ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]} ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]} + MonitoringSubscriptions: {get_attr: [ComputeServiceChain, role_data, monitoring_subscriptions]} BlockStorageServiceChain: type: OS::TripleO::Services @@ -511,6 +516,7 @@ resources: NodeIndex: '%index%' ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]} ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]} + MonitoringSubscriptions: {get_attr: [BlockStorageServiceChain, role_data, monitoring_subscriptions]} ObjectStorageServiceChain: type: OS::TripleO::Services @@ -543,6 +549,7 @@ resources: NodeIndex: '%index%' ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]} ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]} + MonitoringSubscriptions: {get_attr: [ObjectStorageServiceChain, role_data, monitoring_subscriptions]} CephStorageServiceChain: type: OS::TripleO::Services @@ -575,6 +582,7 @@ resources: NodeIndex: '%index%' ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]} ServiceNames: {get_attr: [CephStorageServiceChain, role_data, service_names]} + MonitoringSubscriptions: {get_attr: [CephStorageServiceChain, role_data, monitoring_subscriptions]} ControllerIpListMap: type: OS::TripleO::Network::Ports::NetIpListMap @@ -588,6 +596,63 @@ resources: ManagementIpList: {get_attr: [Controller, management_ip_address]} EnabledServices: {get_attr: [ControllerServiceChain, role_data, service_names]} ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} + ServiceHostnameList: {get_attr: [Controller, hostname]} + + ComputeIpListMap: + type: OS::TripleO::Network::Ports::NetIpListMap + properties: + ControlPlaneIpList: {get_attr: [Compute, ip_address]} + ExternalIpList: {get_attr: [Compute, external_ip_address]} + InternalApiIpList: {get_attr: [Compute, internal_api_ip_address]} + StorageIpList: {get_attr: [Compute, storage_ip_address]} + StorageMgmtIpList: {get_attr: [Compute, storage_mgmt_ip_address]} + TenantIpList: {get_attr: [Compute, tenant_ip_address]} + ManagementIpList: {get_attr: [Compute, management_ip_address]} + EnabledServices: {get_attr: [ComputeServiceChain, role_data, service_names]} + ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} + ServiceHostnameList: {get_attr: [Compute, hostname]} + + BlockStorageIpListMap: + type: OS::TripleO::Network::Ports::NetIpListMap + properties: + ControlPlaneIpList: {get_attr: [BlockStorage, ip_address]} + ExternalIpList: {get_attr: [BlockStorage, external_ip_address]} + InternalApiIpList: {get_attr: [BlockStorage, internal_api_ip_address]} + StorageIpList: {get_attr: [BlockStorage, storage_ip_address]} + StorageMgmtIpList: {get_attr: [BlockStorage, storage_mgmt_ip_address]} + TenantIpList: {get_attr: [BlockStorage, tenant_ip_address]} + ManagementIpList: {get_attr: [BlockStorage, management_ip_address]} + EnabledServices: {get_attr: [BlockStorageServiceChain, role_data, service_names]} + ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} + ServiceHostnameList: {get_attr: [BlockStorage, hostname]} + + ObjectStorageIpListMap: + type: OS::TripleO::Network::Ports::NetIpListMap + properties: + ControlPlaneIpList: {get_attr: [ObjectStorage, ip_address]} + ExternalIpList: {get_attr: [ObjectStorage, external_ip_address]} + InternalApiIpList: {get_attr: [ObjectStorage, internal_api_ip_address]} + StorageIpList: {get_attr: [ObjectStorage, storage_ip_address]} + StorageMgmtIpList: {get_attr: [ObjectStorage, storage_mgmt_ip_address]} + TenantIpList: {get_attr: [ObjectStorage, tenant_ip_address]} + ManagementIpList: {get_attr: [ObjectStorage, management_ip_address]} + EnabledServices: {get_attr: [ObjectStorageServiceChain, role_data, service_names]} + ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} + ServiceHostnameList: {get_attr: [ObjectStorage, hostname]} + + CephStorageIpListMap: + type: OS::TripleO::Network::Ports::NetIpListMap + properties: + ControlPlaneIpList: {get_attr: [CephStorage, ip_address]} + ExternalIpList: {get_attr: [CephStorage, external_ip_address]} + InternalApiIpList: {get_attr: [CephStorage, internal_api_ip_address]} + StorageIpList: {get_attr: [CephStorage, storage_ip_address]} + StorageMgmtIpList: {get_attr: [CephStorage, storage_mgmt_ip_address]} + TenantIpList: {get_attr: [CephStorage, tenant_ip_address]} + ManagementIpList: {get_attr: [CephStorage, management_ip_address]} + EnabledServices: {get_attr: [CephStorageServiceChain, role_data, service_names]} + ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} + ServiceHostnameList: {get_attr: [CephStorage, hostname]} allNodesConfig: type: OS::TripleO::AllNodes::SoftwareConfig @@ -618,13 +683,36 @@ resources: - {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]} + service_ips: + # Note (shardy) this somewhat complex yaql may be replaced + # with a map_deep_merge function in ocata. It merges the + # list of maps, but appends to colliding lists when a service + # is deployed on more than one role + yaql: + expression: dict($.data.l.where($ != null).selectMany($.items()).groupBy($[0], $[1], [$[0], $[1].flatten()])) + data: + l: + - {get_attr: [ControllerIpListMap, service_ips]} + - {get_attr: [ComputeIpListMap, service_ips]} + - {get_attr: [BlockStorageIpListMap, service_ips]} + - {get_attr: [ObjectStorageIpListMap, service_ips]} + - {get_attr: [CephStorageIpListMap, service_ips]} + service_node_names: + yaql: + expression: dict($.data.l.where($ != null).selectMany($.items()).groupBy($[0], $[1], [$[0], $[1].flatten()])) + data: + l: + - {get_attr: [ControllerIpListMap, service_hostnames]} + - {get_attr: [ComputeIpListMap, service_hostnames]} + - {get_attr: [BlockStorageIpListMap, service_hostnames]} + - {get_attr: [ObjectStorageIpListMap, service_hostnames]} + - {get_attr: [CephStorageIpListMap, service_hostnames]} # 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]}]} memcache_node_ips: {get_attr: [ControllerIpListMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MemcachedNetwork]}]} 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]}]} - ceph_mon_node_names: {get_attr: [Controller, hostname]} + NetVipMap: {get_attr: [VipMap, net_ip_map]} + ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} DeployIdentifier: {get_param: DeployIdentifier} UpdateIdentifier: {get_param: UpdateIdentifier} @@ -720,45 +808,6 @@ resources: StorageMgmtIpUri: {get_attr: [StorageMgmtVirtualIP, ip_address_uri]} # No tenant or management VIP required - VipConfig: - type: OS::TripleO::VipConfig - - VipDeployment: - type: OS::Heat::StructuredDeployments - properties: - name: VipDeployment - config: {get_resource: VipConfig} - servers: {get_attr: [Controller, attributes, nova_server_resource]} - input_values: - # service VIP mappings - keystone_admin_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystoneAdminApiNetwork]}]} - keystone_public_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, KeystonePublicApiNetwork]}]} - neutron_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NeutronApiNetwork]}]} - cinder_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CinderApiNetwork]}]} - glance_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceApiNetwork]}]} - glance_registry_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GlanceRegistryNetwork]}]} - swift_proxy_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, SwiftProxyNetwork]}]} - nova_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaApiNetwork]}]} - nova_metadata_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, NovaMetadataNetwork]}]} - ceilometer_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, CeilometerApiNetwork]}]} - aodh_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, AodhApiNetwork]}]} - gnocchi_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, GnocchiApiNetwork]}]} - heat_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HeatApiNetwork]}]} - horizon_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, HorizonNetwork]}]} - redis_vip: {get_attr: [RedisVirtualIP, ip_address]} - manila_api_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, ManilaApiNetwork]}]} - mysql_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, MysqlNetwork]}]} - rabbit_vip: {get_attr: [VipMap, net_ip_map, {get_attr: [ServiceNetMap, service_net_map, RabbitMqNetwork]}]} - # direct configuration of Virtual IPs for each network - control_virtual_ip: {get_attr: [VipMap, net_ip_map, ctlplane]} - public_virtual_ip: {get_attr: [VipMap, net_ip_map, external]} - 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]} - ControllerSwiftDeployment: type: OS::Heat::StructuredDeployments properties: @@ -778,7 +827,6 @@ resources: properties: controller_swift_devices: {get_attr: [Controller, swift_device]} object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]} - controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]} ControllerAllNodesDeployment: type: OS::Heat::StructuredDeployments @@ -950,6 +998,7 @@ resources: servers: {get_attr: [CephStorage, attributes, nova_server_resource]} RoleData: {get_attr: [CephStorageServiceChain, role_data]} + outputs: ManagedEndpoints: description: Asserts that the keystone endpoints have been provisioned. |