diff options
author | Steven Hardy <shardy@redhat.com> | 2016-09-05 18:40:35 +0100 |
---|---|---|
committer | Steven Hardy <shardy@redhat.com> | 2016-09-09 11:04:12 +0100 |
commit | 54a0286106e716250231dbd80e467dbe85a160a5 (patch) | |
tree | 925ab43765e7740bf5e6b0508658a410558b061d | |
parent | 56486057c7c242745a4d44df5a03947ef49b49e7 (diff) |
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
-rw-r--r-- | overcloud-resource-registry-puppet.yaml | 22 | ||||
-rw-r--r-- | overcloud.yaml | 50 | ||||
-rw-r--r-- | puppet/blockstorage-config.yaml | 38 | ||||
-rw-r--r-- | puppet/ceph-storage-post.yaml | 81 | ||||
-rw-r--r-- | puppet/cephstorage-config.yaml | 38 | ||||
-rw-r--r-- | puppet/cinder-storage-post.yaml | 91 | ||||
-rw-r--r-- | puppet/compute-config.yaml | 38 | ||||
-rw-r--r-- | puppet/compute-post.yaml | 93 | ||||
-rw-r--r-- | puppet/controller-post.yaml | 117 | ||||
-rw-r--r-- | puppet/objectstorage-config.yaml | 38 | ||||
-rw-r--r-- | puppet/post.yaml | 644 | ||||
-rw-r--r-- | puppet/swift-storage-post.yaml | 91 |
12 files changed, 826 insertions, 515 deletions
diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index b0723dd7..f7581615 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -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 diff --git a/overcloud.yaml b/overcloud.yaml index 97bfe015..3d18214c 100644 --- a/overcloud.yaml +++ b/overcloud.yaml @@ -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: diff --git a/puppet/blockstorage-config.yaml b/puppet/blockstorage-config.yaml new file mode 100644 index 00000000..9b31b448 --- /dev/null +++ b/puppet/blockstorage-config.yaml @@ -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} diff --git a/puppet/ceph-storage-post.yaml b/puppet/ceph-storage-post.yaml deleted file mode 100644 index df6b7249..00000000 --- a/puppet/ceph-storage-post.yaml +++ /dev/null @@ -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} diff --git a/puppet/cephstorage-config.yaml b/puppet/cephstorage-config.yaml new file mode 100644 index 00000000..4bad4a16 --- /dev/null +++ b/puppet/cephstorage-config.yaml @@ -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} diff --git a/puppet/cinder-storage-post.yaml b/puppet/cinder-storage-post.yaml deleted file mode 100644 index 0620bc6c..00000000 --- a/puppet/cinder-storage-post.yaml +++ /dev/null @@ -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} diff --git a/puppet/compute-config.yaml b/puppet/compute-config.yaml new file mode 100644 index 00000000..9e128d3a --- /dev/null +++ b/puppet/compute-config.yaml @@ -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} diff --git a/puppet/compute-post.yaml b/puppet/compute-post.yaml deleted file mode 100644 index 358ec5a8..00000000 --- a/puppet/compute-post.yaml +++ /dev/null @@ -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} - diff --git a/puppet/controller-post.yaml b/puppet/controller-post.yaml deleted file mode 100644 index c97c3bc8..00000000 --- a/puppet/controller-post.yaml +++ /dev/null @@ -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} diff --git a/puppet/objectstorage-config.yaml b/puppet/objectstorage-config.yaml new file mode 100644 index 00000000..1dee8e60 --- /dev/null +++ b/puppet/objectstorage-config.yaml @@ -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} diff --git a/puppet/post.yaml b/puppet/post.yaml new file mode 100644 index 00000000..8f57b34e --- /dev/null +++ b/puppet/post.yaml @@ -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]} diff --git a/puppet/swift-storage-post.yaml b/puppet/swift-storage-post.yaml deleted file mode 100644 index ebc54ab0..00000000 --- a/puppet/swift-storage-post.yaml +++ /dev/null @@ -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} - |