aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2015-04-09 14:28:10 +0100
committerSteven Hardy <shardy@redhat.com>2015-04-24 10:19:04 +0100
commitb8b5ca12be0de95ee2e52994f705f06722071f18 (patch)
tree1e3bfd3b8d68ca4404ebebfbf159b90f3c018551
parent723db1317cd62a8772c764847c80a339eae4c03f (diff)
Add hooks for extra post-deployment config
Adds optional hooks which can run operator defined additional config on nodes after the application deployment has completed. Change-Id: I3f99e648efad82ce2cd51e2d5168c716f0cee8fe
-rw-r--r--ceph-storage-post.yaml12
-rw-r--r--cinder-storage-post.yaml10
-rw-r--r--compute-post.yaml11
-rw-r--r--controller-post.yaml9
-rw-r--r--extraconfig/post_deploy/default.yaml5
-rw-r--r--extraconfig/post_deploy/example.yaml27
-rw-r--r--overcloud-resource-registry-puppet.yaml1
-rw-r--r--overcloud-resource-registry.yaml1
-rw-r--r--puppet/ceph-storage-post-puppet.yaml9
-rw-r--r--puppet/compute-post-puppet.yaml9
-rw-r--r--puppet/controller-post-puppet.yaml9
-rw-r--r--puppet/swift-storage-post.yaml9
-rw-r--r--swift-storage-post.yaml10
13 files changed, 121 insertions, 1 deletions
diff --git a/ceph-storage-post.yaml b/ceph-storage-post.yaml
index 2a0fa04..12d03f1 100644
--- a/ceph-storage-post.yaml
+++ b/ceph-storage-post.yaml
@@ -5,4 +5,14 @@ description: 'Ceph Storage Post Deployment'
parameters:
servers:
- type: json \ No newline at end of file
+ type: json
+
+resources:
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/cinder-storage-post.yaml b/cinder-storage-post.yaml
index 0331685..0881838 100644
--- a/cinder-storage-post.yaml
+++ b/cinder-storage-post.yaml
@@ -6,3 +6,13 @@ description: 'Common Block Storage Post Deployment'
parameters:
servers:
type: json
+
+resources:
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/compute-post.yaml b/compute-post.yaml
index 8c49709..bd7639c 100644
--- a/compute-post.yaml
+++ b/compute-post.yaml
@@ -6,3 +6,14 @@ description: 'Compute Post Deployment'
parameters:
servers:
type: json
+
+resources:
+
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/controller-post.yaml b/controller-post.yaml
index 31a3062..e630c22 100644
--- a/controller-post.yaml
+++ b/controller-post.yaml
@@ -6,3 +6,12 @@ description: 'Controller Post Deployment'
parameters:
servers:
type: json
+
+resources:
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
diff --git a/extraconfig/post_deploy/default.yaml b/extraconfig/post_deploy/default.yaml
new file mode 100644
index 0000000..ddfe024
--- /dev/null
+++ b/extraconfig/post_deploy/default.yaml
@@ -0,0 +1,5 @@
+heat_template_version: 2014-10-16
+description: 'Extra Post Deployment Config'
+parameters:
+ servers:
+ type: json
diff --git a/extraconfig/post_deploy/example.yaml b/extraconfig/post_deploy/example.yaml
new file mode 100644
index 0000000..6b816d4
--- /dev/null
+++ b/extraconfig/post_deploy/example.yaml
@@ -0,0 +1,27 @@
+heat_template_version: 2014-10-16
+
+description: >
+ Example extra config for post-deployment
+
+# Note extra parameters can be defined, then passed data via the
+# environment parameter_defaults, without modifying the parent template
+parameters:
+ servers:
+ type: json
+
+resources:
+
+ ExtraConfig:
+ type: OS::Heat::SoftwareConfig
+ properties:
+ group: script
+ config: |
+ #!/bin/sh
+ echo "extra" > /root/extra
+
+ ExtraDeployments:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ servers: {get_param: servers}
+ config: {get_resource: ExtraConfig}
+ actions: ['CREATE'] # Only do this on CREATE
diff --git a/overcloud-resource-registry-puppet.yaml b/overcloud-resource-registry-puppet.yaml
index 2536053..c725ae8 100644
--- a/overcloud-resource-registry-puppet.yaml
+++ b/overcloud-resource-registry-puppet.yaml
@@ -16,6 +16,7 @@ resource_registry:
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
OS::TripleO::BootstrapNode::SoftwareConfig: puppet/bootstrap-config.yaml
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
+ OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
parameter_defaults:
EnablePackageInstall: false
diff --git a/overcloud-resource-registry.yaml b/overcloud-resource-registry.yaml
index aba2212..7436ea4 100644
--- a/overcloud-resource-registry.yaml
+++ b/overcloud-resource-registry.yaml
@@ -16,3 +16,4 @@ resource_registry:
OS::TripleO::AllNodes::SoftwareConfig: all-nodes-config.yaml
OS::TripleO::BootstrapNode::SoftwareConfig: bootstrap-config.yaml
OS::TripleO::NodeUserData: firstboot/userdata_default.yaml
+ OS::TripleO::NodeExtraConfigPost: extraconfig/post_deploy/default.yaml
diff --git a/puppet/ceph-storage-post-puppet.yaml b/puppet/ceph-storage-post-puppet.yaml
index 53ecbe1..93cc8d1 100644
--- a/puppet/ceph-storage-post-puppet.yaml
+++ b/puppet/ceph-storage-post-puppet.yaml
@@ -22,3 +22,12 @@ resources:
properties:
servers: {get_param: servers}
config: {get_resource: CephStoragePuppetConfig}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ depends_on: CephStorageDeployment_Step1
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/puppet/compute-post-puppet.yaml b/puppet/compute-post-puppet.yaml
index 9b7eb0c..26c1a97 100644
--- a/puppet/compute-post-puppet.yaml
+++ b/puppet/compute-post-puppet.yaml
@@ -23,3 +23,12 @@ resources:
properties:
servers: {get_param: servers}
config: {get_resource: ComputePuppetConfig}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ depends_on: ComputePuppetDeployment
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/puppet/controller-post-puppet.yaml b/puppet/controller-post-puppet.yaml
index 009a10a..debd715 100644
--- a/puppet/controller-post-puppet.yaml
+++ b/puppet/controller-post-puppet.yaml
@@ -71,3 +71,12 @@ resources:
config: {get_resource: ControllerPuppetConfig}
input_values:
step: 3
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ depends_on: ControllerDeploymentOvercloudServices_Step4
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/puppet/swift-storage-post.yaml b/puppet/swift-storage-post.yaml
index edceba9..3e01fe7 100644
--- a/puppet/swift-storage-post.yaml
+++ b/puppet/swift-storage-post.yaml
@@ -37,3 +37,12 @@ resources:
properties:
servers: {get_param: servers}
config: {get_resource: StorageRingbuilderPuppetConfig}
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ depends_on: StorageRingbuilderDeployment_Step2
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+
diff --git a/swift-storage-post.yaml b/swift-storage-post.yaml
index dfac4b2..dd51af0 100644
--- a/swift-storage-post.yaml
+++ b/swift-storage-post.yaml
@@ -6,3 +6,13 @@ description: 'Swift Storage Post Deployment'
parameters:
servers:
type: json
+
+resources:
+
+ # Note, this should come last, so use depends_on to ensure
+ # this is created after any other resources.
+ ExtraConfig:
+ type: OS::TripleO::NodeExtraConfigPost
+ properties:
+ servers: {get_param: servers}
+