summaryrefslogtreecommitdiffstats
path: root/overcloud.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'overcloud.yaml')
-rw-r--r--overcloud.yaml145
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.