diff options
Diffstat (limited to 'overcloud.j2.yaml')
-rw-r--r-- | overcloud.j2.yaml | 336 |
1 files changed, 49 insertions, 287 deletions
diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml index 20d6488d..88a91e38 100644 --- a/overcloud.j2.yaml +++ b/overcloud.j2.yaml @@ -99,15 +99,8 @@ parameters: the overcloud. It's accessible via the Nova metadata API. type: json - # Controller-specific params - ControllerCount: - type: number - default: 1 - # Compute-specific params - ComputeCount: - type: number - default: 1 +# FIXME(shardy) handle these deprecated names as they don't match compute.yaml HypervisorNeutronPhysicalBridge: default: 'br-ex' description: > @@ -122,7 +115,7 @@ parameters: # Jinja loop for Role in role_data.yaml {% for role in roles %} - # Resources generated for {{role.name}} Role + # Parameters generated for {{role.name}} Role {{role.name}}Services: description: A list of service resources (configured in the Heat resource_registry) which represent nested stacks @@ -131,47 +124,32 @@ parameters: {% if role.ServicesDefault %} default: {{role.ServicesDefault}} {% endif %} -{% endfor %} - -# Block storage specific parameters - BlockStorageCount: - type: number - default: 0 - -# Object storage specific parameters - ObjectStorageCount: - type: number - default: 0 -# Ceph storage specific parameters - CephStorageCount: + {{role.name}}Count: + description: Number of {{role.name}} nodes to deploy type: number - default: 0 + {% if role.CountDefault %} + default: {{role.CountDefault}} + {% endif %} - # Hostname format for each role - # Note %index% is translated into the index of the node, e.g 0/1/2 etc - # and %stackname% is replaced with OS::stack_name in the template below. - # If you want to use the heat generated names, pass '' (empty string). - ControllerHostnameFormat: - type: string - description: Format for Controller node hostnames - default: '%stackname%-controller-%index%' - ComputeHostnameFormat: - type: string - description: Format for Compute node hostnames - default: '%stackname%-novacompute-%index%' - BlockStorageHostnameFormat: + {{role.name}}HostnameFormat: type: string - description: Format for BlockStorage node hostnames - default: '%stackname%-blockstorage-%index%' - ObjectStorageHostnameFormat: - type: string - description: Format for SwiftStorage node hostnames - default: '%stackname%-objectstorage-%index%' - CephStorageHostnameFormat: - type: string - description: Format for CephStorage node hostnames - default: '%stackname%-cephstorage-%index%' + description: > + Format for {{role.name}} node hostnames + Note %index% is translated into the index of the node, e.g 0/1/2 etc + and %stackname% is replaced with the stack name e.g overcloud + {% if role.HostnameFormatDefault %} + default: "{{role.HostnameFormatDefault}}" + {% endif %} + + {{role.name}}RemovalPolicies: + default: [] + type: json + description: > + List of resources to be removed from {{role.name}} ResourceGroup when + doing an update which requires removal of specific resources. + Example format ComputeRemovalPolicies: [{'resource_list': ['0']}] +{% endfor %} # Identifiers to trigger tasks on nodes UpdateIdentifier: @@ -187,41 +165,6 @@ parameters: Setting this to a unique value will re-run any deployment tasks which perform configuration on a Heat stack-update. - # If you want to remove a specific node from a resource group, you can pass - # the node name or id as a <Group>RemovalPolicies parameter, for example: - # ComputeRemovalPolicies: [{'resource_list': ['0']}] - ControllerRemovalPolicies: - default: [] - type: json - description: > - List of resources to be removed from ControllerResourceGroup when - doing an update which requires removal of specific resources. - ComputeRemovalPolicies: - default: [] - type: json - description: > - List of resources to be removed from ComputeResourceGroup when - doing an update which requires removal of specific resources. - BlockStorageRemovalPolicies: - default: [] - type: json - description: > - List of resources to be removed from BlockStorageResourceGroup when - doing an update which requires removal of specific resources. - ObjectStorageRemovalPolicies: - default: [] - type: json - description: > - List of resources to be removed from ObjectStorageResourceGroup when - doing an update which requires removal of specific resources. - CephStorageRemovalPolicies: - default: [] - type: json - description: > - List of resources to be removed from CephStorageResourceGroup when - doing an update which requires removal of specific resources. - - resources: HeatAuthEncryptionKey: @@ -282,228 +225,47 @@ resources: config: {get_resource: AllNodesValidationConfig} servers: {get_attr: [{{role.name}}, attributes, nova_server_resource]} -{% endfor %} - - Controller: - type: OS::Heat::ResourceGroup - depends_on: Networks + {{role.name}}IpListMap: + type: OS::TripleO::Network::Ports::NetIpListMap properties: - count: {get_param: ControllerCount} - removal_policies: {get_param: ControllerRemovalPolicies} - resource_def: - type: OS::TripleO::Controller - properties: - CloudDomain: {get_param: CloudDomain} - ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]} - EndpointMap: {get_attr: [EndpointMap, endpoint_map]} - Hostname: - str_replace: - template: {get_param: ControllerHostnameFormat} - params: - '%stackname%': {get_param: 'OS::stack_name'} - NodeIndex: '%index%' - 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]} - - Compute: + ControlPlaneIpList: {get_attr: [{{role.name}}, ip_address]} + ExternalIpList: {get_attr: [{{role.name}}, external_ip_address]} + InternalApiIpList: {get_attr: [{{role.name}}, internal_api_ip_address]} + StorageIpList: {get_attr: [{{role.name}}, storage_ip_address]} + StorageMgmtIpList: {get_attr: [{{role.name}}, storage_mgmt_ip_address]} + TenantIpList: {get_attr: [{{role.name}}, tenant_ip_address]} + ManagementIpList: {get_attr: [{{role.name}}, management_ip_address]} + EnabledServices: {get_attr: [{{role.name}}ServiceChain, role_data, service_names]} + ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]} + ServiceHostnameList: {get_attr: [{{role.name}}, hostname]} + + {{role.name}}: type: OS::Heat::ResourceGroup depends_on: Networks properties: - count: {get_param: ComputeCount} - removal_policies: {get_param: ComputeRemovalPolicies} + count: {get_param: {{role.name}}Count} + removal_policies: {get_param: {{role.name}}RemovalPolicies} resource_def: - type: OS::TripleO::Compute + type: OS::TripleO::{{role.name}} properties: CloudDomain: {get_param: CloudDomain} - NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge} - NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface} ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]} EndpointMap: {get_attr: [EndpointMap, endpoint_map]} Hostname: str_replace: - template: {get_param: ComputeHostnameFormat} + template: {get_param: {{role.name}}HostnameFormat} params: '%stackname%': {get_param: 'OS::stack_name'} NodeIndex: '%index%' 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]} - - BlockStorage: - type: OS::Heat::ResourceGroup - depends_on: Networks - properties: - count: {get_param: BlockStorageCount} - removal_policies: {get_param: BlockStorageRemovalPolicies} - resource_def: - type: OS::TripleO::BlockStorage - properties: - UpdateIdentifier: {get_param: UpdateIdentifier} - Hostname: - str_replace: - template: {get_param: BlockStorageHostnameFormat} - params: - '%stackname%': {get_param: 'OS::stack_name'} - ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]} - CloudDomain: {get_param: CloudDomain} - ServerMetadata: {get_param: ServerMetadata} - NodeIndex: '%index%' - 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]} - - ObjectStorage: - type: OS::Heat::ResourceGroup - depends_on: Networks - properties: - count: {get_param: ObjectStorageCount} - removal_policies: {get_param: ObjectStorageRemovalPolicies} - resource_def: - type: OS::TripleO::ObjectStorage - properties: - UpdateIdentifier: {get_param: UpdateIdentifier} - ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]} - Hostname: - str_replace: - template: {get_param: ObjectStorageHostnameFormat} - params: - '%stackname%': {get_param: 'OS::stack_name'} - CloudDomain: {get_param: CloudDomain} - ServerMetadata: {get_param: ServerMetadata} - NodeIndex: '%index%' - 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]} - - CephStorage: - type: OS::Heat::ResourceGroup - depends_on: Networks - properties: - count: {get_param: CephStorageCount} - removal_policies: {get_param: CephStorageRemovalPolicies} - resource_def: - type: OS::TripleO::CephStorage - properties: - ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map]} - UpdateIdentifier: {get_param: UpdateIdentifier} - Hostname: - str_replace: - template: {get_param: CephStorageHostnameFormat} - params: - '%stackname%': {get_param: 'OS::stack_name'} - CloudDomain: {get_param: CloudDomain} - ServerMetadata: {get_param: ServerMetadata} - NodeIndex: '%index%' - 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 - properties: - ControlPlaneIpList: {get_attr: [Controller, ip_address]} - ExternalIpList: {get_attr: [Controller, external_ip_address]} - InternalApiIpList: {get_attr: [Controller, internal_api_ip_address]} - StorageIpList: {get_attr: [Controller, storage_ip_address]} - 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]} - 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]} + - get_attr: [{{role.name}}ServiceChain, role_data, config_settings] + {% for r in roles %} + - get_attr: [{{r.name}}ServiceChain, role_data, global_config_settings] + {% endfor %} + ServiceNames: {get_attr: [{{role.name}}ServiceChain, role_data, service_names]} + MonitoringSubscriptions: {get_attr: [{{role.name}}ServiceChain, role_data, monitoring_subscriptions]} +{% endfor %} allNodesConfig: type: OS::TripleO::AllNodes::SoftwareConfig |