From 48948ddcaf9eda9021ae90d7b23b61cb43091041 Mon Sep 17 00:00:00 2001 From: Takashi Kajinami Date: Fri, 15 Sep 2023 10:51:31 +0900 Subject: [PATCH] RabbitMQ: Add support for quorum queue options Depends-on: https://review.opendev.org/894866 Change-Id: I479352346602ba0f0017fd56d359b0664892d6fb --- manifests/init.pp | 26 +++++++++++++++++++ .../rabbit-quorum-queue-dc4223310cd63d7d.yaml | 4 +++ spec/classes/neutron_init_spec.rb | 4 +++ 3 files changed, 34 insertions(+) create mode 100644 releasenotes/notes/rabbit-quorum-queue-dc4223310cd63d7d.yaml diff --git a/manifests/init.pp b/manifests/init.pp index e05d445a7..7d307c0f9 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -133,6 +133,24 @@ # will be run through a green thread. # Defaults to $facts['os_service_default'] # +# [*rabbit_quorum_queue*] +# (Optional) Use quorum queues in RabbitMQ. +# Defaults to $facts['os_service_default'] +# +# [*rabbit_quorum_delivery_limit*] +# (Optional) Each time a message is rdelivered to a consumer, a counter is +# incremented. Once the redelivery count exceeds the delivery limit +# the message gets dropped or dead-lettered. +# Defaults to $facts['os_service_default'] +# +# [*rabbit_quorum_max_memory_length*] +# (Optional) Limit the number of messages in the quorum queue. +# Defaults to $facts['os_service_default'] +# +# [*rabbit_quorum_max_memory_bytes*] +# (Optional) Limit the number of memory bytes used by the quorum queue. +# Defaults to $facts['os_service_default'] +# # [*rabbit_use_ssl*] # (optional) Connect over SSL for RabbitMQ # Defaults to $facts['os_service_default'] @@ -337,6 +355,10 @@ class neutron ( $rabbit_heartbeat_timeout_threshold = $facts['os_service_default'], $rabbit_heartbeat_rate = $facts['os_service_default'], $rabbit_heartbeat_in_pthread = $facts['os_service_default'], + $rabbit_quorum_queue = $facts['os_service_default'], + $rabbit_quorum_delivery_limit = $facts['os_service_default'], + $rabbit_quorum_max_memory_length = $facts['os_service_default'], + $rabbit_quorum_max_memory_bytes = $facts['os_service_default'], $rabbit_use_ssl = $facts['os_service_default'], $rabbit_transient_queues_ttl = $facts['os_service_default'], $amqp_durable_queues = $facts['os_service_default'], @@ -468,6 +490,10 @@ class neutron ( amqp_durable_queues => $amqp_durable_queues, rabbit_ha_queues => $rabbit_ha_queues, kombu_ssl_version => $kombu_ssl_version, + rabbit_quorum_queue => $rabbit_quorum_queue, + rabbit_quorum_delivery_limit => $rabbit_quorum_delivery_limit, + rabbit_quorum_max_memory_length => $rabbit_quorum_max_memory_length, + rabbit_quorum_max_memory_bytes => $rabbit_quorum_max_memory_bytes, } oslo::messaging::amqp { 'neutron_config': diff --git a/releasenotes/notes/rabbit-quorum-queue-dc4223310cd63d7d.yaml b/releasenotes/notes/rabbit-quorum-queue-dc4223310cd63d7d.yaml new file mode 100644 index 000000000..608000545 --- /dev/null +++ b/releasenotes/notes/rabbit-quorum-queue-dc4223310cd63d7d.yaml @@ -0,0 +1,4 @@ +--- +features: + - | + The ``neutron`` class now supports options for quorum queues in RabbitMQ. diff --git a/spec/classes/neutron_init_spec.rb b/spec/classes/neutron_init_spec.rb index 18c6a7fc0..bdfd56651 100644 --- a/spec/classes/neutron_init_spec.rb +++ b/spec/classes/neutron_init_spec.rb @@ -92,6 +92,10 @@ describe 'neutron' do :kombu_compression => '', :amqp_durable_queues => '', :rabbit_ha_queues => '', + :rabbit_quorum_queue => '', + :rabbit_quorum_delivery_limit => '', + :rabbit_quorum_max_memory_length => '', + :rabbit_quorum_max_memory_bytes => '', ) end