From 72025dc82c8de5cc5f06b263c470a22d0c015809 Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Fri, 20 Jun 2025 23:40:02 +0200 Subject: [PATCH] Add queue_manager and stream_fanout This patch adds two new parameters to the toplevel class: - rabbit_use_queue_manager - rabbit_stream_fanout that are already handled by the oslo::messaging::rabbit class, which makes it impossible to set using cloudkitty_config. Change-Id: Ie84427447506b57a3026c2ed0bc517f7aa38d4c8 --- manifests/init.pp | 12 ++++++++++++ ...e_manager-and-stream_fanout-9c2351547483e224.yaml | 5 +++++ spec/classes/cloudkitty_init_spec.rb | 6 ++++++ 3 files changed, 23 insertions(+) create mode 100644 releasenotes/notes/queue_manager-and-stream_fanout-9c2351547483e224.yaml diff --git a/manifests/init.pp b/manifests/init.pp index 8c9b6cf..ea1aad8 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -57,6 +57,14 @@ # (Optional) Limit the number of memory bytes used by the quorum queue. # Defaults to $facts['os_service_default'] # +# [*rabbit_use_queue_manager*] +# (Optional) Should we use consistant queue names or random ones. +# Defaults to $facts['os_service_default'] +# +# [*rabbit_stream_fanout*] +# (Optional) Use stream queues in RabbitMQ (x-queue-type: stream). +# Defaults to $facts['os_service_default'] +# # [*rabbit_enable_cancel_on_failover*] # (Optional) Enable x-cancel-on-ha-failover flag so that rabbitmq server will # cancel and notify consumers when queue is down. @@ -222,6 +230,8 @@ class cloudkitty( $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_queue_manager = $facts['os_service_default'], + $rabbit_stream_fanout = $facts['os_service_default'], $rabbit_enable_cancel_on_failover = $facts['os_service_default'], $kombu_ssl_ca_certs = $facts['os_service_default'], $kombu_ssl_certfile = $facts['os_service_default'], @@ -292,6 +302,8 @@ class cloudkitty( 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, + use_queue_manager => $rabbit_use_queue_manager, + rabbit_stream_fanout => $rabbit_stream_fanout, enable_cancel_on_failover => $rabbit_enable_cancel_on_failover, } diff --git a/releasenotes/notes/queue_manager-and-stream_fanout-9c2351547483e224.yaml b/releasenotes/notes/queue_manager-and-stream_fanout-9c2351547483e224.yaml new file mode 100644 index 0000000..28762cb --- /dev/null +++ b/releasenotes/notes/queue_manager-and-stream_fanout-9c2351547483e224.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The ``cloudkitty`` class now has two new parameters + ``rabbit_use_queue_manager`` and ``rabbit_stream_fanout``. diff --git a/spec/classes/cloudkitty_init_spec.rb b/spec/classes/cloudkitty_init_spec.rb index 6268c78..df6afd6 100644 --- a/spec/classes/cloudkitty_init_spec.rb +++ b/spec/classes/cloudkitty_init_spec.rb @@ -49,6 +49,8 @@ describe 'cloudkitty' do :rabbit_quorum_delivery_limit => '', :rabbit_quorum_max_memory_length => '', :rabbit_quorum_max_memory_bytes => '', + :use_queue_manager => '', + :rabbit_stream_fanout => '', :enable_cancel_on_failover => '', ) is_expected.to contain_oslo__messaging__notifications('cloudkitty_config').with( @@ -85,6 +87,8 @@ describe 'cloudkitty' do :rabbit_quorum_delivery_limit => 3, :rabbit_quorum_max_memory_length => 5, :rabbit_quorum_max_memory_bytes => 1073741824, + :rabbit_use_queue_manager => true, + :rabbit_stream_fanout => true, :rabbit_enable_cancel_on_failover => false, :kombu_reconnect_delay => 5.0, :amqp_durable_queues => true, @@ -124,6 +128,8 @@ describe 'cloudkitty' do :rabbit_quorum_delivery_limit => 3, :rabbit_quorum_max_memory_length => 5, :rabbit_quorum_max_memory_bytes => 1073741824, + :use_queue_manager => true, + :rabbit_stream_fanout => true, :enable_cancel_on_failover => false, ) is_expected.to contain_oslo__messaging__notifications('cloudkitty_config').with(