Merge "Removes EnableODL heat parameter and fixes missing local_ip param"
[apex-tripleo-heat-templates.git] / puppet / services / rabbitmq.yaml
index 5d58064..5387529 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2016-04-08
+heat_template_version: 2016-10-14
 
 description: >
   RabbitMQ service configured with Puppet
@@ -34,12 +34,27 @@ parameters:
     default: false
     description: Enable IPv6 in RabbitMQ
     type: boolean
+  RabbitCookie:
+    type: string
+    default: ''
+    hidden: true
+  RabbitHAQueues:
+    description:
+      The number of HA queues to be configured in rabbit. The default is 0 which will
+      be automatically overridden to CEIL(N/2) where N is the number of nodes running
+      rabbitmq.
+    default: 0
+    type: number
+  MonitoringSubscriptionRabbitmq:
+    default: 'overcloud-rabbitmq'
+    type: string
 
 outputs:
   role_data:
     description: Role data for the RabbitMQ role.
     value:
       service_name: rabbitmq
+      monitoring_subscription: {get_param: MonitoringSubscriptionRabbitmq}
       config_settings:
         rabbitmq::file_limit: {get_param: RabbitFDLimit}
         rabbitmq::default_user: {get_param: RabbitUserName}
@@ -50,7 +65,7 @@ outputs:
             dport:
               - 4369
               - 5672
-              - 35672
+              - 25672
         rabbitmq::delete_guest_user: false
         rabbitmq::wipe_db_on_cookie_change: true
         rabbitmq::port: '5672'
@@ -58,13 +73,30 @@ outputs:
         rabbitmq::repos_ensure: false
         rabbitmq_environment:
           RABBITMQ_NODENAME: "rabbit@%{::hostname}"
-          RABBITMQ_SERVER_ERL_ARGS: '"+K true +A30 +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"'
+          RABBITMQ_SERVER_ERL_ARGS: '"+K true +P 1048576 -kernel inet_default_connect_options [{nodelay,true},{raw,6,18,<<5000:64/native>>}] -kernel inet_default_listen_options [{raw,6,18,<<5000:64/native>>}]"'
         rabbitmq_kernel_variables:
-          inet_dist_listen_min: '35672'
-          inet_dist_listen_max: '35672'
+          inet_dist_listen_min: '25672'
+          inet_dist_listen_max: '25672'
         rabbitmq_config_variables:
           tcp_listen_options: '[binary, {packet, raw}, {reuseaddr, true}, {backlog, 128}, {nodelay, true}, {exit_on_close, false}, {keepalive, true}]'
           cluster_partition_handling: 'pause_minority'
+          queue_master_locator: '<<"min-masters">>'
           loopback_users: '[]'
+        rabbitmq::erlang_cookie:
+          yaql:
+            expression: $.data.passwords.where($ != '').first()
+            data:
+              passwords:
+                - {get_param: RabbitCookie}
+                - {get_param: [DefaultPasswords, rabbit_cookie]}
+        # NOTE: bind IP is found in Heat replacing the network name with the
+        # local node IP for the given network; replacement examples
+        # (eg. for internal_api):
+        # internal_api -> IP
+        # internal_api_uri -> [IP]
+        # internal_api_subnet - > IP/CIDR
+        rabbitmq::node_ip_address: {get_param: [ServiceNetMap, RabbitmqNetwork]}
+        rabbitmq::nr_ha_queues: {get_param: RabbitHAQueues}
+
       step_config: |
         include ::tripleo::profile::base::rabbitmq