aboutsummaryrefslogtreecommitdiffstats
path: root/overcloud.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'overcloud.yaml')
-rw-r--r--overcloud.yaml320
1 files changed, 166 insertions, 154 deletions
diff --git a/overcloud.yaml b/overcloud.yaml
index 4bdd0b82..4092e11b 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:
@@ -34,8 +34,8 @@ parameters:
The DNS name of this cloud's storage management endpoint. E.g.
'ci-overcloud.storagemgmt.tripleo.org'.
type: string
- CloudNameManagement:
- default: overcloud.management.localdomain
+ CloudNameCtlplane:
+ default: overcloud.ctlplane.localdomain
description: >
The DNS name of this cloud's storage management endpoint. E.g.
'ci-overcloud.management.tripleo.org'.
@@ -103,18 +103,6 @@ parameters:
ControllerCount:
type: number
default: 1
- controllerExtraConfig:
- default: {}
- description: |
- Deprecated. Use ControllerExtraConfig via parameter_defaults instead.
- type: json
- ExtraConfig:
- default: {}
- description: |
- Additional configuration to inject into the cluster. The format required
- may be implementation specific, e.g puppet hieradata. Any role specific
- ExtraConfig, e.g controllerExtraConfig takes precedence over ExtraConfig.
- type: json
# Compute-specific params
ComputeCount:
@@ -199,6 +187,8 @@ parameters:
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::OpenDaylight
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::VipHosts
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 +214,8 @@ parameters:
- OS::TripleO::Services::TripleoFirewall
- OS::TripleO::Services::NeutronSriovAgent
- OS::TripleO::Services::OpenDaylightOvs
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::VipHosts
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.
@@ -233,12 +225,6 @@ parameters:
BlockStorageCount:
type: number
default: 0
- BlockStorageExtraConfig:
- default: {}
- description: |
- BlockStorage specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
- type: json
BlockStorageServices:
default:
- OS::TripleO::Services::CACerts
@@ -249,6 +235,8 @@ parameters:
- OS::TripleO::Services::Snmp
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::VipHosts
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.
@@ -258,12 +246,6 @@ parameters:
ObjectStorageCount:
type: number
default: 0
- ObjectStorageExtraConfig:
- default: {}
- description: |
- ObjectStorage specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
- type: json
ObjectStorageServices:
default:
- OS::TripleO::Services::CACerts
@@ -275,6 +257,8 @@ parameters:
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::VipHosts
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.
@@ -286,12 +270,6 @@ parameters:
CephStorageCount:
type: number
default: 0
- CephStorageExtraConfig:
- default: {}
- description: |
- CephStorage specific configuration to inject into the cluster. Same
- structure as ExtraConfig.
- type: json
CephStorageServices:
default:
- OS::TripleO::Services::CACerts
@@ -301,6 +279,8 @@ parameters:
- OS::TripleO::Services::Timezone
- OS::TripleO::Services::TripleoPackages
- OS::TripleO::Services::TripleoFirewall
+ - OS::TripleO::Services::SensuClient
+ - OS::TripleO::Services::VipHosts
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.
@@ -379,12 +359,6 @@ parameters:
List of resources to be removed from CephStorageResourceGroup when
doing an update which requires removal of specific resources.
-parameter_groups:
-- label: deprecated
- description: Do not use deprecated params, they will be removed.
- parameters:
- - controllerExtraConfig
-
resources:
@@ -412,7 +386,7 @@ resources:
internal_api: {get_param: CloudNameInternal}
storage: {get_param: CloudNameStorage}
storage_mgmt: {get_param: CloudNameStorageManagement}
- management: {get_param: CloudNameManagement}
+ ctlplane: {get_param: CloudNameCtlplane}
NetIpMap: {get_attr: [VipMap, net_ip_map]}
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
@@ -434,10 +408,6 @@ resources:
type: OS::TripleO::Controller
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:
@@ -446,8 +416,17 @@ resources:
params:
'%stackname%': {get_param: 'OS::stack_name'}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [ControllerServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [ControllerServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [ControllerServiceChain, role_data, service_names]}
+ MonitoringSubscriptions: {get_attr: [ControllerServiceChain, role_data, monitoring_subscriptions]}
ComputeServiceChain:
type: OS::TripleO::Services
@@ -477,8 +456,16 @@ resources:
params:
'%stackname%': {get_param: 'OS::stack_name'}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [ComputeServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [ComputeServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [ComputeServiceChain, role_data, service_names]}
+ MonitoringSubscriptions: {get_attr: [ComputeServiceChain, role_data, monitoring_subscriptions]}
BlockStorageServiceChain:
type: OS::TripleO::Services
@@ -504,13 +491,19 @@ resources:
params:
'%stackname%': {get_param: 'OS::stack_name'}
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]}
- ExtraConfig: {get_param: ExtraConfig}
- BlockStorageExtraConfig: {get_param: BlockStorageExtraConfig}
CloudDomain: {get_param: CloudDomain}
ServerMetadata: {get_param: ServerMetadata}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [BlockStorageServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [BlockStorageServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [BlockStorageServiceChain, role_data, service_names]}
+ MonitoringSubscriptions: {get_attr: [BlockStorageServiceChain, role_data, monitoring_subscriptions]}
ObjectStorageServiceChain:
type: OS::TripleO::Services
@@ -536,13 +529,19 @@ resources:
template: {get_param: ObjectStorageHostnameFormat}
params:
'%stackname%': {get_param: 'OS::stack_name'}
- ExtraConfig: {get_param: ExtraConfig}
- ObjectStorageExtraConfig: {get_param: ObjectStorageExtraConfig}
CloudDomain: {get_param: CloudDomain}
ServerMetadata: {get_param: ServerMetadata}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [ObjectStorageServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [ObjectStorageServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_config_settings]
ServiceNames: {get_attr: [ObjectStorageServiceChain, role_data, service_names]}
+ MonitoringSubscriptions: {get_attr: [ObjectStorageServiceChain, role_data, monitoring_subscriptions]}
CephStorageServiceChain:
type: OS::TripleO::Services
@@ -568,13 +567,19 @@ resources:
template: {get_param: CephStorageHostnameFormat}
params:
'%stackname%': {get_param: 'OS::stack_name'}
- ExtraConfig: {get_param: ExtraConfig}
- CephStorageExtraConfig: {get_param: CephStorageExtraConfig}
CloudDomain: {get_param: CloudDomain}
ServerMetadata: {get_param: ServerMetadata}
NodeIndex: '%index%'
- ServiceConfigSettings: {get_attr: [CephStorageServiceChain, role_data, config_settings]}
+ ServiceConfigSettings:
+ map_merge:
+ - get_attr: [CephStorageServiceChain, role_data, config_settings]
+ - get_attr: [ControllerServiceChain, role_data, global_config_settings]
+ - get_attr: [ComputeServiceChain, role_data, global_config_settings]
+ - get_attr: [BlockStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [ObjectStorageServiceChain, role_data, global_config_settings]
+ - get_attr: [CephStorageServiceChain, role_data, global_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,10 +593,72 @@ 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
properties:
+ cloud_name_external: {get_param: CloudName}
+ cloud_name_internal_api: {get_param: CloudNameInternal}
+ cloud_name_storage: {get_param: CloudNameStorage}
+ cloud_name_storage_mgmt: {get_param: CloudNameStorageManagement}
+ cloud_name_ctlplane: {get_param: CloudNameCtlplane}
hosts:
- list_join:
- '\n'
@@ -618,13 +685,37 @@ 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]}
+ RedisVirtualIP: {get_attr: [RedisVirtualIP, ip_address]}
+ ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
DeployIdentifier: {get_param: DeployIdentifier}
UpdateIdentifier: {get_param: UpdateIdentifier}
@@ -720,66 +811,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:
- name: ControllerSwiftDeployment
- config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
- servers: {get_attr: [Controller, attributes, nova_server_resource]}
-
- ObjectStorageSwiftDeployment:
- type: OS::Heat::StructuredDeployments
- properties:
- name: ObjectStorageSwiftDeployment
- config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
- servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
-
- SwiftDevicesAndProxyConfig:
- type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
- 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
properties:
@@ -914,41 +945,22 @@ resources:
objectstorage_servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
cephstorage_servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
- # Nested stack deployment runs after all other controller deployments
- ControllerNodesPostDeployment:
- type: OS::TripleO::ControllerPostDeployment
- depends_on: [ControllerAllNodesDeployment, ControllerSwiftDeployment]
- properties:
- servers: {get_attr: [Controller, attributes, nova_server_resource]}
- RoleData: {get_attr: [ControllerServiceChain, role_data]}
-
- ComputeNodesPostDeployment:
- type: OS::TripleO::ComputePostDeployment
- depends_on: [ComputeAllNodesDeployment]
- properties:
- servers: {get_attr: [Compute, attributes, nova_server_resource]}
- RoleData: {get_attr: [ComputeServiceChain, role_data]}
-
- ObjectStorageNodesPostDeployment:
- type: OS::TripleO::ObjectStoragePostDeployment
- depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
+ # Post deployment steps for all roles
+ AllNodesDeploySteps:
+ type: OS::TripleO::PostDeploySteps
properties:
- servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
- RoleData: {get_attr: [ObjectStorageServiceChain, role_data]}
-
- BlockStorageNodesPostDeployment:
- type: OS::TripleO::BlockStoragePostDeployment
- depends_on: [ControllerNodesPostDeployment, BlockStorageAllNodesDeployment]
- properties:
- servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
- RoleData: {get_attr: [BlockStorageServiceChain, role_data]}
-
- CephStorageNodesPostDeployment:
- type: OS::TripleO::CephStoragePostDeployment
- depends_on: [ControllerNodesPostDeployment, CephStorageAllNodesDeployment]
- properties:
- servers: {get_attr: [CephStorage, attributes, nova_server_resource]}
- RoleData: {get_attr: [CephStorageServiceChain, role_data]}
+ servers:
+ Controller: {get_attr: [Controller, attributes, nova_server_resource]}
+ Compute: {get_attr: [Compute, attributes, nova_server_resource]}
+ BlockStorage: {get_attr: [BlockStorage, attributes, nova_server_resource]}
+ ObjectStorage: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+ CephStorage: {get_attr: [CephStorage, attributes, nova_server_resource]}
+ role_data:
+ Controller: {get_attr: [ControllerServiceChain, role_data]}
+ Compute: {get_attr: [ComputeServiceChain, role_data]}
+ BlockStorage: {get_attr: [BlockStorageServiceChain, role_data]}
+ ObjectStorage: {get_attr: [ObjectStorageServiceChain, role_data]}
+ CephStorage: {get_attr: [CephStorageServiceChain, role_data]}
outputs:
ManagedEndpoints: