Blob Blame History Raw
From 6b28a1fc2078d281a56689668c232bd993b73f0e Mon Sep 17 00:00:00 2001
From: Giulio Fidente <gfidente@redhat.com>
Date: Wed, 24 Jun 2015 08:55:21 +0200
Subject: [PATCH] Introduce param to enable use of clustercheck

In the pacemaker scenario we want to use the clustercheck script
to evict galera nodes which are out of sync. This change adds a
parameter meant to enable use of clustercheck for the mysql service.

Change-Id: I7199c7e5d759a76f58c0f48b40e9d460a3163886
Closes-Bug: 1456701
---
 tripleo/manifests/loadbalancer.pp | 25 +++++++++++++++++++++----
 1 file changed, 21 insertions(+), 4 deletions(-)

diff --git a/tripleo/manifests/loadbalancer.pp b/tripleo/manifests/loadbalancer.pp
index 102deeb..3efbb51 100644
--- a/tripleo/manifests/loadbalancer.pp
+++ b/tripleo/manifests/loadbalancer.pp
@@ -200,6 +200,10 @@
 #  (optional) Enable or not MySQL Galera binding
 #  Defaults to false
 #
+# [*mysql_clustercheck*]
+#  (optional) Enable check via clustercheck for mysql
+#  Defaults to false
+#
 # [*rabbitmq*]
 #  (optional) Enable or not RabbitMQ binding
 #  Defaults to false
@@ -249,6 +253,7 @@ class tripleo::loadbalancer (
   $heat_cfn                  = false,
   $horizon                   = false,
   $mysql                     = false,
+  $mysql_clustercheck        = false,
   $rabbitmq                  = false,
   $redis                     = false,
 ) {
@@ -855,13 +860,25 @@ class tripleo::loadbalancer (
     }
   }
 
+  if $mysql_clustercheck {
+    $mysql_listen_options = {
+        'option'      => [ 'httpchk' ],
+        'timeout'     => [ 'client 0', 'server 0' ],
+        'stick-table' => 'type ip size 1000',
+        'stick'       => 'on dst',
+    }
+    $mysql_member_options = ['check', 'inter 2000', 'rise 2', 'fall 5', 'backup', 'port 9200', 'on-marked-down shutdown-sessions']
+  } else {
+    $mysql_listen_options = {
+        'timeout'     => [ 'client 0', 'server 0' ],
+    }
+    $mysql_member_options = ['check', 'inter 2000', 'rise 2', 'fall 5', 'backup']
+  }
   if $mysql {
     haproxy::listen { 'mysql':
       ipaddress        => [hiera('mysql_vip', $controller_virtual_ip)],
       ports            => 3306,
-      options          => {
-        'timeout' => [ 'client 0', 'server 0' ],
-      },
+      options          => $mysql_listen_options,
       collect_exported => false,
     }
     haproxy::balancermember { 'mysql-backup':
@@ -869,7 +886,7 @@ class tripleo::loadbalancer (
       ports             => '3306',
       ipaddresses       => hiera('mysql_node_ips', $controller_hosts_real),
       server_names      => $controller_hosts_names_real,
-      options           => ['check', 'inter 2000', 'rise 2', 'fall 5', 'backup'],
+      options           => $mysql_member_options,
     }
   }