Manage Redis VIP when deploying with keepalived
authorJiri Stransky <jistr@redhat.com>
Fri, 2 Sep 2016 13:18:00 +0000 (15:18 +0200)
committerJiri Stransky <jistr@redhat.com>
Fri, 2 Sep 2016 15:36:51 +0000 (17:36 +0200)
Previously we weren't creating Redis VIP in keepalived, causing Redis to
be unusable in non-HA deployments.

Change-Id: I0bb37f6fb3eed022288b2dcfc7a88e8ff88a7ace
Related-Bug: #1618510

manifests/keepalived.pp

index 45d772e..c0fb3ef 100644 (file)
 #  A string.
 #  Defaults to false
 #
+# [*redis_virtual_ip*]
+#  Virtual IP on the redis service.
+#  A string.
+#  Defaults to false
+#
 class tripleo::keepalived (
   $controller_virtual_ip,
   $control_virtual_interface,
@@ -62,6 +67,7 @@ class tripleo::keepalived (
   $internal_api_virtual_ip = false,
   $storage_virtual_ip      = false,
   $storage_mgmt_virtual_ip = false,
+  $redis_virtual_ip        = false,
 ) {
 
   case $::osfamily {
@@ -141,4 +147,16 @@ class tripleo::keepalived (
     }
   }
 
+  if $redis_virtual_ip and $redis_virtual_ip != $controller_virtual_ip {
+    $redis_virtual_interface = interface_for_ip($redis_virtual_ip)
+    # KEEPALIVE STORAGE MANAGEMENT NETWORK
+    keepalived::instance { '56':
+      interface    => $redis_virtual_interface,
+      virtual_ips  => [join([$redis_virtual_ip, ' dev ', $redis_virtual_interface])],
+      state        => 'MASTER',
+      track_script => ['haproxy'],
+      priority     => 101,
+    }
+  }
+
 }