tripleo-heat-templates/puppet/post.yaml
Steven Hardy 54a0286106 Move role deployment steps into puppet/post.yaml
To enable steps to be aligned between roles, we need to define
dependencies between the steps, which is only possible if we
move the steps out of distinct nested stacks so we can use
depends_on to serialized the steps for all roles.

Note that we may be able to further refactor later to remove the
per-role -config.yaml nested stacks as well.

Change-Id: Ia2ea559e8eeb64763908f75705e3728ee90b5744
Partially-Implements: blueprint custom-roles
2016-09-09 11:04:12 +01:00

645 lines
20 KiB
YAML

heat_template_version: 2016-10-14
description: >
Post-deploy configuration steps via puppet for all roles,
Controller, Compute, BlockStorage, SwiftStorage and CephStorage.
parameters:
servers:
type: json
description: Mapping of Role name e.g Controller to a list of servers
role_data:
type: json
description: Mapping of Role name e.g Controller to the per-role data
DeployIdentifier:
default: ''
type: string
description: >
Setting this to a unique value will re-run any deployment tasks which
perform configuration on a Heat stack-update.
resources:
# Post deployment steps for all roles
# A single config is re-applied with an incrementing step number
# Controller Role steps
ControllerArtifactsConfig:
type: deploy-artifacts.yaml
ControllerArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: [servers, Controller]}
config: {get_resource: ControllerArtifactsConfig}
ControllerPreConfig:
type: OS::TripleO::Tasks::ControllerPreConfig
properties:
servers: {get_param: [servers, Controller]}
input_values:
update_identifier: {get_param: DeployIdentifier}
ControllerConfig:
type: OS::TripleO::ControllerConfig
properties:
StepConfig: {get_param: [role_data, Controller, step_config]}
# Step through a series of configuration steps
ControllerDeployment_Step1:
type: OS::Heat::StructuredDeploymentGroup
depends_on: [ControllerPreConfig, ControllerArtifactsDeploy]
properties:
name: ControllerDeployment_Step1
servers: {get_param: [servers, Controller]}
config: {get_resource: ControllerConfig}
input_values:
step: 1
update_identifier: {get_param: DeployIdentifier}
ControllerDeployment_Step2:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step1
- ComputeDeployment_Step1
- BlockStorageDeployment_Step1
- ObjectStorageDeployment_Step1
- CephStorageDeployment_Step1
properties:
name: ControllerDeployment_Step2
servers: {get_param: [servers, Controller]}
config: {get_resource: ControllerConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
ControllerDeployment_Step3:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step2
- ComputeDeployment_Step2
- BlockStorageDeployment_Step2
- ObjectStorageDeployment_Step2
- CephStorageDeployment_Step2
properties:
name: ControllerDeployment_Step3
servers: {get_param: [servers, Controller]}
config: {get_resource: ControllerConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
ControllerDeployment_Step4:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step3
- ComputeDeployment_Step3
- BlockStorageDeployment_Step3
- ObjectStorageDeployment_Step3
- CephStorageDeployment_Step3
properties:
name: ControllerDeployment_Step4
servers: {get_param: [servers, Controller]}
config: {get_resource: ControllerConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
ControllerDeployment_Step5:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step4
- ComputeDeployment_Step4
- BlockStorageDeployment_Step4
- ObjectStorageDeployment_Step4
- CephStorageDeployment_Step4
properties:
name: ControllerDeployment_Step5
servers: {get_param: [servers, Controller]}
config: {get_resource: ControllerConfig}
input_values:
step: 5
update_identifier: {get_param: DeployIdentifier}
ControllerPostConfig:
type: OS::TripleO::Tasks::ControllerPostConfig
depends_on:
- ControllerDeployment_Step5
- ComputeDeployment_Step5
- BlockStorageDeployment_Step5
- ObjectStorageDeployment_Step5
- CephStorageDeployment_Step5
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.
ControllerExtraConfigPost:
depends_on:
- ControllerPostConfig
- ComputePostConfig
- BlockStoragePostConfig
- ObjectStoragePostConfig
- CephStoragePostConfig
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: [servers, Controller]}
# Compute Role steps
ComputeArtifactsConfig:
type: deploy-artifacts.yaml
ComputeArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: [servers, Compute]}
config: {get_resource: ComputeArtifactsConfig}
ComputePreConfig:
type: OS::TripleO::Tasks::ComputePreConfig
properties:
servers: {get_param: [servers, Compute]}
input_values:
update_identifier: {get_param: DeployIdentifier}
ComputeConfig:
type: OS::TripleO::ComputeConfig
properties:
StepConfig: {get_param: [role_data, Compute, step_config]}
# Step through a series of configuration steps
ComputeDeployment_Step1:
type: OS::Heat::StructuredDeploymentGroup
depends_on: [ComputePreConfig, ComputeArtifactsDeploy]
properties:
name: ComputeDeployment_Step1
servers: {get_param: [servers, Compute]}
config: {get_resource: ComputeConfig}
input_values:
step: 1
update_identifier: {get_param: DeployIdentifier}
ComputeDeployment_Step2:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step1
- ComputeDeployment_Step1
- BlockStorageDeployment_Step1
- ObjectStorageDeployment_Step1
- CephStorageDeployment_Step1
properties:
name: ComputeDeployment_Step2
servers: {get_param: [servers, Compute]}
config: {get_resource: ComputeConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
ComputeDeployment_Step3:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step2
- ComputeDeployment_Step2
- BlockStorageDeployment_Step2
- ObjectStorageDeployment_Step2
- CephStorageDeployment_Step2
properties:
name: ComputeDeployment_Step3
servers: {get_param: [servers, Compute]}
config: {get_resource: ComputeConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
ComputeDeployment_Step4:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step3
- ComputeDeployment_Step3
- BlockStorageDeployment_Step3
- ObjectStorageDeployment_Step3
- CephStorageDeployment_Step3
properties:
name: ComputeDeployment_Step4
servers: {get_param: [servers, Compute]}
config: {get_resource: ComputeConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
ComputeDeployment_Step5:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step4
- ComputeDeployment_Step4
- BlockStorageDeployment_Step4
- ObjectStorageDeployment_Step4
- CephStorageDeployment_Step4
properties:
name: ComputeDeployment_Step5
servers: {get_param: [servers, Compute]}
config: {get_resource: ComputeConfig}
input_values:
step: 5
update_identifier: {get_param: DeployIdentifier}
ComputePostConfig:
type: OS::TripleO::Tasks::ComputePostConfig
depends_on:
- ControllerDeployment_Step5
- ComputeDeployment_Step5
- BlockStorageDeployment_Step5
- ObjectStorageDeployment_Step5
- CephStorageDeployment_Step5
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.
ComputeExtraConfigPost:
depends_on:
- ControllerPostConfig
- ComputePostConfig
- BlockStoragePostConfig
- ObjectStoragePostConfig
- CephStoragePostConfig
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: [servers, Compute]}
# BlockStorage Role steps
BlockStorageArtifactsConfig:
type: deploy-artifacts.yaml
BlockStorageArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: [servers, BlockStorage]}
config: {get_resource: BlockStorageArtifactsConfig}
BlockStoragePreConfig:
type: OS::TripleO::Tasks::BlockStoragePreConfig
properties:
servers: {get_param: [servers, BlockStorage]}
input_values:
update_identifier: {get_param: DeployIdentifier}
BlockStorageConfig:
type: OS::TripleO::BlockStorageConfig
properties:
StepConfig: {get_param: [role_data, BlockStorage, step_config]}
# Step through a series of configuration steps
BlockStorageDeployment_Step1:
type: OS::Heat::StructuredDeploymentGroup
depends_on: [BlockStoragePreConfig, BlockStorageArtifactsDeploy]
properties:
name: BlockStorageDeployment_Step1
servers: {get_param: [servers, BlockStorage]}
config: {get_resource: BlockStorageConfig}
input_values:
step: 1
update_identifier: {get_param: DeployIdentifier}
BlockStorageDeployment_Step2:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step1
- ComputeDeployment_Step1
- BlockStorageDeployment_Step1
- ObjectStorageDeployment_Step1
- CephStorageDeployment_Step1
properties:
name: BlockStorageDeployment_Step2
servers: {get_param: [servers, BlockStorage]}
config: {get_resource: BlockStorageConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
BlockStorageDeployment_Step3:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step2
- ComputeDeployment_Step2
- BlockStorageDeployment_Step2
- ObjectStorageDeployment_Step2
- CephStorageDeployment_Step2
properties:
name: BlockStorageDeployment_Step3
servers: {get_param: [servers, BlockStorage]}
config: {get_resource: BlockStorageConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
BlockStorageDeployment_Step4:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step3
- ComputeDeployment_Step3
- BlockStorageDeployment_Step3
- ObjectStorageDeployment_Step3
- CephStorageDeployment_Step3
properties:
name: BlockStorageDeployment_Step4
servers: {get_param: [servers, BlockStorage]}
config: {get_resource: BlockStorageConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
BlockStorageDeployment_Step5:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step4
- ComputeDeployment_Step4
- BlockStorageDeployment_Step4
- ObjectStorageDeployment_Step4
- CephStorageDeployment_Step4
properties:
name: BlockStorageDeployment_Step5
servers: {get_param: [servers, BlockStorage]}
config: {get_resource: BlockStorageConfig}
input_values:
step: 5
update_identifier: {get_param: DeployIdentifier}
BlockStoragePostConfig:
type: OS::TripleO::Tasks::BlockStoragePostConfig
depends_on:
- ControllerDeployment_Step5
- ComputeDeployment_Step5
- BlockStorageDeployment_Step5
- ObjectStorageDeployment_Step5
- CephStorageDeployment_Step5
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.
BlockStorageExtraConfigPost:
depends_on:
- ControllerPostConfig
- ComputePostConfig
- BlockStoragePostConfig
- ObjectStoragePostConfig
- CephStoragePostConfig
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: [servers, BlockStorage]}
# ObjectStorage Role steps
ObjectStorageArtifactsConfig:
type: deploy-artifacts.yaml
ObjectStorageArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: [servers, ObjectStorage]}
config: {get_resource: ObjectStorageArtifactsConfig}
ObjectStoragePreConfig:
type: OS::TripleO::Tasks::ObjectStoragePreConfig
properties:
servers: {get_param: [servers, ObjectStorage]}
input_values:
update_identifier: {get_param: DeployIdentifier}
ObjectStorageConfig:
type: OS::TripleO::ObjectStorageConfig
properties:
StepConfig: {get_param: [role_data, ObjectStorage, step_config]}
# Step through a series of configuration steps
ObjectStorageDeployment_Step1:
type: OS::Heat::StructuredDeploymentGroup
depends_on: [ObjectStoragePreConfig, ObjectStorageArtifactsDeploy]
properties:
name: ObjectStorageDeployment_Step1
servers: {get_param: [servers, ObjectStorage]}
config: {get_resource: ObjectStorageConfig}
input_values:
step: 1
update_identifier: {get_param: DeployIdentifier}
ObjectStorageDeployment_Step2:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step1
- ComputeDeployment_Step1
- BlockStorageDeployment_Step1
- ObjectStorageDeployment_Step1
- CephStorageDeployment_Step1
properties:
name: ObjectStorageDeployment_Step2
servers: {get_param: [servers, ObjectStorage]}
config: {get_resource: ObjectStorageConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
ObjectStorageDeployment_Step3:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step2
- ComputeDeployment_Step2
- BlockStorageDeployment_Step2
- ObjectStorageDeployment_Step2
- CephStorageDeployment_Step2
properties:
name: ObjectStorageDeployment_Step3
servers: {get_param: [servers, ObjectStorage]}
config: {get_resource: ObjectStorageConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
ObjectStorageDeployment_Step4:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step3
- ComputeDeployment_Step3
- BlockStorageDeployment_Step3
- ObjectStorageDeployment_Step3
- CephStorageDeployment_Step3
properties:
name: ObjectStorageDeployment_Step4
servers: {get_param: [servers, ObjectStorage]}
config: {get_resource: ObjectStorageConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
ObjectStorageDeployment_Step5:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step4
- ComputeDeployment_Step4
- BlockStorageDeployment_Step4
- ObjectStorageDeployment_Step4
- CephStorageDeployment_Step4
properties:
name: ObjectStorageDeployment_Step5
servers: {get_param: [servers, ObjectStorage]}
config: {get_resource: ObjectStorageConfig}
input_values:
step: 5
update_identifier: {get_param: DeployIdentifier}
ObjectStoragePostConfig:
type: OS::TripleO::Tasks::ObjectStoragePostConfig
depends_on:
- ControllerDeployment_Step5
- ComputeDeployment_Step5
- BlockStorageDeployment_Step5
- ObjectStorageDeployment_Step5
- CephStorageDeployment_Step5
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.
ObjectStorageExtraConfigPost:
depends_on:
- ControllerPostConfig
- ComputePostConfig
- BlockStoragePostConfig
- ObjectStoragePostConfig
- CephStoragePostConfig
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: [servers, ObjectStorage]}
# CephStorage Role steps
CephStorageArtifactsConfig:
type: deploy-artifacts.yaml
CephStorageArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: [servers, CephStorage]}
config: {get_resource: CephStorageArtifactsConfig}
CephStoragePreConfig:
type: OS::TripleO::Tasks::CephStoragePreConfig
properties:
servers: {get_param: [servers, CephStorage]}
input_values:
update_identifier: {get_param: DeployIdentifier}
CephStorageConfig:
type: OS::TripleO::CephStorageConfig
properties:
StepConfig: {get_param: [role_data, CephStorage, step_config]}
# Step through a series of configuration steps
CephStorageDeployment_Step1:
type: OS::Heat::StructuredDeploymentGroup
depends_on: [CephStoragePreConfig, CephStorageArtifactsDeploy]
properties:
name: CephStorageDeployment_Step1
servers: {get_param: [servers, CephStorage]}
config: {get_resource: CephStorageConfig}
input_values:
step: 1
update_identifier: {get_param: DeployIdentifier}
CephStorageDeployment_Step2:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step1
- ComputeDeployment_Step1
- BlockStorageDeployment_Step1
- ObjectStorageDeployment_Step1
- CephStorageDeployment_Step1
properties:
name: CephStorageDeployment_Step2
servers: {get_param: [servers, CephStorage]}
config: {get_resource: CephStorageConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
CephStorageDeployment_Step3:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step2
- ComputeDeployment_Step2
- BlockStorageDeployment_Step2
- ObjectStorageDeployment_Step2
- CephStorageDeployment_Step2
properties:
name: CephStorageDeployment_Step3
servers: {get_param: [servers, CephStorage]}
config: {get_resource: CephStorageConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
CephStorageDeployment_Step4:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step3
- ComputeDeployment_Step3
- BlockStorageDeployment_Step3
- ObjectStorageDeployment_Step3
- CephStorageDeployment_Step3
properties:
name: CephStorageDeployment_Step4
servers: {get_param: [servers, CephStorage]}
config: {get_resource: CephStorageConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
CephStorageDeployment_Step5:
type: OS::Heat::StructuredDeploymentGroup
depends_on:
- ControllerDeployment_Step4
- ComputeDeployment_Step4
- BlockStorageDeployment_Step4
- ObjectStorageDeployment_Step4
- CephStorageDeployment_Step4
properties:
name: CephStorageDeployment_Step5
servers: {get_param: [servers, CephStorage]}
config: {get_resource: CephStorageConfig}
input_values:
step: 5
update_identifier: {get_param: DeployIdentifier}
CephStoragePostConfig:
type: OS::TripleO::Tasks::CephStoragePostConfig
depends_on:
- ControllerDeployment_Step5
- ComputeDeployment_Step5
- BlockStorageDeployment_Step5
- ObjectStorageDeployment_Step5
- CephStorageDeployment_Step5
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.
CephStorageExtraConfigPost:
depends_on:
- ControllerPostConfig
- ComputePostConfig
- BlockStoragePostConfig
- ObjectStoragePostConfig
- CephStoragePostConfig
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: [servers, CephStorage]}