diff options
Diffstat (limited to 'overcloud.yaml')
-rw-r--r-- | overcloud.yaml | 320 |
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: |