529768ae84
We need to generate the Pre and Post Puppet Tasks for all roles, not just the Controller role. Otherwise, you have to have a role specifically named Controller that is running your pacemaker services, or pacemaker won't be properly handled on stack-updates. When using deployed-server's it's actually not possible to have a role called Controller, since we need to use all custom roles so that we can set disable_contraints on each role. Further, it is not possible to redefine the Controller role since puppet/controller-role.yaml is listed in the excludes file. Change-Id: I737b24db90932e292b50b122640f66385f2d1c23 Partial-Bug: #1665060
103 lines
3.1 KiB
Django/Jinja
103 lines
3.1 KiB
Django/Jinja
# Post deployment steps for all roles
|
|
# A single config is re-applied with an incrementing step number
|
|
{% for role in roles %}
|
|
# {{role.name}} Role post-deploy steps
|
|
{{role.name}}ArtifactsConfig:
|
|
type: deploy-artifacts.yaml
|
|
|
|
{{role.name}}ArtifactsDeploy:
|
|
type: OS::Heat::StructuredDeployments
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
config: {get_resource: {{role.name}}ArtifactsConfig}
|
|
|
|
{{role.name}}PreConfig:
|
|
type: OS::TripleO::Tasks::{{role.name}}PreConfig
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
input_values:
|
|
update_identifier: {get_param: DeployIdentifier}
|
|
|
|
{{role.name}}Config:
|
|
type: OS::TripleO::{{role.name}}Config
|
|
properties:
|
|
StepConfig: {list_join: ["\n", {get_param: [role_data, {{role.name}}, step_config]}]}
|
|
|
|
{{role.name}}PrePuppet:
|
|
type: OS::TripleO::Tasks::{{role.name}}PrePuppet
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
input_values:
|
|
update_identifier: {get_param: DeployIdentifier}
|
|
|
|
{% if role.name in ['Controller', 'ObjectStorage'] %}
|
|
{{role.name}}SwiftRingDeploy:
|
|
type: OS::TripleO::Tasks::SwiftRingDeploy
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
{% endif %}
|
|
|
|
# Step through a series of configuration steps
|
|
{% for step in range(1, 6) %}
|
|
{{role.name}}Deployment_Step{{step}}:
|
|
type: OS::Heat::StructuredDeploymentGroup
|
|
{% if step == 1 %}
|
|
depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
|
|
{% else %}
|
|
depends_on:
|
|
{% for dep in roles %}
|
|
- {{dep.name}}Deployment_Step{{step -1}}
|
|
{% endfor %}
|
|
{% endif %}
|
|
properties:
|
|
name: {{role.name}}Deployment_Step{{step}}
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
config: {get_resource: {{role.name}}Config}
|
|
input_values:
|
|
step: {{step}}
|
|
update_identifier: {get_param: DeployIdentifier}
|
|
{% endfor %}
|
|
|
|
{{role.name}}PostConfig:
|
|
type: OS::TripleO::Tasks::{{role.name}}PostConfig
|
|
depends_on:
|
|
{% for dep in roles %}
|
|
- {{dep.name}}Deployment_Step5
|
|
{% endfor %}
|
|
properties:
|
|
servers: {get_param: servers}
|
|
input_values:
|
|
update_identifier: {get_param: DeployIdentifier}
|
|
|
|
# Note, this should come last, so use depends_on to ensure
|
|
# this is created after any other resources.
|
|
{{role.name}}ExtraConfigPost:
|
|
depends_on:
|
|
{% for dep in roles %}
|
|
- {{dep.name}}PostConfig
|
|
{% endfor %}
|
|
type: OS::TripleO::NodeExtraConfigPost
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
|
|
{{role.name}}PostPuppet:
|
|
depends_on:
|
|
- {{role.name}}ExtraConfigPost
|
|
type: OS::TripleO::Tasks::{{role.name}}PostPuppet
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
input_values:
|
|
update_identifier: {get_param: DeployIdentifier}
|
|
|
|
{% if role.name in ['Controller', 'ObjectStorage'] %}
|
|
{{role.name}}SwiftRingUpdate:
|
|
type: OS::TripleO::Tasks::SwiftRingUpdate
|
|
depends_on:
|
|
{% for dep in roles %}
|
|
- {{dep.name}}Deployment_Step5
|
|
{% endfor %}
|
|
properties:
|
|
servers: {get_param: [servers, {{role.name}}]}
|
|
{% endif %}
|
|
{% endfor %}
|