Make sure PrePuppet runs before any Deployment_Step
authorMichele Baldessari <michele@acksyn.org>
Fri, 17 Mar 2017 14:36:50 +0000 (15:36 +0100)
committerMichele Baldessari <michele@acksyn.org>
Fri, 17 Mar 2017 14:36:50 +0000 (15:36 +0100)
We used to have this in mitaka:
https://github.com/openstack/tripleo-heat-templates/blob/stable/mitaka/puppet/controller-post.yaml#L45

but we lost it along the way. The problem without this change is that we
are open to the following race:
1) ControllerDeployment_Step1 is started and manages to do a successful
   "systemctl start pacemaker"
2) PrePuppet gets called and in the HA deployment calls
   pacemaker_maintenance_mode.sh
3) pacemaker_maintenance_mode.sh will set the maintenance-mode=true
   property because the pacemaker service is already up:
   https://github.com/openstack/tripleo-heat-templates/blob/master/extraconfig/tasks/pacemaker_maintenance_mode.sh#L8-L9
4) If the maintenance property is set to true at this stage, the
   creation of any resource will take place but they won't really
   start.

Change-Id: Icb7495edd00385b2975dd42f63085d20292ef9a9
Closes-Bug: #1673795
Co-Authored-By: Jiri Stransky <jstransk@redhat.com>
puppet/puppet-steps.j2

index 581c4f0..86af611 100644 (file)
@@ -42,7 +42,7 @@
   {{role.name}}Deployment_Step{{step}}:
     type: OS::Heat::StructuredDeploymentGroup
   {% if step == 1 %}
-    depends_on: [{{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
+    depends_on: [{{role.name}}PrePuppet, {{role.name}}PreConfig, {{role.name}}ArtifactsDeploy]
   {% else %}
     depends_on:
     {% for dep in roles %}