Make puppet-applying *Post resources depend on hieradata
[apex-tripleo-heat-templates.git] / puppet / controller-post-puppet.yaml
index 7aab7f5..e88561e 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2014-10-16
+heat_template_version: 2015-04-30
 
 description: >
   OpenStack controller node post deployment for Puppet.
@@ -6,6 +6,10 @@ description: >
 parameters:
   servers:
     type: json
+  NodeConfigIdentifiers:
+     type: json
+     description: Value which changes if the node configuration may need to be re-applied
+
 
 resources:
 
@@ -13,25 +17,28 @@ resources:
     type: OS::TripleO::ControllerConfig
 
   # Step through a series of Puppet runs using the same manifest.
-  # NOTE(dprince): Heat breakpoints would make for a really cool way to step
-  # through breakpoints in a controlled manner across the entire cluster
-  ControllerDeploymentLoadBalancer_Step1:
+  # NOTE: To enable stepping through the deployments via heat hooks,
+  # you must observe the glob naming defined in overcloud-steps.yaml
+  # e.g all Deployment resources should have a *Deployment_StepN suffix
+  ControllerLoadBalancerDeployment_Step1:
     type: OS::Heat::StructuredDeployments
     properties:
       servers:  {get_param: servers}
       config: {get_resource: ControllerPuppetConfig}
       input_values:
         step: 1
+        update_identifier: {get_param: NodeConfigIdentifiers}
       actions: ['CREATE'] # no need for two passes on an UPDATE
 
-  ControllerDeploymentServicesBase_Step2:
+  ControllerServicesBaseDeployment_Step2:
     type: OS::Heat::StructuredDeployments
-    depends_on: ControllerDeploymentLoadBalancer_Step1
+    depends_on: ControllerLoadBalancerDeployment_Step1
     properties:
       servers:  {get_param: servers}
       config: {get_resource: ControllerPuppetConfig}
       input_values:
         step: 2
+        update_identifier: {get_param: NodeConfigIdentifiers}
       actions: ['CREATE'] # no need for two passes on an UPDATE
 
   ControllerRingbuilderPuppetConfig:
@@ -49,12 +56,14 @@ resources:
 
   ControllerRingbuilderDeployment_Step3:
     type: OS::Heat::StructuredDeployments
-    depends_on: ControllerDeploymentServicesBase_Step2
+    depends_on: ControllerServicesBaseDeployment_Step2
     properties:
       servers:  {get_param: servers}
       config: {get_resource: ControllerRingbuilderPuppetConfig}
+      input_values:
+        update_identifier: {get_param: NodeConfigIdentifiers}
 
-  ControllerDeploymentOvercloudServices_Step4:
+  ControllerOvercloudServicesDeployment_Step4:
     type: OS::Heat::StructuredDeployments
     depends_on: ControllerRingbuilderDeployment_Step3
     properties:
@@ -62,21 +71,22 @@ resources:
       config: {get_resource: ControllerPuppetConfig}
       input_values:
         step: 3
+        update_identifier: {get_param: NodeConfigIdentifiers}
 
-  ControllerDeploymentOvercloudServices_Step5:
+  ControllerOvercloudServicesDeployment_Step5:
     type: OS::Heat::StructuredDeployments
-    depends_on: ControllerDeploymentOvercloudServices_Step4
+    depends_on: ControllerOvercloudServicesDeployment_Step4
     properties:
       servers:  {get_param: servers}
       config: {get_resource: ControllerPuppetConfig}
       input_values:
         step: 4
+        update_identifier: {get_param: NodeConfigIdentifiers}
 
   # Note, this should come last, so use depends_on to ensure
   # this is created after any other resources.
   ExtraConfig:
-    depends_on: ControllerDeploymentOvercloudServices_Step5
+    depends_on: ControllerOvercloudServicesDeployment_Step5
     type: OS::TripleO::NodeExtraConfigPost
     properties:
         servers: {get_param: servers}
-