From 66aaf72d35fc7c9be5d4fc7605f8ad6d7b5c520e Mon Sep 17 00:00:00 2001 From: Dan Prince Date: Thu, 19 Feb 2015 16:31:38 -0800 Subject: ObjectStore: Exec puppet after all configuration This patch adds a new ObjectStoreNodesPostDeployment resource which can be used along with the environment file to specify a nested stack which is guaranteed to execute after all the ObjectStore 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: I778b87a17d5e6824233fdf9957c76549c36b3f78 --- overcloud-resource-registry-puppet.yaml | 1 + overcloud-resource-registry.yaml | 1 + overcloud-without-mergepy.yaml | 6 +++++ puppet/swift-storage-post.yaml | 42 +++++++++++++++++++++++++++++++++ puppet/swift-storage-puppet.yaml | 32 ------------------------- swift-storage-post.yaml | 8 +++++++ 6 files changed, 58 insertions(+), 32 deletions(-) create mode 100644 puppet/swift-storage-post.yaml create mode 100644 swift-storage-post.yaml diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml index eeef6d1c..11d949b4 100644 --- a/overcloud-resource-registry-puppet.yaml +++ b/overcloud-resource-registry-puppet.yaml @@ -8,6 +8,7 @@ resource_registry: OS::TripleO::CephStorage: puppet/ceph-storage-puppet.yaml 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::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 9d0f653e..737842a7 100644 --- a/overcloud-resource-registry.yaml +++ b/overcloud-resource-registry.yaml @@ -8,6 +8,7 @@ resource_registry: OS::TripleO::CephStorage: ceph-storage.yaml OS::TripleO::ControllerPostDeployment: controller-post.yaml OS::TripleO::ComputePostDeployment: compute-post.yaml + OS::TripleO::ObjectStoragePostDeployment: swift-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 3a719e3c..a1e54bce 100644 --- a/overcloud-without-mergepy.yaml +++ b/overcloud-without-mergepy.yaml @@ -790,6 +790,12 @@ resources: properties: servers: {get_attr: [Compute, attributes, nova_server_resource]} + ObjectStorageNodesPostDeployment: + type: OS::TripleO::ObjectStoragePostDeployment + depends_on: ObjectStorageSwiftDeployment + properties: + servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]} + outputs: KeystoneURL: description: URL for the Overcloud Keystone service diff --git a/puppet/swift-storage-post.yaml b/puppet/swift-storage-post.yaml new file mode 100644 index 00000000..89cf9733 --- /dev/null +++ b/puppet/swift-storage-post.yaml @@ -0,0 +1,42 @@ +heat_template_version: 2014-10-16 +description: 'Swift 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: + + StoragePuppetConfig: + type: OS::Heat::SoftwareConfig + properties: + group: puppet + outputs: + - name: result + config: + get_file: manifests/overcloud_object.pp + + StoragePuppetDeployment: + type: OS::Heat::StructuredDeployments + properties: + name: puppet_1 + servers: {get_param: servers} + config: {get_resource: StoragePuppetConfig} + + StorageRingbuilderPuppetConfig: + type: OS::Heat::SoftwareConfig + properties: + group: puppet + outputs: + - name: result + config: + get_file: manifests/ringbuilder.pp + + StorageRingbuilderPuppetDeployment: + type: OS::Heat::StructuredDeployments + properties: + name: puppet_2 + servers: {get_param: servers} + config: {get_resource: StorageRingbuilderPuppetConfig} diff --git a/puppet/swift-storage-puppet.yaml b/puppet/swift-storage-puppet.yaml index 7a831a58..9caa8485 100644 --- a/puppet/swift-storage-puppet.yaml +++ b/puppet/swift-storage-puppet.yaml @@ -64,38 +64,6 @@ resources: networks: - network: ctlplane - StoragePuppetConfig: - type: OS::Heat::SoftwareConfig - properties: - group: puppet - outputs: - - name: result - config: - get_file: manifests/overcloud_object.pp - - StoragePuppetDeployment: - type: OS::Heat::StructuredDeployment - properties: - name: puppet_1 - server: {get_resource: SwiftStorage} - config: {get_resource: StoragePuppetConfig} - - StorageRingbuilderPuppetConfig: - type: OS::Heat::SoftwareConfig - properties: - group: puppet - outputs: - - name: result - config: - get_file: manifests/ringbuilder.pp - - StorageRingbuilderPuppetDeployment: - type: OS::Heat::StructuredDeployment - properties: - name: puppet_2 - server: {get_resource: SwiftStorage} - config: {get_resource: StorageRingbuilderPuppetConfig} - SwiftStorageHieraConfig: type: OS::Heat::StructuredConfig properties: diff --git a/swift-storage-post.yaml b/swift-storage-post.yaml new file mode 100644 index 00000000..dfac4b2a --- /dev/null +++ b/swift-storage-post.yaml @@ -0,0 +1,8 @@ +heat_template_version: 2014-10-16 +description: 'Swift 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 -- cgit 1.2.3-korg