diff options
author | Dan Prince <dprince@redhat.com> | 2015-02-23 14:00:24 -0500 |
---|---|---|
committer | Dan Prince <dprince@redhat.com> | 2015-02-23 20:45:03 -0500 |
commit | 3ced063b490cb05bf2332e85358c795e367491ce (patch) | |
tree | 63d82348a4204553744a72bfbcb11da665695647 | |
parent | 66aaf72d35fc7c9be5d4fc7605f8ad6d7b5c520e (diff) |
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
-rw-r--r-- | cinder-storage-post.yaml | 8 | ||||
-rw-r--r-- | overcloud-resource-registry-puppet.yaml | 1 | ||||
-rw-r--r-- | overcloud-resource-registry.yaml | 1 | ||||
-rw-r--r-- | overcloud-without-mergepy.yaml | 12 | ||||
-rw-r--r-- | puppet/cinder-storage-post.yaml | 26 | ||||
-rw-r--r-- | puppet/cinder-storage-puppet.yaml | 16 |
6 files changed, 48 insertions, 16 deletions
diff --git a/cinder-storage-post.yaml b/cinder-storage-post.yaml new file mode 100644 index 00000000..0331685a --- /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 11d949b4..72ba7990 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 737842a7..ac4b7412 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 a1e54bce..cea55b23 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 00000000..960cc5b3 --- /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 befd8e4e..6ad4d348 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: |