Rework pacemaker constraints from ovs and netns cleanup agents
authormarios <marios@redhat.com>
Wed, 30 Sep 2015 10:47:58 +0000 (13:47 +0300)
committermarios <marios@redhat.com>
Tue, 6 Oct 2015 06:03:52 +0000 (09:03 +0300)
In the current neutron-* services constraints chain, the ovs and
netns cleanup services are re-run after a neutron-server restart.
As discussed at [1] this may not be desirable leaving some neutron
services down and any tenant routers without IP.

This review introduces a second constraints chain so we now have:

neutron-server-->openvswitch-->dhcp-->l3-->metadata
and
ovs-cleanup-->netns-cleanup-->openvswitch

Instead of a single chain like

neutron-server-->ovs-cleanup-->netns-cleanup-->openvswitch-->
dhcp-->l3-->metadata

[1] https://bugzilla.redhat.com/show_bug.cgi?id=1266910#c12

Related-Bug: 1501378
Change-Id: I4096704257aff74ff5bd37d8d01d8a776c6c6a76

puppet/manifests/overcloud_controller_pacemaker.pp

index 7615290..8af898e 100644 (file)
@@ -1048,24 +1048,8 @@ if hiera('step') >= 4 {
       ocf_agent_name => "neutron:NetnsCleanup",
       clone_params => "interleave=true",
     }
-    pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
-      constraint_type => "order",
-      first_resource => "${::keystone::params::service_name}-clone",
-      second_resource => "${::neutron::params::server_service}-clone",
-      first_action => "start",
-      second_action => "start",
-      require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
-                  Pacemaker::Resource::Service[$::neutron::params::server_service]],
-    }
-    pacemaker::constraint::base { 'neutron-server-to-neutron-ovs-cleanup-constraint':
-      constraint_type => "order",
-      first_resource => "${::neutron::params::server_service}-clone",
-      second_resource => "${::neutron::params::ovs_cleanup_service}-clone",
-      first_action => "start",
-      second_action => "start",
-      require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
-                  Pacemaker::Resource::Ocf["${::neutron::params::ovs_cleanup_service}"]],
-    }
+
+    # neutron - one chain ovs-cleanup-->netns-cleanup-->ovs-agent
     pacemaker::constraint::base { 'neutron-ovs-cleanup-to-netns-cleanup-constraint':
       constraint_type => "order",
       first_resource => "${::neutron::params::ovs_cleanup_service}-clone",
@@ -1098,6 +1082,26 @@ if hiera('step') >= 4 {
       require => [Pacemaker::Resource::Ocf["neutron-netns-cleanup"],
                   Pacemaker::Resource::Service["${::neutron::params::ovs_agent_service}"]],
     }
+
+    #another chain keystone-->neutron-server-->ovs-agent-->dhcp-->l3
+    pacemaker::constraint::base { 'keystone-to-neutron-server-constraint':
+      constraint_type => "order",
+      first_resource => "${::keystone::params::service_name}-clone",
+      second_resource => "${::neutron::params::server_service}-clone",
+      first_action => "start",
+      second_action => "start",
+      require => [Pacemaker::Resource::Service[$::keystone::params::service_name],
+                  Pacemaker::Resource::Service[$::neutron::params::server_service]],
+    }
+    pacemaker::constraint::base { 'neutron-server-to-openvswitch-agent-constraint':
+      constraint_type => "order",
+      first_resource => "${::neutron::params::server_service}-clone",
+      second_resource => "${::neutron::params::ovs_agent_service}-clone",
+      first_action => "start",
+      second_action => "start",
+      require => [Pacemaker::Resource::Service[$::neutron::params::server_service],
+                  Pacemaker::Resource::Service[$::neutron::params::ovs_agent_service]],
+    }
     pacemaker::constraint::base { 'neutron-openvswitch-agent-to-dhcp-agent-constraint':
       constraint_type => "order",
       first_resource => "${::neutron::params::ovs_agent_service}-clone",