aboutsummaryrefslogtreecommitdiffstats
path: root/overcloud.j2.yaml
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-09-05 22:57:43 +0100
committerEmilien Macchi <emilien@redhat.com>2016-09-13 19:54:29 +0000
commite8510077ea45bade550615e348a7fa6392639da9 (patch)
tree5f621f202a26f8770dfa2a6d677f9063a86b4335 /overcloud.j2.yaml
parentfea45b47adb4217722791a0551055dd4a3a6f02c (diff)
Move role ResourceGroups inside the jinja2 loop
This moves the now nearly identical group resources inside the loop there's a FIXME related to some deprecated compute parameters we'll need to work around. Change-Id: Iddd63c42754867125e65e7721ab9d9f46f4d6afb Partially-Implements: blueprint custom-roles
Diffstat (limited to 'overcloud.j2.yaml')
-rw-r--r--overcloud.j2.yaml254
1 files changed, 36 insertions, 218 deletions
diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml
index d9dcaee9..a7beeade 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:
+ {{role.name}}Count:
+ description: Number of {{role.name}} nodes to deploy
type: number
- default: 0
-
-# Ceph storage specific parameters
- CephStorageCount:
- 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:
- type: string
- description: Format for BlockStorage node hostnames
- default: '%stackname%-blockstorage-%index%'
- ObjectStorageHostnameFormat:
+ {{role.name}}HostnameFormat:
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:
@@ -296,158 +239,33 @@ resources:
ServiceNetMap: {get_attr: [ServiceNetMap, service_net_map_lower]}
ServiceHostnameList: {get_attr: [{{role.name}}, hostname]}
-{% endfor %}
-
- Controller:
- type: OS::Heat::ResourceGroup
- depends_on: Networks
- 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:
+ {{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}
- 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}
+ template: {get_param: {{role.name}}HostnameFormat}
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]}
+ - 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