Skip to content

Commit 6a5c3c1

Browse files
committed
Issue 1029 - add quorum queue auto-reconciliation parameter support. Default undef all of them so it does nothing unless you enable.
1 parent 82010fc commit 6a5c3c1

File tree

3 files changed

+126
-88
lines changed

3 files changed

+126
-88
lines changed

manifests/config.pp

Lines changed: 93 additions & 88 deletions
Original file line numberDiff line numberDiff line change
@@ -3,94 +3,99 @@
33
#
44
# @api private
55
class rabbitmq::config {
6-
$admin_enable = $rabbitmq::admin_enable
7-
$management_enable = $rabbitmq::management_enable
8-
$use_config_file_for_plugins = $rabbitmq::use_config_file_for_plugins
9-
$plugins = $rabbitmq::plugins
10-
$cluster_node_type = $rabbitmq::cluster_node_type
11-
$cluster_nodes = $rabbitmq::cluster_nodes
12-
$config = $rabbitmq::config
13-
$config_cluster = $rabbitmq::config_cluster
14-
$config_cowboy_opts = $rabbitmq::config_cowboy_opts
15-
$config_path = $rabbitmq::config_path
16-
$config_ranch = $rabbitmq::config_ranch
17-
$config_stomp = $rabbitmq::config_stomp
18-
$stomp_ensure = $rabbitmq::stomp_ensure
19-
$config_shovel = $rabbitmq::config_shovel
20-
$config_shovel_statics = $rabbitmq::config_shovel_statics
21-
$default_user = $rabbitmq::default_user
22-
$default_pass = $rabbitmq::default_pass
23-
$env_config = $rabbitmq::env_config
24-
$env_config_path = $rabbitmq::env_config_path
25-
$erlang_cookie = $rabbitmq::erlang_cookie
26-
$interface = $rabbitmq::interface
27-
$management_port = $rabbitmq::management_port
28-
$management_ssl = $rabbitmq::management_ssl
29-
$management_hostname = $rabbitmq::management_hostname
30-
$node_ip_address = $rabbitmq::node_ip_address
31-
$rabbitmq_user = $rabbitmq::rabbitmq_user
32-
$rabbitmq_group = $rabbitmq::rabbitmq_group
33-
$rabbitmq_home = $rabbitmq::rabbitmq_home
34-
$port = $rabbitmq::port
35-
$tcp_keepalive = $rabbitmq::tcp_keepalive
36-
$tcp_backlog = $rabbitmq::tcp_backlog
37-
$tcp_sndbuf = $rabbitmq::tcp_sndbuf
38-
$tcp_recbuf = $rabbitmq::tcp_recbuf
39-
$heartbeat = $rabbitmq::heartbeat
40-
$service_name = $rabbitmq::service_name
41-
$ssl = $rabbitmq::ssl
42-
$ssl_only = $rabbitmq::ssl_only
43-
$ssl_cacert = $rabbitmq::ssl_cacert
44-
$ssl_cert = $rabbitmq::ssl_cert
45-
$ssl_key = $rabbitmq::ssl_key
46-
$ssl_depth = $rabbitmq::ssl_depth
47-
$ssl_cert_password = $rabbitmq::ssl_cert_password
48-
$ssl_port = $rabbitmq::ssl_port
49-
$ssl_interface = $rabbitmq::ssl_interface
50-
$ssl_management_port = $rabbitmq::ssl_management_port
51-
$ssl_management_cacert = $rabbitmq::ssl_management_cacert
52-
$ssl_management_cert = $rabbitmq::ssl_management_cert
53-
$ssl_management_key = $rabbitmq::ssl_management_key
54-
$ssl_management_verify = $rabbitmq::ssl_management_verify
55-
$ssl_management_fail_if_no_peer_cert = $rabbitmq::ssl_management_fail_if_no_peer_cert
56-
$ssl_stomp_port = $rabbitmq::ssl_stomp_port
57-
$ssl_verify = $rabbitmq::ssl_verify
58-
$ssl_fail_if_no_peer_cert = $rabbitmq::ssl_fail_if_no_peer_cert
59-
$ssl_client_renegotiation = $rabbitmq::ssl_client_renegotiation
60-
$ssl_secure_renegotiate = $rabbitmq::ssl_secure_renegotiate
61-
$ssl_reuse_sessions = $rabbitmq::ssl_reuse_sessions
62-
$ssl_honor_cipher_order = $rabbitmq::ssl_honor_cipher_order
63-
$ssl_dhfile = $rabbitmq::ssl_dhfile
64-
$ssl_versions = $rabbitmq::ssl_versions
65-
$ssl_ciphers = $rabbitmq::ssl_ciphers
66-
$ssl_crl_check = $rabbitmq::ssl_crl_check
67-
$ssl_crl_cache_hash_dir = $rabbitmq::ssl_crl_cache_hash_dir
68-
$ssl_crl_cache_http_timeout = $rabbitmq::ssl_crl_cache_http_timeout
69-
$stomp_port = $rabbitmq::stomp_port
70-
$stomp_ssl_only = $rabbitmq::stomp_ssl_only
71-
$ldap_auth = $rabbitmq::ldap_auth
72-
$ldap_server = $rabbitmq::ldap_server
73-
$ldap_user_dn_pattern = $rabbitmq::ldap_user_dn_pattern
74-
$ldap_other_bind = $rabbitmq::ldap_other_bind
75-
$ldap_use_ssl = $rabbitmq::ldap_use_ssl
76-
$ldap_port = $rabbitmq::ldap_port
77-
$ldap_log = $rabbitmq::ldap_log
78-
$ldap_config_variables = $rabbitmq::ldap_config_variables
79-
$wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change
80-
$config_variables = $rabbitmq::config_variables
81-
$config_kernel_variables = $rabbitmq::config_kernel_variables
82-
$config_management_variables = $rabbitmq::config_management_variables
83-
$config_additional_variables = $rabbitmq::config_additional_variables
84-
$auth_backends = $rabbitmq::auth_backends
85-
$cluster_partition_handling = $rabbitmq::cluster_partition_handling
86-
$file_limit = $rabbitmq::file_limit
87-
$oom_score_adj = $rabbitmq::oom_score_adj
88-
$collect_statistics_interval = $rabbitmq::collect_statistics_interval
89-
$ipv6 = $rabbitmq::ipv6
90-
$inetrc_config = $rabbitmq::inetrc_config
91-
$inetrc_config_path = $rabbitmq::inetrc_config_path
92-
$ssl_erl_dist = $rabbitmq::ssl_erl_dist
93-
$loopback_users = $rabbitmq::loopback_users
6+
$admin_enable = $rabbitmq::admin_enable
7+
$management_enable = $rabbitmq::management_enable
8+
$use_config_file_for_plugins = $rabbitmq::use_config_file_for_plugins
9+
$plugins = $rabbitmq::plugins
10+
$cluster_node_type = $rabbitmq::cluster_node_type
11+
$cluster_nodes = $rabbitmq::cluster_nodes
12+
$config = $rabbitmq::config
13+
$config_cluster = $rabbitmq::config_cluster
14+
$config_cowboy_opts = $rabbitmq::config_cowboy_opts
15+
$config_path = $rabbitmq::config_path
16+
$config_ranch = $rabbitmq::config_ranch
17+
$config_stomp = $rabbitmq::config_stomp
18+
$stomp_ensure = $rabbitmq::stomp_ensure
19+
$config_shovel = $rabbitmq::config_shovel
20+
$config_shovel_statics = $rabbitmq::config_shovel_statics
21+
$default_user = $rabbitmq::default_user
22+
$default_pass = $rabbitmq::default_pass
23+
$env_config = $rabbitmq::env_config
24+
$env_config_path = $rabbitmq::env_config_path
25+
$erlang_cookie = $rabbitmq::erlang_cookie
26+
$interface = $rabbitmq::interface
27+
$management_port = $rabbitmq::management_port
28+
$management_ssl = $rabbitmq::management_ssl
29+
$management_hostname = $rabbitmq::management_hostname
30+
$node_ip_address = $rabbitmq::node_ip_address
31+
$quorum_membership_reconciliation_enabled = $rabbitmq::quorum_membership_reconciliation_enabled
32+
$quorum_membership_reconciliation_auto_remove = $rabbitmq::quorum_membership_reconciliation_auto_remove
33+
$quorum_membership_reconciliation_interval = $rabbitmq::quorum_membership_reconciliation_interval
34+
$quorum_membership_reconciliation_trigger_interval = $rabbitmq::quorum_membership_reconciliation_trigger_interval
35+
$quorum_membership_reconciliation_target_group_size = $rabbitmq::quorum_membership_reconciliation_target_group_size
36+
$rabbitmq_user = $rabbitmq::rabbitmq_user
37+
$rabbitmq_group = $rabbitmq::rabbitmq_group
38+
$rabbitmq_home = $rabbitmq::rabbitmq_home
39+
$port = $rabbitmq::port
40+
$tcp_keepalive = $rabbitmq::tcp_keepalive
41+
$tcp_backlog = $rabbitmq::tcp_backlog
42+
$tcp_sndbuf = $rabbitmq::tcp_sndbuf
43+
$tcp_recbuf = $rabbitmq::tcp_recbuf
44+
$heartbeat = $rabbitmq::heartbeat
45+
$service_name = $rabbitmq::service_name
46+
$ssl = $rabbitmq::ssl
47+
$ssl_only = $rabbitmq::ssl_only
48+
$ssl_cacert = $rabbitmq::ssl_cacert
49+
$ssl_cert = $rabbitmq::ssl_cert
50+
$ssl_key = $rabbitmq::ssl_key
51+
$ssl_depth = $rabbitmq::ssl_depth
52+
$ssl_cert_password = $rabbitmq::ssl_cert_password
53+
$ssl_port = $rabbitmq::ssl_port
54+
$ssl_interface = $rabbitmq::ssl_interface
55+
$ssl_management_port = $rabbitmq::ssl_management_port
56+
$ssl_management_cacert = $rabbitmq::ssl_management_cacert
57+
$ssl_management_cert = $rabbitmq::ssl_management_cert
58+
$ssl_management_key = $rabbitmq::ssl_management_key
59+
$ssl_management_verify = $rabbitmq::ssl_management_verify
60+
$ssl_management_fail_if_no_peer_cert = $rabbitmq::ssl_management_fail_if_no_peer_cert
61+
$ssl_stomp_port = $rabbitmq::ssl_stomp_port
62+
$ssl_verify = $rabbitmq::ssl_verify
63+
$ssl_fail_if_no_peer_cert = $rabbitmq::ssl_fail_if_no_peer_cert
64+
$ssl_client_renegotiation = $rabbitmq::ssl_client_renegotiation
65+
$ssl_secure_renegotiate = $rabbitmq::ssl_secure_renegotiate
66+
$ssl_reuse_sessions = $rabbitmq::ssl_reuse_sessions
67+
$ssl_honor_cipher_order = $rabbitmq::ssl_honor_cipher_order
68+
$ssl_dhfile = $rabbitmq::ssl_dhfile
69+
$ssl_versions = $rabbitmq::ssl_versions
70+
$ssl_ciphers = $rabbitmq::ssl_ciphers
71+
$ssl_crl_check = $rabbitmq::ssl_crl_check
72+
$ssl_crl_cache_hash_dir = $rabbitmq::ssl_crl_cache_hash_dir
73+
$ssl_crl_cache_http_timeout = $rabbitmq::ssl_crl_cache_http_timeout
74+
$stomp_port = $rabbitmq::stomp_port
75+
$stomp_ssl_only = $rabbitmq::stomp_ssl_only
76+
$ldap_auth = $rabbitmq::ldap_auth
77+
$ldap_server = $rabbitmq::ldap_server
78+
$ldap_user_dn_pattern = $rabbitmq::ldap_user_dn_pattern
79+
$ldap_other_bind = $rabbitmq::ldap_other_bind
80+
$ldap_use_ssl = $rabbitmq::ldap_use_ssl
81+
$ldap_port = $rabbitmq::ldap_port
82+
$ldap_log = $rabbitmq::ldap_log
83+
$ldap_config_variables = $rabbitmq::ldap_config_variables
84+
$wipe_db_on_cookie_change = $rabbitmq::wipe_db_on_cookie_change
85+
$config_variables = $rabbitmq::config_variables
86+
$config_kernel_variables = $rabbitmq::config_kernel_variables
87+
$config_management_variables = $rabbitmq::config_management_variables
88+
$config_additional_variables = $rabbitmq::config_additional_variables
89+
$auth_backends = $rabbitmq::auth_backends
90+
$cluster_partition_handling = $rabbitmq::cluster_partition_handling
91+
$file_limit = $rabbitmq::file_limit
92+
$oom_score_adj = $rabbitmq::oom_score_adj
93+
$collect_statistics_interval = $rabbitmq::collect_statistics_interval
94+
$ipv6 = $rabbitmq::ipv6
95+
$inetrc_config = $rabbitmq::inetrc_config
96+
$inetrc_config_path = $rabbitmq::inetrc_config_path
97+
$ssl_erl_dist = $rabbitmq::ssl_erl_dist
98+
$loopback_users = $rabbitmq::loopback_users
9499

95100
if $ssl_only {
96101
$default_ssl_env_variables = {}

manifests/init.pp

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -240,6 +240,19 @@
240240
# The RabbitMQ port.
241241
# @param python_package
242242
# Name of the package required by rabbitmqadmin.
243+
# @param quorum_membership_reconciliation_enabled
244+
# Boolean - Enables or disables continuous membership reconciliation. Defaults Omitted
245+
# @param quorum_membership_reconciliation_auto_remove
246+
# Boolean - Enables or disables automatic removal of member nodes that are no longer part of the cluster,
247+
# but still a member of the quorum queue. Defaults Omitted
248+
# @param quorum_membership_reconciliation_interval
249+
# Integer - The default evaluation interval in milliseconds. Defaults Omitted
250+
# @param quorum_membership_reconciliation_trigger_interval
251+
# Integer - The reconciliation delay in milliseconds, used when a trigger event occurs,
252+
# for example, a node is added or removed from the cluster or an applicable policy changes.
253+
# This delay will be applied only once, then the regular interval will be used again. Default Omitted
254+
# @param quorum_membership_reconciliation_target_group_size
255+
# Integer - Default Omitted
243256
# @param repos_ensure
244257
# Ensure that a repo with the official (and newer) RabbitMQ package is configured, along with its signing key.
245258
# Defaults to false (use system packages). This does not ensure that soft dependencies are present.
@@ -381,6 +394,11 @@
381394
Optional[Variant[Numeric, String[1]]] $package_apt_pin = undef,
382395
String $package_ensure = 'installed',
383396
Optional[String] $package_gpg_key = undef,
397+
Optional[Boolean] $quorum_membership_reconciliation_enabled = undef,
398+
Optional[Boolean] $quorum_membership_reconciliation_auto_remove = undef,
399+
Optional[Integer] $quorum_membership_reconciliation_interval = undef,
400+
Optional[Integer] $quorum_membership_reconciliation_trigger_interval = undef,
401+
Optional[Integer] $quorum_membership_reconciliation_target_group_size = undef,
384402
Optional[String] $repo_gpg_key = undef,
385403
Variant[String, Array] $package_name = 'rabbitmq',
386404
Optional[String] $package_source = undef,

templates/rabbitmq.config.epp

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,21 @@
2525
{cluster_nodes, {[], <%= $rabbitmq::config::cluster_node_type %>}},
2626
<%- } -%>
2727
{cluster_partition_handling, <%= $rabbitmq::config::cluster_partition_handling %>},
28+
<% } -%>
29+
<% if $rabbitmq::config::quorum_membership_reconciliation_enabled {-%>
30+
{quorum_membership_reconciliation_enabled, <%= $rabbitmq::config::quorum_membership_reconciliation_enabled %>},
31+
<% } -%>
32+
<% if $rabbitmq::config::quorum_membership_reconciliation_auto_remove {-%>
33+
{quorum_membership_reconciliation_auto_remove, <%= $rabbitmq::config::quorum_membership_reconciliation_auto_remove %>},
34+
<% } -%>
35+
<% if $rabbitmq::config::quorum_membership_reconciliation_interval {-%>
36+
{quorum_membership_reconciliation_interval, <%= $rabbitmq::config::quorum_membership_reconciliation_interval %>},
37+
<% } -%>
38+
<% if $rabbitmq::config::quorum_membership_reconciliation_trigger_interval {-%>
39+
{quorum_membership_reconciliation_trigger_interval, <%= $rabbitmq::config::quorum_membership_reconciliation_trigger_interval %>},
40+
<% } -%>
41+
<% if $rabbitmq::config::quorum_membership_reconciliation_target_group_size {-%>
42+
{quorum_membership_reconciliation_target_group_size, <%= $rabbitmq::config::quorum_membership_reconciliation_target_group_size %>},
2843
<% } -%>
2944
{tcp_listen_options, [
3045
<%- unless $rabbitmq::config::config_ranch {-%>

0 commit comments

Comments
 (0)