#  Defaults to undef
 #
 # [*controller_hosts*]
-#  Host or group of hosts to load-balance the services
+#  IPs of host or group of hosts to load-balance the services
+#  Can be a string or an array.
+#  Defaults to undef
+#
+# [*controller_hosts_names*]
+#  Names of host or group of hosts to load-balance the services
 #  Can be a string or an array.
 #  Defaults to undef
 #
   $public_virtual_ip,
   $controller_host           = undef,
   $controller_hosts          = undef,
+  $controller_hosts_names    = undef,
   $galera_master_hostname    = undef,
   $keystone_admin            = false,
   $keystone_public           = false,
     $controller_hosts_real = $controller_host
   }
 
+  if !$controller_hosts_names {
+    $controller_hosts_names_real = $controller_hosts_real
+  } else {
+    $controller_hosts_names_real = $controller_hosts_names
+  }
+
   case $::osfamily {
     'RedHat': {
       $keepalived_name_is_process = false
       listening_service => 'keystone_admin',
       ports             => '35357',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'keystone_public',
       ports             => '5000',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'neutron',
       ports             => '9696',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'cinder',
       ports             => '8776',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'glance_api',
       ports             => '9292',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'glance_registry',
       ports             => '9191',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'nova_ec2',
       ports             => '8773',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'nova_osapi',
       ports             => '8774',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'nova_metadata',
       ports             => '8775',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'nova_novncproxy',
       ports             => '6080',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'ceilometer',
       ports             => '8777',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => [],
     }
   }
       listening_service => 'swift_proxy_server',
       ports             => '8080',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'heat_api',
       ports             => '8004',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'heat_cloudwatch',
       ports             => '8003',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'heat_cfn',
       ports             => '8000',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'horizon',
       ports             => '80',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }
       listening_service => 'mysql',
       ports             => '3306',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => $options_real,
     }
   }
       listening_service => 'rabbitmq',
       ports             => '5672',
       ipaddresses       => $controller_hosts_real,
+      server_names      => $controller_hosts_names_real,
       options           => ['check', 'inter 2000', 'rise 2', 'fall 5'],
     }
   }