diff --git a/manifests/messaging.pp b/manifests/messaging.pp index dad5b4b3..99457f6f 100644 --- a/manifests/messaging.pp +++ b/manifests/messaging.pp @@ -28,14 +28,30 @@ # Defaults to 'rabbitpassword' # # [*cluster_node_type*] -# (optionnal) Store the queues on the disc or in the RAM. +# (optional) Store the queues on the disc or in the RAM. # Could be set to 'disk' or 'ram'. # Defaults to 'disc' - +# +# [*haproxy_binding*] +# (optional) Enable or not HAproxy binding for load-balancing. +# Defaults to false +# +# [*rabbitmq_ip*] +# (optional) IP address of RabbitMQ interface. +# Required when using HAproxy binding. +# Defaults to $::ipaddress +# +# [*rabbitmq_port*] +# (optional) Port of RabbitMQ service. +# Defaults to '5672' +# class cloud::messaging( $cluster_node_type = 'disc', $rabbit_names = $::hostname, - $rabbit_password = 'rabbitpassword' + $rabbit_password = 'rabbitpassword', + $haproxy_binding = false, + $rabbitmq_ip = $::ipaddress, + $rabbitmq_port = '5672', ){ # we ensure having an array @@ -63,7 +79,8 @@ class cloud::messaging( config_cluster => true, cluster_nodes => $array_rabbit_names, wipe_db_on_cookie_change => true, - cluster_node_type => $cluster_node_type + cluster_node_type => $cluster_node_type, + port => $rabbitmq_port, } rabbitmq_vhost { '/': @@ -91,4 +108,14 @@ class cloud::messaging( provider => 'rabbitmqctl', } + if $haproxy_binding { + @@haproxy::balancermember{"${::fqdn}-rabbitmq": + listening_service => 'rabbitmq_cluster', + server_names => $::hostname, + ipaddresses => $rabbitmq_ip, + ports => $rabbitmq_port, + options => 'check inter 5s rise 2 fall 3' + } + } + } diff --git a/spec/classes/cloud_messaging_spec.rb b/spec/classes/cloud_messaging_spec.rb index fbfcae77..072d18ac 100644 --- a/spec/classes/cloud_messaging_spec.rb +++ b/spec/classes/cloud_messaging_spec.rb @@ -36,7 +36,8 @@ describe 'cloud::messaging' do :config_cluster => true, :cluster_nodes => params[:rabbit_names], :wipe_db_on_cookie_change => true, - :cluster_node_type => 'disc' + :cluster_node_type => 'disc', + :port => '5672', ) end diff --git a/templates/loadbalancer/monitor.erb b/templates/loadbalancer/monitor.erb index e8749deb..a8fbc604 100644 --- a/templates/loadbalancer/monitor.erb +++ b/templates/loadbalancer/monitor.erb @@ -38,6 +38,10 @@ monitor fail if metadata_api_dead acl spice_dead nbsrv(spice_cluster) lt 1 monitor fail if spice_dead <%- end -%> +<%- if @rabbitmq -%> +acl rabbitmq_dead nbsrv(rabbitmq_cluster) lt 1 +monitor fail if rabbitmq_dead +<%- end -%> <%- if @glance_api -%> acl glance_api_dead nbsrv(glance_api_cluster) lt 1 monitor fail if glance_api_dead