# Rabbit
                 rabbit_username: {get_input: rabbit_username}
                 rabbit_password: {get_input: rabbit_password}
-                rabbit_cookie: {get_input: rabbit_cookie}
                 rabbit_client_use_ssl: {get_input: rabbit_client_use_ssl}
                 rabbit_client_port: {get_input: rabbit_client_port}
+                rabbitmq::erlang_cookie: {get_input: rabbit_cookie}
                 # Misc
                 neutron_public_interface_ip: {get_input: neutron_public_interface_ip}
                 ntp::servers: {get_input: ntp_servers}
 
   Class['rabbitmq'] -> Rabbitmq_user <| |>
   Class['rabbitmq'] -> Rabbitmq_user_permissions <| |>
 
-  # TODO Rabbit HA
+  $rabbit_nodes = split(downcase(hiera('rabbit_nodes', $::hostname)), ',')
+  if count($rabbit_nodes) > 1 {
+    $rabbit_cluster = true
+  }
+  else {
+    $rabbit_cluster = false
+  }
   class { 'rabbitmq':
-    package_provider  => $rabbit_provider,
-    config_cluster    => false,
-    node_ip_address   => hiera('controller_host'),
+    package_provider => $rabbit_provider,
+    config_cluster   => $rabbit_cluster,
+    cluster_nodes    => $rabbit_nodes,
+    node_ip_address  => hiera('controller_host'),
   }
 
   rabbitmq_vhost { '/':