From 3ced063b490cb05bf2332e85358c795e367491ce Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Mon, 23 Feb 2015 14:00:24 -0500 Subject: [PATCH] BlockStore: Exec puppet after all configuration This patch adds a new BlockStoreNodesPostDeployment resource which can be used along with the environment file to specify a nested stack which is guaranteed to execute after all the BlockStore config deployments have executed. This is really useful for Puppet in that Heat actually controls where puppet executes in the deployment process and we want to ensure puppet runs after all hiera configuration data has be deployed to the nodes. With the previous approach some of the data would be there, but allNodes data would not be guaranteed to be there in time. As os-apply-config (tripleo-image-elements) have their ordering controlled within the elements themselves an empty stubbed in nested stack has been added so that we don't break that implementation. Change-Id: I29b3574e341eecd53b2867788f415bff153cfa9f --- cinder-storage-post.yaml | 8 ++++++++ overcloud-resource-registry-puppet.yaml | 1 + overcloud-resource-registry.yaml | 1 + overcloud-without-mergepy.yaml | 12 ++++++++++++ puppet/cinder-storage-post.yaml | 26 +++++++++++++++++++++++++ puppet/cinder-storage-puppet.yaml | 16 --------------- 6 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 cinder-storage-post.yaml create mode 100644 puppet/cinder-storage-post.yaml diff --git a/cinder-storage-post.yaml b/cinder-storage-post.yaml new file mode 100644 index 0000000000..0331685aa3 --- /dev/null +++ b/cinder-storage-post.yaml @@ -0,0 +1,8 @@ +heat_template_version: 2014-10-16 +description: 'Common Block Storage Post Deployment' +# NOTE: this is a noop for os-apply-config style deployments because +# post deployment ordering is controlled by tripleo-image-elements + +parameters: + servers: + type: json diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index 11d949b4dd..72ba799038 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -9,6 +9,7 @@ resource_registry: OS::TripleO::ControllerPostDeployment: puppet/controller-post-puppet.yaml OS::TripleO::ComputePostDeployment: puppet/compute-post-puppet.yaml OS::TripleO::ObjectStoragePostDeployment: puppet/swift-storage-post.yaml + OS::TripleO::BlockStoragePostDeployment: puppet/cinder-storage-post.yaml OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: puppet/swift-devices-and-proxy-config.yaml OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml OS::TripleO::BootstrapNode::SoftwareConfig: puppet/bootstrap-config.yaml diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml index 737842a76a..ac4b7412d5 100644 --- a/overcloud-resource-registry.yaml +++ b/overcloud-resource-registry.yaml @@ -9,6 +9,7 @@ resource_registry: OS::TripleO::ControllerPostDeployment: controller-post.yaml OS::TripleO::ComputePostDeployment: compute-post.yaml OS::TripleO::ObjectStoragePostDeployment: swift-storage-post.yaml + OS::TripleO::BlockStoragePostDeployment: cinder-storage-post.yaml OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: swift-devices-and-proxy-config.yaml OS::TripleO::AllNodes::SoftwareConfig: all-nodes-config.yaml OS::TripleO::BootstrapNode::SoftwareConfig: bootstrap-config.yaml diff --git a/overcloud-without-mergepy.yaml b/overcloud-without-mergepy.yaml index a1e54bce60..cea55b2329 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -777,6 +777,12 @@ resources: config: {get_attr: [allNodesConfig, config_id]} servers: {get_attr: [Compute, attributes, nova_server_resource]} + BlockStorageAllNodesDeployment: + type: OS::Heat::StructuredDeployments + properties: + config: {get_attr: [allNodesConfig, config_id]} + servers: {get_attr: [BlockStorage, attributes, nova_server_resource]} + # Nested stack deployment runs after all other controller deployments ControllerNodesPostDeployment: type: OS::TripleO::ControllerPostDeployment @@ -796,6 +802,12 @@ resources: properties: servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]} + BlockStorageNodesPostDeployment: + type: OS::TripleO::BlockStoragePostDeployment + depends_on: BlockStorageAllNodesDeployment + properties: + servers: {get_attr: [BlockStorage, attributes, nova_server_resource]} + outputs: KeystoneURL: description: URL for the Overcloud Keystone service diff --git a/puppet/cinder-storage-post.yaml b/puppet/cinder-storage-post.yaml new file mode 100644 index 0000000000..960cc5b3aa --- /dev/null +++ b/puppet/cinder-storage-post.yaml @@ -0,0 +1,26 @@ +heat_template_version: 2014-10-16 +description: 'Common Block Storage Post Deployment' +# NOTE: this is a noop for os-apply-config style deployments because +# post deployment ordering is controlled by tripleo-image-elements + +parameters: + servers: + type: json + +resources: + + VolumePuppetConfig: + type: OS::Heat::SoftwareConfig + properties: + group: puppet + outputs: + - name: result + config: + get_file: manifests/overcloud_volume.pp + + VolumePuppetDeployment: + type: OS::Heat::StructuredDeployments + properties: + name: puppet_1 + servers: {get_param: servers} + config: {get_resource: VolumePuppetConfig} diff --git a/puppet/cinder-storage-puppet.yaml b/puppet/cinder-storage-puppet.yaml index befd8e4eef..6ad4d3488a 100644 --- a/puppet/cinder-storage-puppet.yaml +++ b/puppet/cinder-storage-puppet.yaml @@ -160,22 +160,6 @@ resources: ntp::servers: {get_input: ntp_servers} enable_package_install: {get_input: enable_package_install} - VolumePuppetConfig: - type: OS::Heat::SoftwareConfig - properties: - group: puppet - outputs: - - name: result - config: - get_file: manifests/overcloud_volume.pp - - VolumePuppetDeployment: - type: OS::Heat::StructuredDeployment - properties: - name: puppet_1 - server: {get_resource: BlockStorage} - config: {get_resource: VolumePuppetConfig} - outputs: hosts_entry: value: