diff --git a/REFERENCE.md b/REFERENCE.md
index 36dfe5830..936579758 100644
--- a/REFERENCE.md
+++ b/REFERENCE.md
@@ -1,15 +1,16 @@
# Reference
+
## Table of Contents
-**Classes**
+### Classes
-_Public Classes_
+#### Public Classes
* [`rabbitmq`](#rabbitmq): A module to manage RabbitMQ
-_Private Classes_
+#### Private Classes
* `rabbitmq::config`: Sets all the configuration values for RabbitMQ and creates the directories for config and ssl.
* `rabbitmq::install`: Ensures that rabbitmq-server exists
@@ -19,7 +20,7 @@ _Private Classes_
* `rabbitmq::repo::rhel`: Makes sure that the Packagecloud repo is installed
* `rabbitmq::service`: This class manages the rabbitmq server service itself.
-**Resource types**
+### Resource types
* [`rabbitmq_binding`](#rabbitmq_binding): Native type for managing rabbitmq bindings rabbitmq_binding { 'binding 1': ensure => present, source => 'myexchange'
* [`rabbitmq_cluster`](#rabbitmq_cluster): Native type for managing rabbitmq cluster
@@ -35,7 +36,7 @@ _Private Classes_
## Classes
-### rabbitmq
+### `rabbitmq`
A module to manage RabbitMQ
@@ -191,9 +192,116 @@ class { 'rabbitmq':
#### Parameters
-The following parameters are available in the `rabbitmq` class.
-
-##### `admin_enable`
+The following parameters are available in the `rabbitmq` class:
+
+* [`admin_enable`](#-rabbitmq--admin_enable)
+* [`management_enable`](#-rabbitmq--management_enable)
+* [`use_config_file_for_plugins`](#-rabbitmq--use_config_file_for_plugins)
+* [`plugins`](#-rabbitmq--plugins)
+* [`auth_backends`](#-rabbitmq--auth_backends)
+* [`cluster`](#-rabbitmq--cluster)
+* [`cluster_node_type`](#-rabbitmq--cluster_node_type)
+* [`cluster_nodes`](#-rabbitmq--cluster_nodes)
+* [`cluster_partition_handling`](#-rabbitmq--cluster_partition_handling)
+* [`collect_statistics_interval`](#-rabbitmq--collect_statistics_interval)
+* [`config`](#-rabbitmq--config)
+* [`config_additional_variables`](#-rabbitmq--config_additional_variables)
+* [`config_cluster`](#-rabbitmq--config_cluster)
+* [`config_kernel_variables`](#-rabbitmq--config_kernel_variables)
+* [`config_path`](#-rabbitmq--config_path)
+* [`config_ranch`](#-rabbitmq--config_ranch)
+* [`config_management_variables`](#-rabbitmq--config_management_variables)
+* [`config_stomp`](#-rabbitmq--config_stomp)
+* [`config_shovel`](#-rabbitmq--config_shovel)
+* [`config_shovel_statics`](#-rabbitmq--config_shovel_statics)
+* [`config_variables`](#-rabbitmq--config_variables)
+* [`default_user`](#-rabbitmq--default_user)
+* [`default_pass`](#-rabbitmq--default_pass)
+* [`delete_guest_user`](#-rabbitmq--delete_guest_user)
+* [`env_config`](#-rabbitmq--env_config)
+* [`env_config_path`](#-rabbitmq--env_config_path)
+* [`environment_variables`](#-rabbitmq--environment_variables)
+* [`erlang_cookie`](#-rabbitmq--erlang_cookie)
+* [`file_limit`](#-rabbitmq--file_limit)
+* [`oom_score_adj`](#-rabbitmq--oom_score_adj)
+* [`heartbeat`](#-rabbitmq--heartbeat)
+* [`inetrc_config`](#-rabbitmq--inetrc_config)
+* [`inetrc_config_path`](#-rabbitmq--inetrc_config_path)
+* [`ipv6`](#-rabbitmq--ipv6)
+* [`interface`](#-rabbitmq--interface)
+* [`key_content`](#-rabbitmq--key_content)
+* [`ldap_auth`](#-rabbitmq--ldap_auth)
+* [`ldap_server`](#-rabbitmq--ldap_server)
+* [`ldap_user_dn_pattern`](#-rabbitmq--ldap_user_dn_pattern)
+* [`ldap_other_bind`](#-rabbitmq--ldap_other_bind)
+* [`ldap_config_variables`](#-rabbitmq--ldap_config_variables)
+* [`ldap_use_ssl`](#-rabbitmq--ldap_use_ssl)
+* [`ldap_port`](#-rabbitmq--ldap_port)
+* [`ldap_log`](#-rabbitmq--ldap_log)
+* [`manage_python`](#-rabbitmq--manage_python)
+* [`management_hostname`](#-rabbitmq--management_hostname)
+* [`management_port`](#-rabbitmq--management_port)
+* [`management_ip_address`](#-rabbitmq--management_ip_address)
+* [`management_ssl`](#-rabbitmq--management_ssl)
+* [`node_ip_address`](#-rabbitmq--node_ip_address)
+* [`package_apt_pin`](#-rabbitmq--package_apt_pin)
+* [`package_ensure`](#-rabbitmq--package_ensure)
+* [`package_gpg_key`](#-rabbitmq--package_gpg_key)
+* [`repo_gpg_key`](#-rabbitmq--repo_gpg_key)
+* [`package_name`](#-rabbitmq--package_name)
+* [`port`](#-rabbitmq--port)
+* [`python_package`](#-rabbitmq--python_package)
+* [`repos_ensure`](#-rabbitmq--repos_ensure)
+* [`service_ensure`](#-rabbitmq--service_ensure)
+* [`service_manage`](#-rabbitmq--service_manage)
+* [`service_name`](#-rabbitmq--service_name)
+* [`service_restart`](#-rabbitmq--service_restart)
+* [`ssl`](#-rabbitmq--ssl)
+* [`ssl_cacert`](#-rabbitmq--ssl_cacert)
+* [`ssl_cert`](#-rabbitmq--ssl_cert)
+* [`ssl_cert_password`](#-rabbitmq--ssl_cert_password)
+* [`ssl_depth`](#-rabbitmq--ssl_depth)
+* [`ssl_dhfile`](#-rabbitmq--ssl_dhfile)
+* [`ssl_erl_dist`](#-rabbitmq--ssl_erl_dist)
+* [`ssl_honor_cipher_order`](#-rabbitmq--ssl_honor_cipher_order)
+* [`ssl_interface`](#-rabbitmq--ssl_interface)
+* [`ssl_key`](#-rabbitmq--ssl_key)
+* [`ssl_only`](#-rabbitmq--ssl_only)
+* [`ssl_management_port`](#-rabbitmq--ssl_management_port)
+* [`ssl_management_cacert`](#-rabbitmq--ssl_management_cacert)
+* [`ssl_management_cert`](#-rabbitmq--ssl_management_cert)
+* [`ssl_management_key`](#-rabbitmq--ssl_management_key)
+* [`ssl_port`](#-rabbitmq--ssl_port)
+* [`ssl_reuse_sessions`](#-rabbitmq--ssl_reuse_sessions)
+* [`ssl_secure_renegotiate`](#-rabbitmq--ssl_secure_renegotiate)
+* [`ssl_stomp_port`](#-rabbitmq--ssl_stomp_port)
+* [`ssl_verify`](#-rabbitmq--ssl_verify)
+* [`ssl_fail_if_no_peer_cert`](#-rabbitmq--ssl_fail_if_no_peer_cert)
+* [`ssl_management_verify`](#-rabbitmq--ssl_management_verify)
+* [`ssl_versions`](#-rabbitmq--ssl_versions)
+* [`ssl_ciphers`](#-rabbitmq--ssl_ciphers)
+* [`ssl_crl_check`](#-rabbitmq--ssl_crl_check)
+* [`ssl_crl_cache_hash_dir`](#-rabbitmq--ssl_crl_cache_hash_dir)
+* [`ssl_crl_cache_http_timeout`](#-rabbitmq--ssl_crl_cache_http_timeout)
+* [`stomp_port`](#-rabbitmq--stomp_port)
+* [`stomp_ssl_only`](#-rabbitmq--stomp_ssl_only)
+* [`stomp_ensure`](#-rabbitmq--stomp_ensure)
+* [`tcp_backlog`](#-rabbitmq--tcp_backlog)
+* [`tcp_keepalive`](#-rabbitmq--tcp_keepalive)
+* [`tcp_recbuf`](#-rabbitmq--tcp_recbuf)
+* [`tcp_sndbuf`](#-rabbitmq--tcp_sndbuf)
+* [`wipe_db_on_cookie_change`](#-rabbitmq--wipe_db_on_cookie_change)
+* [`rabbitmq_user`](#-rabbitmq--rabbitmq_user)
+* [`rabbitmq_group`](#-rabbitmq--rabbitmq_group)
+* [`rabbitmq_home`](#-rabbitmq--rabbitmq_home)
+* [`rabbitmqadmin_package`](#-rabbitmq--rabbitmqadmin_package)
+* [`archive_options`](#-rabbitmq--archive_options)
+* [`loopback_users`](#-rabbitmq--loopback_users)
+* [`package_source`](#-rabbitmq--package_source)
+* [`package_provider`](#-rabbitmq--package_provider)
+* [`ssl_management_fail_if_no_peer_cert`](#-rabbitmq--ssl_management_fail_if_no_peer_cert)
+
+##### `admin_enable`
Data type: `Boolean`
@@ -202,7 +310,7 @@ This will also install the rabbitmqadmin command line tool.
Default value: `true`
-##### `management_enable`
+##### `management_enable`
Data type: `Boolean`
@@ -211,7 +319,7 @@ NOTE: This does not install the rabbitmqadmin command line tool.
Default value: `false`
-##### `use_config_file_for_plugins`
+##### `use_config_file_for_plugins`
Data type: `Boolean`
@@ -220,15 +328,15 @@ replacing the use of the rabbitmqplugins provider to enable plugins.
Default value: `false`
-##### `plugins`
+##### `plugins`
Data type: `Array`
Additional list of plugins to start, or to add to /etc/rabbitmq/enabled_plugins, if use_config_file_for_plugins is enabled.
-Default value: []
+Default value: `[]`
-##### `auth_backends`
+##### `auth_backends`
Data type: `Optional[Array]`
@@ -238,39 +346,39 @@ rabbit_auth_backend_ldap].
Default value: `undef`
-##### `cluster`
+##### `cluster`
Data type: `Hash`
Join cluster and change name of cluster.
-Default value: $rabbitmq::cluster
+Default value: `$rabbitmq::cluster`
-##### `cluster_node_type`
+##### `cluster_node_type`
Data type: `Enum['ram', 'disc']`
Choose between disc and ram nodes.
-Default value: 'disc'
+Default value: `'disc'`
-##### `cluster_nodes`
+##### `cluster_nodes`
Data type: `Array`
An array of nodes for clustering.
-Default value: []
+Default value: `[]`
-##### `cluster_partition_handling`
+##### `cluster_partition_handling`
Data type: `String`
Value to set for `cluster_partition_handling` RabbitMQ configuration variable.
-Default value: 'ignore'
+Default value: `'ignore'`
-##### `collect_statistics_interval`
+##### `collect_statistics_interval`
Data type: `Optional[Integer]`
@@ -278,23 +386,23 @@ Set the collect_statistics_interval in rabbitmq.config
Default value: `undef`
-##### `config`
+##### `config`
Data type: `String`
The file to use as the rabbitmq.config template.
-Default value: 'rabbitmq/rabbitmq.config.erb'
+Default value: `'rabbitmq/rabbitmq.config.erb'`
-##### `config_additional_variables`
+##### `config_additional_variables`
Data type: `Hash`
Additional config variables in rabbitmq.config
-Default value: {}
+Default value: `{}`
-##### `config_cluster`
+##### `config_cluster`
Data type: `Boolean`
@@ -302,23 +410,23 @@ Enable or disable clustering support.
Default value: `false`
-##### `config_kernel_variables`
+##### `config_kernel_variables`
Data type: `Hash`
Hash of Erlang kernel configuration variables to set (see [Variables Configurable in rabbitmq.config](#variables-configurable-in-rabbitmq.config)).
-Default value: {}
+Default value: `{}`
-##### `config_path`
+##### `config_path`
Data type: `Stdlib::Absolutepath`
The path to write the RabbitMQ configuration file to.
-Default value: '/etc/rabbitmq/rabbitmq.config'
+Default value: `'/etc/rabbitmq/rabbitmq.config'`
-##### `config_ranch`
+##### `config_ranch`
Data type: `Boolean`
@@ -326,15 +434,15 @@ When true, suppress config directives needed for older (<3.6) RabbitMQ versions.
Default value: `true`
-##### `config_management_variables`
+##### `config_management_variables`
Data type: `Hash`
Hash of configuration variables for the [Management Plugin](https://www.rabbitmq.com/management.html).
-Default value: {}
+Default value: `{}`
-##### `config_stomp`
+##### `config_stomp`
Data type: `Boolean`
@@ -342,7 +450,7 @@ Enable or disable stomp.
Default value: `false`
-##### `config_shovel`
+##### `config_shovel`
Data type: `Boolean`
@@ -350,39 +458,39 @@ Enable or disable shovel.
Default value: `false`
-##### `config_shovel_statics`
+##### `config_shovel_statics`
Data type: `Hash`
Hash of static shovel configurations
-Default value: {}
+Default value: `{}`
-##### `config_variables`
+##### `config_variables`
Data type: `Hash`
To set config variables in rabbitmq.config
-Default value: {}
+Default value: `{}`
-##### `default_user`
+##### `default_user`
Data type: `String`
Username to set for the `default_user` in rabbitmq.config.
-Default value: 'guest'
+Default value: `'guest'`
-##### `default_pass`
+##### `default_pass`
Data type: `String`
Password to set for the `default_user` in rabbitmq.config.
-Default value: 'guest'
+Default value: `'guest'`
-##### `delete_guest_user`
+##### `delete_guest_user`
Data type: `Boolean`
@@ -390,31 +498,31 @@ Controls whether default guest user is deleted.
Default value: `false`
-##### `env_config`
+##### `env_config`
Data type: `String`
The template file to use for rabbitmq_env.config.
-Default value: 'rabbitmq/rabbitmq-env.conf.erb'
+Default value: `'rabbitmq/rabbitmq-env.conf.erb'`
-##### `env_config_path`
+##### `env_config_path`
Data type: `Stdlib::Absolutepath`
The path to write the rabbitmq_env.config file to.
-Default value: '/etc/rabbitmq/rabbitmq-env.conf'
+Default value: `'/etc/rabbitmq/rabbitmq-env.conf'`
-##### `environment_variables`
+##### `environment_variables`
Data type: `Hash`
RabbitMQ Environment Variables in rabbitmq_env.config
-Default value: { 'LC_ALL' => 'en_US.UTF-8' }
+Default value: `{ 'LC_ALL' => 'en_US.UTF-8' }`
-##### `erlang_cookie`
+##### `erlang_cookie`
Data type: `Optional[String]`
@@ -424,23 +532,23 @@ to 'False' and set 'erlang_cookie'.
Default value: `undef`
-##### `file_limit`
+##### `file_limit`
Data type: `Variant[Integer[-1],Enum['unlimited'],Pattern[/^(infinity|\d+(:(infinity|\d+))?)$/]]`
Set rabbitmq file ulimit. Defaults to 16384. Only available on systems with `$::osfamily == 'Debian'` or `$::osfamily == 'RedHat'`.
-Default value: 16384
+Default value: `16384`
-##### `oom_score_adj`
+##### `oom_score_adj`
Data type: `Integer[-1000, 1000]`
Set rabbitmq-server process OOM score. Defaults to 0.
-Default value: 0
+Default value: `0`
-##### `heartbeat`
+##### `heartbeat`
Data type: `Optional[Integer]`
@@ -448,23 +556,23 @@ Set the heartbeat timeout interval, default is unset which uses the builtin serv
Default value: `undef`
-##### `inetrc_config`
+##### `inetrc_config`
Data type: `String`
Template to use for the inetrc config
-Default value: 'rabbitmq/inetrc.erb'
+Default value: `'rabbitmq/inetrc.erb'`
-##### `inetrc_config_path`
+##### `inetrc_config_path`
Data type: `Stdlib::Absolutepath`
Path of the file to push the inetrc config to.
-Default value: '/etc/rabbitmq/inetrc'
+Default value: `'/etc/rabbitmq/inetrc'`
-##### `ipv6`
+##### `ipv6`
Data type: `Boolean`
@@ -472,7 +580,7 @@ Whether to listen on ipv6
Default value: `false`
-##### `interface`
+##### `interface`
Data type: `Optional[String]`
@@ -481,7 +589,7 @@ to `0` will disable heartbeats.
Default value: `undef`
-##### `key_content`
+##### `key_content`
Data type: `Optional[String]`
@@ -490,7 +598,7 @@ behavior, if enabled. Undefined by default.
Default value: `undef`
-##### `ldap_auth`
+##### `ldap_auth`
Data type: `Boolean`
@@ -498,15 +606,15 @@ Set to true to enable LDAP auth.
Default value: `false`
-##### `ldap_server`
+##### `ldap_server`
Data type: `Variant[String[1],Array[String[1]]]`
LDAP server or servers to use for auth.
-Default value: 'ldap'
+Default value: `'ldap'`
-##### `ldap_user_dn_pattern`
+##### `ldap_user_dn_pattern`
Data type: `Optional[String]`
@@ -514,23 +622,23 @@ User DN pattern for LDAP auth.
Default value: `undef`
-##### `ldap_other_bind`
+##### `ldap_other_bind`
Data type: `String`
How to bind to the LDAP server. Defaults to 'anon'.
-Default value: 'anon'
+Default value: `'anon'`
-##### `ldap_config_variables`
+##### `ldap_config_variables`
Data type: `Hash`
Hash of other LDAP config variables.
-Default value: {}
+Default value: `{}`
-##### `ldap_use_ssl`
+##### `ldap_use_ssl`
Data type: `Boolean`
@@ -538,15 +646,15 @@ Set to true to use SSL for the LDAP server.
Default value: `false`
-##### `ldap_port`
+##### `ldap_port`
Data type: `Integer[1, 65535]`
Numeric port for LDAP server.
-Default value: 389
+Default value: `389`
-##### `ldap_log`
+##### `ldap_log`
Data type: `Boolean`
@@ -554,7 +662,7 @@ Set to true to log LDAP auth.
Default value: `false`
-##### `manage_python`
+##### `manage_python`
Data type: `Boolean`
@@ -563,7 +671,7 @@ installed (for rabbitmqadmin). This will only apply if `admin_enable` and `servi
Default value: `true`
-##### `management_hostname`
+##### `management_hostname`
Data type: `Optional[String]`
@@ -571,15 +679,15 @@ The hostname for the RabbitMQ management interface.
Default value: `undef`
-##### `management_port`
+##### `management_port`
Data type: `Integer[1, 65535]`
The port for the RabbitMQ management interface.
-Default value: 15672
+Default value: `15672`
-##### `management_ip_address`
+##### `management_ip_address`
Data type: `Optional[String]`
@@ -588,7 +696,7 @@ localhost only, or 0.0.0.0 to bind to all interfaces.
Default value: `undef`
-##### `management_ssl`
+##### `management_ssl`
Data type: `Boolean`
@@ -596,7 +704,7 @@ Enable/Disable SSL for the management port. Has an effect only if ssl => true.
Default value: `true`
-##### `node_ip_address`
+##### `node_ip_address`
Data type: `Optional[String]`
@@ -605,7 +713,7 @@ to bind to all interfaces.
Default value: `undef`
-##### `package_apt_pin`
+##### `package_apt_pin`
Data type: `Optional[Variant[Numeric, String]]`
@@ -613,15 +721,15 @@ Whether to pin the package to a particular source
Default value: `undef`
-##### `package_ensure`
+##### `package_ensure`
Data type: `String`
Determines the ensure state of the package. Set to installed by default, but could be changed to latest.
-Default value: 'installed'
+Default value: `'installed'`
-##### `package_gpg_key`
+##### `package_gpg_key`
Data type: `Optional[String]`
@@ -631,7 +739,7 @@ for Debian/RedHat OS Family by default.
Default value: `undef`
-##### `repo_gpg_key`
+##### `repo_gpg_key`
Data type: `Optional[String]`
@@ -641,31 +749,31 @@ default. Note, that `key_content`, if specified, would override this parameter f
Default value: `undef`
-##### `package_name`
+##### `package_name`
Data type: `Variant[String, Array]`
Name(s) of the package(s) to install
-Default value: 'rabbitmq'
+Default value: `'rabbitmq'`
-##### `port`
+##### `port`
Data type: `Integer`
The RabbitMQ port.
-Default value: 5672
+Default value: `5672`
-##### `python_package`
+##### `python_package`
Data type: `String`
Name of the package required by rabbitmqadmin.
-Default value: 'python'
+Default value: `'python'`
-##### `repos_ensure`
+##### `repos_ensure`
Data type: `Boolean`
@@ -676,15 +784,15 @@ different ways of handling the erlang deps. See also https://github.com/voxpupu
Default value: `false`
-##### `service_ensure`
+##### `service_ensure`
Data type: `Enum['running', 'stopped']`
The state of the service.
-Default value: 'running'
+Default value: `'running'`
-##### `service_manage`
+##### `service_manage`
Data type: `Boolean`
@@ -692,15 +800,15 @@ Determines if the service is managed.
Default value: `true`
-##### `service_name`
+##### `service_name`
Data type: `String`
The name of the service to manage.
-Default value: 'rabbitmq'
+Default value: `'rabbitmq'`
-##### `service_restart`
+##### `service_restart`
Data type: `Boolean`
@@ -708,7 +816,7 @@ Default defined in param.pp. Whether to restart the service on config change.
Default value: `true`
-##### `ssl`
+##### `ssl`
Data type: `Boolean`
@@ -716,7 +824,7 @@ Configures the service for using SSL.
Default value: `false`
-##### `ssl_cacert`
+##### `ssl_cacert`
Data type: `Optional[Stdlib::Absolutepath]`
@@ -724,7 +832,7 @@ CA cert path to use for SSL.
Default value: `undef`
-##### `ssl_cert`
+##### `ssl_cert`
Data type: `Optional[Stdlib::Absolutepath]`
@@ -732,7 +840,7 @@ Cert to use for SSL.
Default value: `undef`
-##### `ssl_cert_password`
+##### `ssl_cert_password`
Data type: `Optional[String]`
@@ -740,7 +848,7 @@ Password used when generating CSR.
Default value: `undef`
-##### `ssl_depth`
+##### `ssl_depth`
Data type: `Optional[Integer]`
@@ -748,7 +856,7 @@ SSL verification depth.
Default value: `undef`
-##### `ssl_dhfile`
+##### `ssl_dhfile`
Data type: `Optional[Stdlib::Absolutepath]`
@@ -756,7 +864,7 @@ Use this dhparam file [example: generate with `openssl dhparam -out /etc/rabbitm
Default value: `undef`
-##### `ssl_erl_dist`
+##### `ssl_erl_dist`
Data type: `Boolean`
@@ -764,7 +872,7 @@ Whether to use the erlang package's SSL (relies on the ssl_erl_path fact)
Default value: `false`
-##### `ssl_honor_cipher_order`
+##### `ssl_honor_cipher_order`
Data type: `Boolean`
@@ -772,7 +880,7 @@ Force use of server cipher order
Default value: `true`
-##### `ssl_interface`
+##### `ssl_interface`
Data type: `Optional[String]`
@@ -780,7 +888,7 @@ Interface for SSL listener to bind to
Default value: `undef`
-##### `ssl_key`
+##### `ssl_key`
Data type: `Optional[Stdlib::Absolutepath]`
@@ -788,7 +896,7 @@ Key to use for SSL.
Default value: `undef`
-##### `ssl_only`
+##### `ssl_only`
Data type: `Boolean`
@@ -797,47 +905,47 @@ port => undef
Default value: `false`
-##### `ssl_management_port`
+##### `ssl_management_port`
Data type: `Integer[1, 65535]`
SSL management port.
-Default value: 15671
+Default value: `15671`
-##### `ssl_management_cacert`
+##### `ssl_management_cacert`
Data type: `Optional[Stdlib::Absolutepath]`
SSL management cacert. If unset set to ssl_cacert for backwards compatibility.
-Default value: $ssl_cacert
+Default value: `$ssl_cacert`
-##### `ssl_management_cert`
+##### `ssl_management_cert`
Data type: `Optional[Stdlib::Absolutepath]`
SSL management cert. If unset set to ssl_cert for backwards compatibility.
-Default value: $ssl_cert
+Default value: `$ssl_cert`
-##### `ssl_management_key`
+##### `ssl_management_key`
Data type: `Optional[Stdlib::Absolutepath]`
SSL management key. If unset set to ssl_key for backwards compatibility.
-Default value: $ssl_key
+Default value: `$ssl_key`
-##### `ssl_port`
+##### `ssl_port`
Data type: `Integer[1, 65535]`
SSL port for RabbitMQ
-Default value: 5671
+Default value: `5671`
-##### `ssl_reuse_sessions`
+##### `ssl_reuse_sessions`
Data type: `Boolean`
@@ -845,7 +953,7 @@ Reuse ssl sessions
Default value: `true`
-##### `ssl_secure_renegotiate`
+##### `ssl_secure_renegotiate`
Data type: `Boolean`
@@ -853,23 +961,23 @@ Use ssl secure renegotiate
Default value: `true`
-##### `ssl_stomp_port`
+##### `ssl_stomp_port`
Data type: `Integer[1, 65535]`
SSL stomp port.
-Default value: 6164
+Default value: `6164`
-##### `ssl_verify`
+##### `ssl_verify`
Data type: `Enum['verify_none','verify_peer']`
rabbitmq.config SSL verify setting.
-Default value: 'verify_none'
+Default value: `'verify_none'`
-##### `ssl_fail_if_no_peer_cert`
+##### `ssl_fail_if_no_peer_cert`
Data type: `Boolean`
@@ -877,15 +985,15 @@ rabbitmq.config `fail_if_no_peer_cert` setting.
Default value: `false`
-##### `ssl_management_verify`
+##### `ssl_management_verify`
Data type: `Enum['verify_none','verify_peer']`
rabbitmq.config SSL verify setting for rabbitmq_management.
-Default value: 'verify_none'
+Default value: `'verify_none'`
-##### `ssl_versions`
+##### `ssl_versions`
Data type: `Optional[Array]`
@@ -896,7 +1004,7 @@ POODLE and BEAST attacks. Please see the
Default value: `undef`
-##### `ssl_ciphers`
+##### `ssl_ciphers`
Data type: `Array`
@@ -906,18 +1014,18 @@ Functionality can be tested with cipherscan or similar tool: https://github.com/
* Erlang style: `['ecdhe_rsa,aes_256_cbc,sha', 'dhe_rsa,aes_256_cbc,sha']`
* OpenSSL style: `['ECDHE-RSA-AES256-SHA', 'DHE-RSA-AES256-SHA']`
-Default value: []
+Default value: `[]`
-##### `ssl_crl_check`
+##### `ssl_crl_check`
Data type: `Enum['true','false','peer','best_effort']`
Perform CRL (Certificate Revocation List) verification
Please see the [Erlang SSL](https://erlang.org/doc/man/ssl.html#type-crl_check) module documentation for more information.
-Default value: 'false'
+Default value: `'false'`
-##### `ssl_crl_cache_hash_dir`
+##### `ssl_crl_cache_hash_dir`
Data type: `Optional[Stdlib::Absolutepath]`
@@ -926,7 +1034,7 @@ Please see the [Erlang SSL](https://erlang.org/doc/man/ssl.html#type-crl_cache_o
Default value: `undef`
-##### `ssl_crl_cache_http_timeout`
+##### `ssl_crl_cache_http_timeout`
Data type: `Optional[Integer]`
@@ -935,15 +1043,15 @@ Please see the [Erlang SSL](https://erlang.org/doc/man/ssl.html#type-crl_cache_o
Default value: `undef`
-##### `stomp_port`
+##### `stomp_port`
Data type: `Integer[1, 65535]`
The port to use for Stomp.
-Default value: 6163
+Default value: `6163`
-##### `stomp_ssl_only`
+##### `stomp_ssl_only`
Data type: `Boolean`
@@ -951,7 +1059,7 @@ Configures STOMP to only use SSL. No cleartext STOMP TCP listeners will be creat
Default value: `false`
-##### `stomp_ensure`
+##### `stomp_ensure`
Data type: `Boolean`
@@ -959,15 +1067,15 @@ Enable to install the stomp plugin.
Default value: `false`
-##### `tcp_backlog`
+##### `tcp_backlog`
Data type: `Integer`
The size of the backlog on TCP connections.
-Default value: 128
+Default value: `128`
-##### `tcp_keepalive`
+##### `tcp_keepalive`
Data type: `Boolean`
@@ -975,7 +1083,7 @@ Enable TCP connection keepalive for RabbitMQ service.
Default value: `false`
-##### `tcp_recbuf`
+##### `tcp_recbuf`
Data type: `Optional[Integer]`
@@ -983,7 +1091,7 @@ Corresponds to recbuf in RabbitMQ `tcp_listen_options`
Default value: `undef`
-##### `tcp_sndbuf`
+##### `tcp_sndbuf`
Data type: `Optional[Integer]`
@@ -991,7 +1099,7 @@ Integer, corresponds to sndbuf in RabbitMQ `tcp_listen_options`
Default value: `undef`
-##### `wipe_db_on_cookie_change`
+##### `wipe_db_on_cookie_change`
Data type: `Boolean`
@@ -999,31 +1107,31 @@ Boolean to determine if we should DESTROY AND DELETE the RabbitMQ database.
Default value: `false`
-##### `rabbitmq_user`
+##### `rabbitmq_user`
Data type: `String`
OS dependent The system user the rabbitmq daemon runs as.
-Default value: 'rabbitmq'
+Default value: `'rabbitmq'`
-##### `rabbitmq_group`
+##### `rabbitmq_group`
Data type: `String`
OS dependent The system group the rabbitmq daemon runs as.
-Default value: 'rabbitmq'
+Default value: `'rabbitmq'`
-##### `rabbitmq_home`
+##### `rabbitmq_home`
Data type: `Stdlib::Absolutepath`
OS dependent The home directory of the rabbitmq deamon.
-Default value: '/var/lib/rabbitmq'
+Default value: `'/var/lib/rabbitmq'`
-##### `rabbitmqadmin_package`
+##### `rabbitmqadmin_package`
Data type: `Optional[String]`
@@ -1031,23 +1139,23 @@ OS dependent If undef: install rabbitmqadmin via archive, otherwise via package
Default value: `undef`
-##### `archive_options`
+##### `archive_options`
Data type: `Array`
Extra options to Archive resource to download rabbitmqadmin file
-Default value: []
+Default value: `[]`
-##### `loopback_users`
+##### `loopback_users`
Data type: `Array`
This option configures a list of users to allow access via the loopback interfaces
-Default value: ['guest']
+Default value: `['guest']`
-##### `package_source`
+##### `package_source`
Data type: `Optional[String]`
@@ -1055,7 +1163,7 @@ Data type: `Optional[String]`
Default value: `undef`
-##### `package_provider`
+##### `package_provider`
Data type: `Optional[String]`
@@ -1063,7 +1171,7 @@ Data type: `Optional[String]`
Default value: `undef`
-##### `ssl_management_fail_if_no_peer_cert`
+##### `ssl_management_fail_if_no_peer_cert`
Data type: `Boolean`
@@ -1073,7 +1181,7 @@ Default value: `false`
## Resource types
-### rabbitmq_binding
+### `rabbitmq_binding`
Native type for managing rabbitmq bindings
@@ -1126,89 +1234,99 @@ rabbitmq_binding { 'myexchange@myqueue@myvhost':
The following properties are available in the `rabbitmq_binding` type.
-##### `ensure`
-
-Valid values: present, absent
+##### `arguments`
-The basic property that the resource should be in.
+binding arguments
-Default value: present
+Default value: `{}`
-##### `source`
+##### `destination`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
namevar
-source of binding
-
-##### `destination`
+destination of binding
-Valid values: %r{^\S+$}
+##### `destination_type`
-namevar
+Valid values: `%r{queue|exchange}`
-destination of binding
+binding destination_type
-##### `vhost`
+Default value: `queue`
-Valid values: %r{^\S+$}
+##### `ensure`
-namevar
+Valid values: `present`, `absent`
-vhost
+The basic property that the resource should be in.
-Default value: /
+Default value: `present`
##### `routing_key`
-Valid values: %r{^\S*$}
+Valid values: `%r{^\S*$}`
namevar
binding routing_key
-##### `destination_type`
+##### `source`
-Valid values: %r{queue|exchange}
+Valid values: `%r{^\S+$}`
-binding destination_type
+namevar
-Default value: queue
+source of binding
-##### `arguments`
+##### `vhost`
-binding arguments
+Valid values: `%r{^\S+$}`
+
+namevar
+
+vhost
-Default value: {}
+Default value: `/`
#### Parameters
The following parameters are available in the `rabbitmq_binding` type.
-##### `name`
+* [`name`](#-rabbitmq_binding--name)
+* [`password`](#-rabbitmq_binding--password)
+* [`provider`](#-rabbitmq_binding--provider)
+* [`user`](#-rabbitmq_binding--user)
+
+##### `name`
namevar
resource name, either source@destination@vhost or arbitrary name with params
-##### `user`
+##### `password`
-Valid values: %r{^\S+$}
+Valid values: `%r{\S+}`
-The user to use to connect to rabbitmq
+The password to use to connect to rabbitmq
-Default value: guest
+Default value: `guest`
-##### `password`
+##### `provider`
-Valid values: %r{\S+}
+The specific backend to use for this `rabbitmq_binding` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
-The password to use to connect to rabbitmq
+##### `user`
-Default value: guest
+Valid values: `%r{^\S+$}`
-### rabbitmq_cluster
+The user to use to connect to rabbitmq
+
+Default value: `guest`
+
+### `rabbitmq_cluster`
Native type for managing rabbitmq cluster
@@ -1238,35 +1356,52 @@ The following properties are available in the `rabbitmq_cluster` type.
##### `ensure`
-Valid values: present, absent
+Valid values: `present`, `absent`
The basic property that the resource should be in.
-Default value: present
+Default value: `present`
#### Parameters
The following parameters are available in the `rabbitmq_cluster` type.
-##### `name`
+* [`init_node`](#-rabbitmq_cluster--init_node)
+* [`local_node`](#-rabbitmq_cluster--local_node)
+* [`name`](#-rabbitmq_cluster--name)
+* [`node_disc_type`](#-rabbitmq_cluster--node_disc_type)
+* [`provider`](#-rabbitmq_cluster--provider)
+
+##### `init_node`
+
+Name of which cluster node to join.
+
+##### `local_node`
+
+Name of the local node
+
+Default value: `undef`
+
+##### `name`
namevar
The cluster name
-##### `init_node`
+##### `node_disc_type`
-Name of which cluster node to join.
+Valid values: `%r{disc|ram}`
-##### `node_disc_type`
+Storage type of node, default disc.
-Valid values: %r{disc|ram}
+Default value: `disc`
-Storage type of node, default disc.
+##### `provider`
-Default value: disc
+The specific backend to use for this `rabbitmq_cluster` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
-### rabbitmq_erlang_cookie
+### `rabbitmq_erlang_cookie`
Type to manage the rabbitmq erlang cookie securely
@@ -1284,7 +1419,7 @@ The following properties are available in the `rabbitmq_erlang_cookie` type.
##### `content`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
Content of cookie
@@ -1292,43 +1427,50 @@ Content of cookie
The following parameters are available in the `rabbitmq_erlang_cookie` type.
-##### `path`
-
+* [`force`](#-rabbitmq_erlang_cookie--force)
+* [`path`](#-rabbitmq_erlang_cookie--path)
+* [`provider`](#-rabbitmq_erlang_cookie--provider)
+* [`rabbitmq_group`](#-rabbitmq_erlang_cookie--rabbitmq_group)
+* [`rabbitmq_home`](#-rabbitmq_erlang_cookie--rabbitmq_home)
+* [`rabbitmq_user`](#-rabbitmq_erlang_cookie--rabbitmq_user)
+* [`service_name`](#-rabbitmq_erlang_cookie--service_name)
-
-##### `force`
+##### `force`
Valid values: `true`, `false`
-
Default value: `false`
-##### `rabbitmq_user`
+##### `path`
+##### `provider`
-Default value: rabbitmq
+The specific backend to use for this `rabbitmq_erlang_cookie` resource. You will seldom need to specify this --- Puppet
+will usually discover the appropriate provider for your platform.
-##### `rabbitmq_group`
+##### `rabbitmq_group`
+Default value: `rabbitmq`
-Default value: rabbitmq
+##### `rabbitmq_home`
-##### `rabbitmq_home`
+Default value: `/var/lib/rabbitmq`
+##### `rabbitmq_user`
-Default value: /var/lib/rabbitmq
-##### `service_name`
+Default value: `rabbitmq`
-Valid values: %r{^\S+$}
+##### `service_name`
+Valid values: `%r{^\S+$}`
-### rabbitmq_exchange
+### `rabbitmq_exchange`
Native type for managing rabbitmq exchanges
@@ -1357,77 +1499,92 @@ The following properties are available in the `rabbitmq_exchange` type.
##### `ensure`
-Valid values: present, absent
+Valid values: `present`, `absent`
The basic property that the resource should be in.
-Default value: present
+Default value: `present`
#### Parameters
The following parameters are available in the `rabbitmq_exchange` type.
-##### `name`
+* [`arguments`](#-rabbitmq_exchange--arguments)
+* [`auto_delete`](#-rabbitmq_exchange--auto_delete)
+* [`durable`](#-rabbitmq_exchange--durable)
+* [`internal`](#-rabbitmq_exchange--internal)
+* [`name`](#-rabbitmq_exchange--name)
+* [`password`](#-rabbitmq_exchange--password)
+* [`provider`](#-rabbitmq_exchange--provider)
+* [`type`](#-rabbitmq_exchange--type)
+* [`user`](#-rabbitmq_exchange--user)
-Valid values: %r{^\S*@\S+$}
+##### `arguments`
-namevar
+Exchange arguments example: {"hash-header": "message-distribution-hash"}
-Name of exchange
+Default value: `{}`
-##### `type`
+##### `auto_delete`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
-Exchange type to be set *on creation*
+Exchange auto delete option to be set *on creation*
+
+Default value: `false`
-##### `durable`
+##### `durable`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
Exchange durability to be set *on creation*
Default value: `false`
-##### `auto_delete`
+##### `internal`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
-Exchange auto delete option to be set *on creation*
+Exchange internal option to be set *on creation*
Default value: `false`
-##### `internal`
+##### `name`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S*@\S+$}`
-Exchange internal option to be set *on creation*
+namevar
-Default value: `false`
+Name of exchange
-##### `arguments`
+##### `password`
-Exchange arguments example: {"hash-header": "message-distribution-hash"}
+Valid values: `%r{\S+}`
-Default value: {}
+The password to use to connect to rabbitmq
-##### `user`
+Default value: `guest`
-Valid values: %r{^\S+$}
+##### `provider`
-The user to use to connect to rabbitmq
+The specific backend to use for this `rabbitmq_exchange` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
-Default value: guest
+##### `type`
-##### `password`
+Valid values: `%r{^\S+$}`
-Valid values: %r{\S+}
+Exchange type to be set *on creation*
-The password to use to connect to rabbitmq
+##### `user`
+
+Valid values: `%r{^\S+$}`
+
+The user to use to connect to rabbitmq
-Default value: guest
+Default value: `guest`
-### rabbitmq_parameter
+### `rabbitmq_parameter`
Type for managing rabbitmq parameters
@@ -1470,17 +1627,17 @@ rabbitmq_parameter { 'documentumShovelNoMunging@/':
The following properties are available in the `rabbitmq_parameter` type.
-##### `ensure`
+##### `component_name`
-Valid values: present, absent
+The component_name to use when setting parameter, eg: shovel or federation
-The basic property that the resource should be in.
+##### `ensure`
-Default value: present
+Valid values: `present`, `absent`
-##### `component_name`
+The basic property that the resource should be in.
-The component_name to use when setting parameter, eg: shovel or federation
+Default value: `present`
##### `value`
@@ -1490,15 +1647,11 @@ A hash of values to use with the component name you are setting
The following parameters are available in the `rabbitmq_parameter` type.
-##### `name`
+* [`autoconvert`](#-rabbitmq_parameter--autoconvert)
+* [`name`](#-rabbitmq_parameter--name)
+* [`provider`](#-rabbitmq_parameter--provider)
-Valid values: %r{^\S+@\S+$}
-
-namevar
-
-combination of name@vhost to set parameter for
-
-##### `autoconvert`
+##### `autoconvert`
Valid values: `true`, `false`
@@ -1506,7 +1659,20 @@ whether numeric strings from `value` should be converted to int automatically
Default value: `true`
-### rabbitmq_plugin
+##### `name`
+
+Valid values: `%r{^\S+@\S+$}`
+
+namevar
+
+combination of name@vhost to set parameter for
+
+##### `provider`
+
+The specific backend to use for this `rabbitmq_parameter` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
+
+### `rabbitmq_plugin`
manages rabbitmq plugins
@@ -1541,39 +1707,49 @@ The following properties are available in the `rabbitmq_plugin` type.
##### `ensure`
-Valid values: present, absent
+Valid values: `present`, `absent`
The basic property that the resource should be in.
-Default value: present
+Default value: `present`
#### Parameters
The following parameters are available in the `rabbitmq_plugin` type.
-##### `name`
+* [`mode`](#-rabbitmq_plugin--mode)
+* [`name`](#-rabbitmq_plugin--name)
+* [`provider`](#-rabbitmq_plugin--provider)
+* [`umask`](#-rabbitmq_plugin--umask)
-Valid values: %r{^\S+$}
+##### `mode`
-namevar
+Valid values: `online`, `offline`, `best`
-The name of the plugin to enable
+Define how the plugin should be enabled regarding node status.
-##### `mode`
+Default value: `best`
-Valid values: online, offline, best
+##### `name`
-Define how the plugin should be enabled regarding node status.
+Valid values: `%r{^\S+$}`
+
+namevar
+
+The name of the plugin to enable
-Default value: best
+##### `provider`
-##### `umask`
+The specific backend to use for this `rabbitmq_plugin` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
+
+##### `umask`
Sets the octal umask to be used while creating this resource
-Default value: 0022
+Default value: `0022`
-### rabbitmq_policy
+### `rabbitmq_policy`
Type for managing rabbitmq policies
@@ -1597,51 +1773,59 @@ rabbitmq_policy { 'ha-all@myvhost':
The following properties are available in the `rabbitmq_policy` type.
-##### `ensure`
+##### `applyto`
-Valid values: present, absent
+Valid values: `all`, `exchanges`, `queues`
-The basic property that the resource should be in.
+policy apply to
-Default value: present
+Default value: `all`
-##### `pattern`
+##### `definition`
-policy pattern
+policy definition
-##### `applyto`
+##### `ensure`
-Valid values: all, exchanges, queues
+Valid values: `present`, `absent`
-policy apply to
+The basic property that the resource should be in.
-Default value: all
+Default value: `present`
-##### `definition`
+##### `pattern`
-policy definition
+policy pattern
##### `priority`
-Valid values: %r{^\d+$}
+Valid values: `%r{^\d+$}`
policy priority
-Default value: 0
+Default value: `0`
#### Parameters
The following parameters are available in the `rabbitmq_policy` type.
-##### `name`
+* [`name`](#-rabbitmq_policy--name)
+* [`provider`](#-rabbitmq_policy--provider)
+
+##### `name`
-Valid values: %r{^\S+@\S+$}
+Valid values: `%r{^\S+@\S+$}`
namevar
combination of policy@vhost to create policy for
-### rabbitmq_queue
+##### `provider`
+
+The specific backend to use for this `rabbitmq_policy` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
+
+### `rabbitmq_queue`
Native type for managing rabbitmq queue
@@ -1669,63 +1853,76 @@ The following properties are available in the `rabbitmq_queue` type.
##### `ensure`
-Valid values: present, absent
+Valid values: `present`, `absent`
The basic property that the resource should be in.
-Default value: present
+Default value: `present`
#### Parameters
The following parameters are available in the `rabbitmq_queue` type.
-##### `name`
+* [`arguments`](#-rabbitmq_queue--arguments)
+* [`auto_delete`](#-rabbitmq_queue--auto_delete)
+* [`durable`](#-rabbitmq_queue--durable)
+* [`name`](#-rabbitmq_queue--name)
+* [`password`](#-rabbitmq_queue--password)
+* [`provider`](#-rabbitmq_queue--provider)
+* [`user`](#-rabbitmq_queue--user)
-Valid values: %r{^\S*@\S+$}
+##### `arguments`
-namevar
+Queue arguments example: {x-message-ttl => 60, x-expires => 10}
-Name of queue
+Default value: `{}`
+
+##### `auto_delete`
-##### `durable`
+Valid values: `%r{true|false}`
-Valid values: %r{true|false}
+Queue will be auto deleted
+
+Default value: `false`
+
+##### `durable`
+
+Valid values: `%r{true|false}`
Queue is durable
Default value: `true`
-##### `auto_delete`
-
-Valid values: %r{true|false}
+##### `name`
-Queue will be auto deleted
+Valid values: `%r{^\S*@\S+$}`
-Default value: `false`
+namevar
-##### `arguments`
+Name of queue
-Queue arguments example: {x-message-ttl => 60, x-expires => 10}
+##### `password`
-Default value: {}
+Valid values: `%r{\S+}`
-##### `user`
+The password to use to connect to rabbitmq
-Valid values: %r{^\S+$}
+Default value: `guest`
-The user to use to connect to rabbitmq
+##### `provider`
-Default value: guest
+The specific backend to use for this `rabbitmq_queue` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
-##### `password`
+##### `user`
-Valid values: %r{\S+}
+Valid values: `%r{^\S+$}`
-The password to use to connect to rabbitmq
+The user to use to connect to rabbitmq
-Default value: guest
+Default value: `guest`
-### rabbitmq_user
+### `rabbitmq_user`
Native type for managing rabbitmq users
@@ -1761,45 +1958,53 @@ rabbitmq_user { 'dan':
The following properties are available in the `rabbitmq_user` type.
-##### `ensure`
+##### `admin`
-Valid values: present, absent
+Valid values: `%r{true|false}`
-The basic property that the resource should be in.
+whether or not user should be an admin
-Default value: present
+Default value: `false`
-##### `password`
+##### `ensure`
-User password to be set *on creation* and validated each run
+Valid values: `present`, `absent`
-##### `admin`
+The basic property that the resource should be in.
-Valid values: %r{true|false}
+Default value: `present`
-whether or not user should be an admin
+##### `password`
-Default value: false
+User password to be set *on creation* and validated each run
##### `tags`
additional tags for the user
-Default value: []
+Default value: `[]`
#### Parameters
The following parameters are available in the `rabbitmq_user` type.
-##### `name`
+* [`name`](#-rabbitmq_user--name)
+* [`provider`](#-rabbitmq_user--provider)
+
+##### `name`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
namevar
Name of user
-### rabbitmq_user_permissions
+##### `provider`
+
+The specific backend to use for this `rabbitmq_user` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
+
+### `rabbitmq_user_permissions`
Type for managing rabbitmq user permissions
@@ -1819,17 +2024,17 @@ rabbitmq_user_permissions { 'dan@myvhost':
The following properties are available in the `rabbitmq_user_permissions` type.
-##### `ensure`
+##### `configure_permission`
-Valid values: present, absent
+regexp representing configuration permissions
-The basic property that the resource should be in.
+##### `ensure`
-Default value: present
+Valid values: `present`, `absent`
-##### `configure_permission`
+The basic property that the resource should be in.
-regexp representing configuration permissions
+Default value: `present`
##### `read_permission`
@@ -1843,15 +2048,23 @@ regexp representing write permissions
The following parameters are available in the `rabbitmq_user_permissions` type.
-##### `name`
+* [`name`](#-rabbitmq_user_permissions--name)
+* [`provider`](#-rabbitmq_user_permissions--provider)
+
+##### `name`
-Valid values: %r{^\S+@\S+$}
+Valid values: `%r{^\S+@\S+$}`
namevar
combination of user@vhost to grant privileges to
-### rabbitmq_vhost
+##### `provider`
+
+The specific backend to use for this `rabbitmq_user_permissions` resource. You will seldom need to specify this ---
+Puppet will usually discover the appropriate provider for your platform.
+
+### `rabbitmq_vhost`
Native type for managing rabbitmq vhosts
@@ -1877,21 +2090,29 @@ The following properties are available in the `rabbitmq_vhost` type.
##### `ensure`
-Valid values: present, absent
+Valid values: `present`, `absent`
The basic property that the resource should be in.
-Default value: present
+Default value: `present`
#### Parameters
The following parameters are available in the `rabbitmq_vhost` type.
-##### `name`
+* [`name`](#-rabbitmq_vhost--name)
+* [`provider`](#-rabbitmq_vhost--provider)
+
+##### `name`
-Valid values: %r{^\S+$}
+Valid values: `%r{^\S+$}`
namevar
The name of the vhost to add
+##### `provider`
+
+The specific backend to use for this `rabbitmq_vhost` resource. You will seldom need to specify this --- Puppet will
+usually discover the appropriate provider for your platform.
+
diff --git a/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb b/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb
index a64677e9e..b57acd3d6 100644
--- a/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb
+++ b/lib/puppet/provider/rabbitmq_cluster/rabbitmqctl.rb
@@ -15,8 +15,9 @@ def create
storage_type = @resource[:node_disc_type].to_s
init_node = @resource[:init_node].to_s.gsub(%r{^.*@}, '')
+ local_node = @resource[:local_node].to_s.gsub(%r{^.*@}, '')
- if [Facter.value(:hostname), Facter.value(:fqdn)].include? init_node
+ if local_node == init_node || [Facter.value(:hostname), Facter.value(:fqdn)].include?(init_node)
return rabbitmqctl('set_cluster_name', @resource[:name]) unless cluster_name == resource[:name].to_s
else
rabbitmqctl('stop_app')
diff --git a/lib/puppet/type/rabbitmq_cluster.rb b/lib/puppet/type/rabbitmq_cluster.rb
index b215cf023..3ba0db217 100644
--- a/lib/puppet/type/rabbitmq_cluster.rb
+++ b/lib/puppet/type/rabbitmq_cluster.rb
@@ -40,6 +40,11 @@
end
end
+ newparam(:local_node) do
+ desc 'Name of the local node'
+ defaultto(:undef)
+ end
+
newparam(:node_disc_type) do
desc 'Storage type of node, default disc.'
newvalues(%r{disc|ram})
diff --git a/manifests/init.pp b/manifests/init.pp
index 3048273e3..741acbb17 100644
--- a/manifests/init.pp
+++ b/manifests/init.pp
@@ -578,6 +578,7 @@
$cluster['name'] => {
'init_node' => $cluster['init_node'],
'node_disc_type' => $cluster_node_type,
+ 'local_node' => $cluster['local_node'],
}
})
}
diff --git a/spec/acceptance/clustering_spec.rb b/spec/acceptance/clustering_spec.rb
index bf0452c46..ca229e4dc 100644
--- a/spec/acceptance/clustering_spec.rb
+++ b/spec/acceptance/clustering_spec.rb
@@ -74,4 +74,25 @@ class { 'erlang': epel_enable => true}
end
end
end
+
+ context 'rabbitmq::cluster[:local_node] = foobar' do
+ it 'runs successfully' do
+ pp = <<-EOS
+ class { 'rabbitmq':
+ cluster => { 'name' => 'rabbit_cluster', 'init_node' => 'foobar', 'local_node' => 'foobar' },
+ config_cluster => true,
+ cluster_nodes => ['foobar', 'rabbit2'],
+ cluster_node_type => 'ram',
+ environment_variables => { 'RABBITMQ_USE_LONGNAME' => true, 'NODENAME' => 'rabbit@foobar' },
+ erlang_cookie => 'TESTCOOKIE',
+ }
+ if $facts['os']['family'] == 'RedHat' {
+ class { 'erlang': epel_enable => true}
+ Class['erlang'] -> Class['rabbitmq']
+ }
+ EOS
+
+ apply_manifest(pp, expect_failures: true)
+ end
+ end
end
diff --git a/spec/unit/puppet/type/rabbitmq_cluster_spec.rb b/spec/unit/puppet/type/rabbitmq_cluster_spec.rb
index e71b283a7..ab404e062 100644
--- a/spec/unit/puppet/type/rabbitmq_cluster_spec.rb
+++ b/spec/unit/puppet/type/rabbitmq_cluster_spec.rb
@@ -22,6 +22,16 @@
expect(rabbitmq_cluster[:init_node]).to eq('host1')
end
+ it 'check if local_node set to host1' do
+ rabbitmq_cluster[:local_node] = 'host1'
+ expect(rabbitmq_cluster[:local_node]).to eq('host1')
+ end
+
+ it 'local_node not set should default to undef' do
+ rabbitmq_cluster[:init_node] = 'host1'
+ expect(rabbitmq_cluster[:local_node]).to eq(:undef)
+ end
+
it 'try to set node_disc_type to ram' do
rabbitmq_cluster[:node_disc_type] = 'ram'
expect(rabbitmq_cluster[:node_disc_type]).to eq('ram')