Set meta container-attribute-target=host attribute
authorMichele Baldessari <michele@acksyn.org>
Fri, 25 Aug 2017 08:21:11 +0000 (10:21 +0200)
committerChris Jones <cmsj@tenshu.net>
Thu, 5 Oct 2017 16:25:48 +0000 (16:25 +0000)
This is needed because when we run bundles we actually
want to store attributes on a per-node basis and not on a per-bundle
basis. By activating this attribute pacemaker will pass
some extra OCS_RESKEY_CRM_meta attributes that will help us in this
decision.

We can merge this once we have packages for pacemaker and
resource-agents releases that contain the necessary fixes.

Proper pacemaker and resource-agents are now in the repo [1] so
we can merge it and backport it to pike.

[1] https://buildlogs.centos.org/centos/7/cloud/x86_64/openstack-pike/

Closes-Bug: #1713007

Change-Id: I0dd06e953b4c81f217d0f4199b2337e4c3358086
(cherry picked from commit 6bcb011723ad7b75f18914c887dc4fa4bad4d620)

manifests/profile/pacemaker/database/mysql_bundle.pp
manifests/profile/pacemaker/database/redis_bundle.pp
manifests/profile/pacemaker/ovn_dbs_bundle.pp
manifests/profile/pacemaker/rabbitmq_bundle.pp

index e07ac2e..1bcdbbe 100644 (file)
@@ -100,9 +100,10 @@ class tripleo::profile::pacemaker::database::mysql_bundle (
   $galera_nodes_count = count($galera_nodes_array)
 
   # construct a galera-pacemaker name mapping for the resource agent
-  # [galera-bundle-0:galera_node[0], galera-bundle-1:galera_node[1], ... ,galera-bundle-n:galera_node[n]]
-  $host_map_array = $galera_nodes_array.map |$i, $host| {
-    "galera-bundle-${i}:${host}"
+  # [galera-0:galera-0.internalapi.local, ...]
+  $host_map_array_tmp = zip($galera_node_names_lookup, $galera_fqdns_names_lookup)
+  $host_map_array = $host_map_array_tmp.map |$i| {
+    "${i[0]}:${i[1]}"
   }
   $cluster_host_map_string = join($host_map_array, ';')
 
@@ -314,7 +315,7 @@ MYSQL_HOST=localhost\n",
       pacemaker::resource::ocf { 'galera':
         ocf_agent_name  => 'heartbeat:galera',
         master_params   => '',
-        meta_params     => "master-max=${galera_nodes_count} ordered=true",
+        meta_params     => "master-max=${galera_nodes_count} ordered=true container-attribute-target=host",
         op_params       => 'promote timeout=300s on-fail=block',
         resource_params => "additional_parameters='--open-files-limit=16384' enable_creation=true wsrep_cluster_address='gcomm://${galera_nodes}' cluster_host_map='${cluster_host_map_string}'",
         tries           => $pcs_tries,
index 8b18858..1e144f9 100644 (file)
@@ -150,7 +150,7 @@ class tripleo::profile::pacemaker::database::redis_bundle (
         ocf_agent_name  => 'heartbeat:redis',
         resource_params => 'wait_last_known_master=true',
         master_params   => '',
-        meta_params     => 'notify=true ordered=true interleave=true',
+        meta_params     => 'notify=true ordered=true interleave=true container-attribute-target=host',
         op_params       => 'start timeout=200s stop timeout=200s',
         tries           => $pcs_tries,
         location_rule   => {
index 8c287b1..efe3e93 100644 (file)
@@ -139,7 +139,7 @@ class tripleo::profile::pacemaker::ovn_dbs_bundle (
         resource_params => "master_ip=${ovn_dbs_vip} nb_master_port=${nb_db_port} sb_master_port=${sb_db_port} manage_northd=yes",
         tries           => $pcs_tries,
         location_rule   => $ovn_dbs_location_rule,
-        meta_params     => 'notify=true',
+        meta_params     => 'notify=true container-attribute-target=host',
         bundle          => 'ovn-dbs-bundle',
       }
 
index 4d6b9af..db34d03 100644 (file)
@@ -206,7 +206,7 @@ class tripleo::profile::pacemaker::rabbitmq_bundle (
       pacemaker::resource::ocf { 'rabbitmq':
         ocf_agent_name  => 'heartbeat:rabbitmq-cluster',
         resource_params => $params,
-        meta_params     => 'notify=true',
+        meta_params     => 'notify=true container-attribute-target=host',
         op_params       => 'start timeout=200s stop timeout=200s',
         tries           => $pcs_tries,
         location_rule   => {