Ironic: enabled_services moved from ironic to ironic::conductor manifest
[apex-tripleo-heat-templates.git] / puppet / services / rabbitmq.yaml
index 581b4ba..a0669dc 100644 (file)
@@ -1,9 +1,18 @@
-heat_template_version: 2016-04-08
+heat_template_version: 2016-10-14
 
 description: >
   RabbitMQ service configured with Puppet
 
 parameters:
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.  This
+                 mapping overrides those in ServiceNetMapDefaults.
+    type: json
+  DefaultPasswords:
+    default: {}
+    type: json
   EndpointMap:
     default: {}
     description: Mapping of service endpoint -> protocol. Typically set
@@ -18,22 +27,66 @@ parameters:
     type: string
     hidden: true
   RabbitFDLimit:
-    default: 16384
+    default: 65536
     description: Configures RabbitMQ FD limit
     type: string
   RabbitIPv6:
     default: false
     description: Enable IPv6 in RabbitMQ
     type: boolean
+  RabbitCookie:
+    type: string
+    default: ''
+    hidden: true
+  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}
         rabbitmq::default_pass: {get_param: RabbitPassword}
         rabbit_ipv6: {get_param: RabbitIPv6}
+        tripleo.rabbitmq.firewall_rules:
+          '109 rabbitmq':
+            dport:
+              - 4369
+              - 5672
+              - 35672
+        rabbitmq::delete_guest_user: false
+        rabbitmq::wipe_db_on_cookie_change: true
+        rabbitmq::port: '5672'
+        rabbitmq::package_source: undef
+        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_kernel_variables:
+          inet_dist_listen_min: '35672'
+          inet_dist_listen_max: '35672'
+        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'
+          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]}
       step_config: |
         include ::tripleo::profile::base::rabbitmq