aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Prince <dprince@redhat.com>2015-02-23 14:00:24 -0500
committerDan Prince <dprince@redhat.com>2015-02-23 20:45:03 -0500
commit3ced063b490cb05bf2332e85358c795e367491ce (patch)
tree63d82348a4204553744a72bfbcb11da665695647
parent66aaf72d35fc7c9be5d4fc7605f8ad6d7b5c520e (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.yaml8
-rw-r--r--overcloud-resource-registry-puppet.yaml1
-rw-r--r--overcloud-resource-registry.yaml1
-rw-r--r--overcloud-without-mergepy.yaml12
-rw-r--r--puppet/cinder-storage-post.yaml26
-rw-r--r--puppet/cinder-storage-puppet.yaml16
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: