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
This commit is contained in:
Steven Hardy 2016-09-05 18:40:35 +01:00
parent 56486057c7
commit 54a0286106
12 changed files with 826 additions and 515 deletions

View File

@ -10,21 +10,29 @@ resource_registry:
OS::TripleO::ObjectStorage::Net::SoftwareConfig: net-config-noop.yaml
OS::TripleO::CephStorage: puppet/ceph-storage.yaml
OS::TripleO::CephStorage::Net::SoftwareConfig: net-config-noop.yaml
OS::TripleO::ControllerPostDeployment: puppet/controller-post.yaml
# set to controller-config-pacemaker.yaml to enable pacemaker
OS::TripleO::ControllerConfig: puppet/controller-config.yaml
OS::TripleO::ComputePostDeployment: puppet/compute-post.yaml
OS::TripleO::ObjectStoragePostDeployment: puppet/swift-storage-post.yaml
OS::TripleO::BlockStoragePostDeployment: puppet/cinder-storage-post.yaml
OS::TripleO::CephStoragePostDeployment: puppet/ceph-storage-post.yaml
OS::TripleO::PostDeploySteps: puppet/post.yaml
OS::TripleO::ComputeConfig: puppet/compute-config.yaml
OS::TripleO::BlockStorageConfig: puppet/blockstorage-config.yaml
OS::TripleO::ObjectStorageConfig: puppet/objectstorage-config.yaml
OS::TripleO::CephStorageConfig: puppet/cephstorage-config.yaml
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
OS::TripleO::DefaultPasswords: default_passwords.yaml
# Tasks (for internal TripleO usage)
OS::TripleO::Tasks::UpdateWorkflow: OS::Heat::None
OS::TripleO::Tasks::PackageUpdate: extraconfig/tasks/yum_update.yaml
OS::TripleO::Tasks::ControllerPrePuppet: OS::Heat::None
OS::TripleO::Tasks::ControllerPostPuppet: OS::Heat::None
OS::TripleO::Tasks::ControllerPreConfig: OS::Heat::None
OS::TripleO::Tasks::ControllerPostConfig: OS::Heat::None
OS::TripleO::Tasks::ComputePreConfig: OS::Heat::None
OS::TripleO::Tasks::ComputePostConfig: OS::Heat::None
OS::TripleO::Tasks::BlockStoragePreConfig: OS::Heat::None
OS::TripleO::Tasks::BlockStoragePostConfig: OS::Heat::None
OS::TripleO::Tasks::ObjectStoragePreConfig: OS::Heat::None
OS::TripleO::Tasks::ObjectStoragePostConfig: OS::Heat::None
OS::TripleO::Tasks::CephStoragePreConfig: OS::Heat::None
OS::TripleO::Tasks::CephStoragePostConfig: OS::Heat::None
OS::TripleO::Server: OS::Nova::Server

View File

@ -988,42 +988,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]
# Post deployment steps for all roles
AllNodesDeploySteps:
type: OS::TripleO::PostDeploySteps
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: [ObjectStorageAllNodesDeployment]
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:

View File

@ -0,0 +1,38 @@
heat_template_version: 2015-04-30
description: >
A software config which runs manifests/overcloud_volume.pp
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
StepConfig:
type: string
description: Config manifests that will be used to step through the deployment.
default: ''
resources:
BlockStoragePuppetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_volume.pp
- {get_param: StepConfig}
outputs:
OS::stack_id:
description: The software config which runs overcloud_controller.pp
value: {get_resource: BlockStoragePuppetConfigImpl}

View File

@ -1,81 +0,0 @@
heat_template_version: 2015-04-30
description: >
OpenStack ceph storage node post deployment for Puppet
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
servers:
type: json
RoleData:
type: json
default: {}
DeployIdentifier:
type: string
default: ''
description: Value which changes if the node configuration may need to be re-applied
resources:
CephStorageArtifactsConfig:
type: deploy-artifacts.yaml
CephStorageArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: servers}
config: {get_resource: CephStorageArtifactsConfig}
input_values:
update_identifier: {get_param: DeployIdentifier}
CephStoragePuppetConfig:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
inputs:
- name: step
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_cephstorage.pp
- {get_param: [RoleData, step_config]}
CephStorageDeployment_Step2:
type: OS::Heat::StructuredDeployments
depends_on: CephStorageArtifactsDeploy
properties:
name: CephStorageDeployment_Step2
servers: {get_param: servers}
config: {get_resource: CephStoragePuppetConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
CephStorageDeployment_Step3:
type: OS::Heat::StructuredDeployments
depends_on: CephStorageDeployment_Step2
properties:
name: CephStorageDeployment_Step3
servers: {get_param: servers}
config: {get_resource: CephStoragePuppetConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
# Note, this should come last, so use depends_on to ensure
# this is created after any other resources.
ExtraConfig:
depends_on: CephStorageDeployment_Step3
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: servers}

View File

@ -0,0 +1,38 @@
heat_template_version: 2015-04-30
description: >
A software config which runs manifests/overcloud_cephstorage.pp
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
StepConfig:
type: string
description: Config manifests that will be used to step through the deployment.
default: ''
resources:
CephStoragePuppetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_cephstorage.pp
- {get_param: StepConfig}
outputs:
OS::stack_id:
description: The software config which runs overcloud_controller.pp
value: {get_resource: CephStoragePuppetConfigImpl}

View File

@ -1,91 +0,0 @@
heat_template_version: 2015-04-30
description: 'OpenStack cinder storage post deployment for Puppet'
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
servers:
type: json
DeployIdentifier:
type: string
default: ''
description: Value which changes if the node configuration may need to be re-applied
RoleData:
type: json
default: {}
resources:
VolumeArtifactsConfig:
type: deploy-artifacts.yaml
VolumeArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: servers}
config: {get_resource: VolumeArtifactsConfig}
input_values:
update_identifier: {get_param: DeployIdentifier}
VolumePuppetConfig:
type: OS::Heat::SoftwareConfig
depends_on: VolumeArtifactsDeploy
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
inputs:
- name: step
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_volume.pp
- {get_param: [RoleData, step_config]}
VolumeDeployment_Step2:
type: OS::Heat::StructuredDeployments
depends_on: VolumeArtifactsDeploy
properties:
name: VolumeDeployment_Step2
servers: {get_param: servers}
config: {get_resource: VolumePuppetConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
VolumeDeployment_Step3:
type: OS::Heat::StructuredDeployments
depends_on: VolumeDeployment_Step2
properties:
name: VolumeDeployment_Step3
servers: {get_param: servers}
config: {get_resource: VolumePuppetConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
VolumeDeployment_Step4:
type: OS::Heat::StructuredDeployments
depends_on: VolumeDeployment_Step3
properties:
name: VolumeDeployment_Step4
servers: {get_param: servers}
config: {get_resource: VolumePuppetConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
# Note, this should come last, so use depends_on to ensure
# this is created after any other resources.
ExtraConfig:
depends_on: VolumeDeployment_Step4
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: servers}

View File

@ -0,0 +1,38 @@
heat_template_version: 2015-04-30
description: >
A software config which runs manifests/overcloud_compute.pp
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
StepConfig:
type: string
description: Config manifests that will be used to step through the deployment.
default: ''
resources:
ComputePuppetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_compute.pp
- {get_param: StepConfig}
outputs:
OS::stack_id:
description: The software config which runs overcloud_controller.pp
value: {get_resource: ComputePuppetConfigImpl}

View File

@ -1,93 +0,0 @@
heat_template_version: 2015-04-30
description: >
OpenStack compute node post deployment for Puppet.
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
servers:
type: json
RoleData:
type: json
default: {}
DeployIdentifier:
type: string
default: ''
description: Value which changes if the node configuration may need to be re-applied
resources:
ComputeArtifactsConfig:
type: deploy-artifacts.yaml
ComputeArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: servers}
config: {get_resource: ComputeArtifactsConfig}
input_values:
update_identifier: {get_param: DeployIdentifier}
ComputePuppetConfig:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
inputs:
- name: step
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_compute.pp
- {get_param: [RoleData, step_config]}
ComputeServicesBaseDeployment_Step2:
type: OS::Heat::StructuredDeployments
depends_on: [ComputeArtifactsDeploy]
properties:
name: ComputeServicesBaseDeployment_Step2
servers: {get_param: servers}
config: {get_resource: ComputePuppetConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
ComputeOvercloudServicesDeployment_Step3:
type: OS::Heat::StructuredDeployments
depends_on: ComputeServicesBaseDeployment_Step2
properties:
name: ComputeOvercloudServicesDeployment_Step3
servers: {get_param: servers}
config: {get_resource: ComputePuppetConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
ComputeOvercloudServicesDeployment_Step4:
type: OS::Heat::StructuredDeployments
depends_on: ComputeOvercloudServicesDeployment_Step3
properties:
name: ComputeOvercloudServicesDeployment_Step4
servers: {get_param: servers}
config: {get_resource: ComputePuppetConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
# Note, this should come last, so use depends_on to ensure
# this is created after any other resources.
ExtraConfig:
depends_on: ComputeOvercloudServicesDeployment_Step4
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: servers}

View File

@ -1,117 +0,0 @@
heat_template_version: 2015-04-30
description: >
OpenStack controller node post deployment for Puppet.
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
servers:
type: json
RoleData:
type: json
default: {}
DeployIdentifier:
type: string
default: ''
description: Value which changes if the node configuration may need to be re-applied
resources:
ControllerArtifactsConfig:
type: deploy-artifacts.yaml
ControllerArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: servers}
config: {get_resource: ControllerArtifactsConfig}
ControllerPrePuppet:
type: OS::TripleO::Tasks::ControllerPrePuppet
properties:
servers: {get_param: servers}
input_values:
update_identifier: {get_param: DeployIdentifier}
ControllerPuppetConfig:
type: OS::TripleO::ControllerConfig
properties:
StepConfig: {get_param: [RoleData, step_config]}
# Step through a series of Puppet runs using the same manifest.
# NOTE: To enable stepping through the deployments via heat hooks,
# you must observe the glob naming defined in overcloud-steps.yaml
# e.g all Deployment resources should have a *Deployment_StepN suffix
ControllerLoadBalancerDeployment_Step1:
type: OS::Heat::StructuredDeployments
depends_on: [ControllerPrePuppet, ControllerArtifactsDeploy]
properties:
name: ControllerLoadBalancerDeployment_Step1
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
input_values:
step: 1
update_identifier: {get_param: DeployIdentifier}
ControllerServicesBaseDeployment_Step2:
type: OS::Heat::StructuredDeployments
depends_on: ControllerLoadBalancerDeployment_Step1
properties:
name: ControllerServicesBaseDeployment_Step2
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
ControllerOvercloudServicesDeployment_Step3:
type: OS::Heat::StructuredDeployments
depends_on: ControllerServicesBaseDeployment_Step2
properties:
name: ControllerOvercloudServicesDeployment_Step3
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
ControllerOvercloudServicesDeployment_Step4:
type: OS::Heat::StructuredDeployments
depends_on: ControllerOvercloudServicesDeployment_Step3
properties:
name: ControllerOvercloudServicesDeployment_Step4
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
ControllerOvercloudServicesDeployment_Step5:
type: OS::Heat::StructuredDeployments
depends_on: ControllerOvercloudServicesDeployment_Step4
properties:
name: ControllerOvercloudServicesDeployment_Step5
servers: {get_param: servers}
config: {get_resource: ControllerPuppetConfig}
input_values:
step: 5
update_identifier: {get_param: DeployIdentifier}
ControllerPostPuppet:
type: OS::TripleO::Tasks::ControllerPostPuppet
depends_on: ControllerOvercloudServicesDeployment_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.
ExtraConfig:
depends_on: ControllerPostPuppet
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: servers}

View File

@ -0,0 +1,38 @@
heat_template_version: 2015-04-30
description: >
A software config which runs manifests/overcloud_object.pp
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
StepConfig:
type: string
description: Config manifests that will be used to step through the deployment.
default: ''
resources:
ObjectStoragePuppetConfigImpl:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_object.pp
- {get_param: StepConfig}
outputs:
OS::stack_id:
description: The software config which runs overcloud_controller.pp
value: {get_resource: ObjectStoragePuppetConfigImpl}

644
puppet/post.yaml Normal file
View File

@ -0,0 +1,644 @@
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]}

View File

@ -1,91 +0,0 @@
heat_template_version: 2015-04-30
description: 'OpenStack swift storage node post deployment for Puppet'
parameters:
ConfigDebug:
default: false
description: Whether to run config management (e.g. Puppet) in debug mode.
type: boolean
servers:
type: json
RoleData:
type: json
default: {}
DeployIdentifier:
type: string
default: ''
description: Value which changes if the node configuration may need to be re-applied
resources:
StorageArtifactsConfig:
type: deploy-artifacts.yaml
StorageArtifactsDeploy:
type: OS::Heat::StructuredDeployments
properties:
servers: {get_param: servers}
config: {get_resource: StorageArtifactsConfig}
input_values:
update_identifier: {get_param: DeployIdentifier}
StoragePuppetConfig:
type: OS::Heat::SoftwareConfig
properties:
group: puppet
options:
enable_debug: {get_param: ConfigDebug}
enable_hiera: True
enable_facter: False
modulepath: /etc/puppet/modules:/opt/stack/puppet-modules:/usr/share/openstack-puppet/modules
inputs:
- name: step
outputs:
- name: result
config:
list_join:
- ''
- - get_file: manifests/overcloud_object.pp
- {get_param: [RoleData, step_config]}
StorageRingbuilderDeployment_Step2:
type: OS::Heat::StructuredDeployments
depends_on: StorageArtifactsDeploy
properties:
name: StorageRingbuilderDeployment_Step2
servers: {get_param: servers}
config: {get_resource: StoragePuppetConfig}
input_values:
step: 2
update_identifier: {get_param: DeployIdentifier}
StorageRingbuilderDeployment_Step3:
type: OS::Heat::StructuredDeployments
depends_on: StorageRingbuilderDeployment_Step2
properties:
name: StorageRingbuilderDeployment_Step3
servers: {get_param: servers}
config: {get_resource: StoragePuppetConfig}
input_values:
step: 3
update_identifier: {get_param: DeployIdentifier}
StorageDeployment_Step4:
type: OS::Heat::StructuredDeployments
depends_on: StorageRingbuilderDeployment_Step3
properties:
name: StorageDeployment_Step4
servers: {get_param: servers}
config: {get_resource: StoragePuppetConfig}
input_values:
step: 4
update_identifier: {get_param: DeployIdentifier}
# Note, this should come last, so use depends_on to ensure
# this is created after any other resources.
ExtraConfig:
depends_on: StorageDeployment_Step4
type: OS::TripleO::NodeExtraConfigPost
properties:
servers: {get_param: servers}