Add missing Pacemaker constraint against Keystone
authorGiulio Fidente <gfidente@redhat.com>
Thu, 25 Jun 2015 14:59:21 +0000 (16:59 +0200)
committerGiulio Fidente <gfidente@redhat.com>
Thu, 25 Jun 2015 15:50:19 +0000 (17:50 +0200)
The Heat contraints group was missing the initial
dependency on Keystone, causing Pacemaker to Heat before or
in parallel to Keystone.

Given Systemd can define dependencies in the unit files, this was
additionally causing an unmanaged start of Keystone making
cluster initialization to fail (with Keystone start timeout blocking
all the depending resources).

Also moves Keystone -> Ceilomter constraint on top of Ceilometer
constraints group for clarity.

Logs and more infos at [1]

1. https://bugzilla.redhat.com/show_bug.cgi?id=1235703

Change-Id: I9505fd46c5bf278afc8ff919c7e768e2de194cb8

puppet/manifests/overcloud_controller_pacemaker.pp

index 8b69c24..6e911f7 100644 (file)
@@ -1110,6 +1110,15 @@ if hiera('step') >= 4 {
       clone_params    => 'interleave=true',
       resource_params => 'startdelay=10',
     }
+    pacemaker::constraint::base { 'keystone-then-ceilometer-central-constraint':
+      constraint_type => 'order',
+      first_resource  => "${::keystone::params::service_name}-clone",
+      second_resource => "${::ceilometer::params::agent_central_service_name}-clone",
+      first_action    => 'start',
+      second_action   => 'start',
+      require         => [Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name],
+                          Pacemaker::Resource::Service[$::keystone::params::service_name]],
+    }
     pacemaker::constraint::base { 'ceilometer-central-then-ceilometer-collector-constraint':
       constraint_type => 'order',
       first_resource  => "${::ceilometer::params::agent_central_service_name}-clone",
@@ -1219,15 +1228,6 @@ if hiera('step') >= 4 {
       require => [Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name],
                   Pacemaker::Resource::Ip['vip-redis']],
     }
-    pacemaker::constraint::base { 'keystone-then-ceilometer-central-constraint':
-      constraint_type => 'order',
-      first_resource  => "${::keystone::params::service_name}-clone",
-      second_resource => "${::ceilometer::params::agent_central_service_name}-clone",
-      first_action    => 'start',
-      second_action   => 'start',
-      require         => [Pacemaker::Resource::Service[$::ceilometer::params::agent_central_service_name],
-                          Pacemaker::Resource::Service[$::keystone::params::service_name]],
-    }
 
     # Heat
     pacemaker::resource::service { $::heat::params::api_service_name :
@@ -1242,6 +1242,15 @@ if hiera('step') >= 4 {
     pacemaker::resource::service { $::heat::params::engine_service_name :
       clone_params => 'interleave=true',
     }
+    pacemaker::constraint::base { 'keystone-then-heat-api-constraint':
+      constraint_type => 'order',
+      first_resource  => "${::keystone::params::service_name}-clone",
+      second_resource => "${::heat::params::api_service_name}-clone",
+      first_action    => 'start',
+      second_action   => 'start',
+      require         => [Pacemaker::Resource::Service[$::heat::params::api_service_name],
+                          Pacemaker::Resource::Service[$::keystone::params::service_name]],
+    }
     pacemaker::constraint::base { 'heat-api-then-heat-api-cfn-constraint':
       constraint_type => 'order',
       first_resource  => "${::heat::params::api_service_name}-clone",