From 8bdcbc820b418f4db18576cf0ab29ad402d1d770 Mon Sep 17 00:00:00 2001 From: Thomas Goirand Date: Fri, 20 Jun 2025 23:51:39 +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 nova_config. Change-Id: Ifb14d23b79e13458e8db9ff165153deca703c7f5 --- manifests/init.pp | 12 ++++++++++++ ...e_manager-and-stream_fanout-55a335733a52f7f6.yaml | 5 +++++ spec/classes/nova_init_spec.rb | 6 ++++++ 3 files changed, 23 insertions(+) create mode 100644 releasenotes/notes/queue_manager-and-stream_fanout-55a335733a52f7f6.yaml diff --git a/manifests/init.pp b/manifests/init.pp index 3969dc2fd..8e75fca26 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -91,6 +91,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. @@ -372,6 +380,8 @@ class nova( $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'], $rabbit_retry_interval = $facts['os_service_default'], $kombu_ssl_ca_certs = $facts['os_service_default'], @@ -545,6 +555,8 @@ class nova( 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, rabbit_retry_interval => $rabbit_retry_interval, } diff --git a/releasenotes/notes/queue_manager-and-stream_fanout-55a335733a52f7f6.yaml b/releasenotes/notes/queue_manager-and-stream_fanout-55a335733a52f7f6.yaml new file mode 100644 index 000000000..21e56ae16 --- /dev/null +++ b/releasenotes/notes/queue_manager-and-stream_fanout-55a335733a52f7f6.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The ``nova`` class now has two new parameters + ``rabbit_use_queue_manager`` and ``rabbit_stream_fanout``. diff --git a/spec/classes/nova_init_spec.rb b/spec/classes/nova_init_spec.rb index fd391f8ca..4000bc0ac 100644 --- a/spec/classes/nova_init_spec.rb +++ b/spec/classes/nova_init_spec.rb @@ -58,6 +58,8 @@ describe 'nova' 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 => '', :rabbit_retry_interval => '', ) @@ -130,6 +132,8 @@ describe 'nova' 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, :rabbit_retry_interval => '1', :lock_path => '/var/locky/path', @@ -209,6 +213,8 @@ describe 'nova' 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, :rabbit_retry_interval => '1', )