Description: 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 heat_config.
Author: Thomas Goirand <zigo@debian.org>
Date: Fri, 20 Jun 2025 22:35:49 +0200
Change-Id: I70412f9d7287c0a08b7f3a1bdde5e4062aea6e90
Last-Update: 2025-06-22

Index: puppet-module-heat/manifests/init.pp
===================================================================
--- puppet-module-heat.orig/manifests/init.pp
+++ puppet-module-heat/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.
@@ -250,6 +258,8 @@ class heat(
   $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_use_ssl                     = $facts['os_service_default'],
   $kombu_ssl_ca_certs                 = $facts['os_service_default'],
@@ -321,6 +331,8 @@ class heat(
     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,
   }
 
Index: puppet-module-heat/releasenotes/notes/queue_manager-and-stream_fanout-a16a776f49e8ca5d.yaml
===================================================================
--- /dev/null
+++ puppet-module-heat/releasenotes/notes/queue_manager-and-stream_fanout-a16a776f49e8ca5d.yaml
@@ -0,0 +1,5 @@
+---
+features:
+  - |
+    The ``heat`` class now has two new parameters
+    ``rabbit_use_queue_manager`` and ``rabbit_stream_fanout``.
Index: puppet-module-heat/spec/classes/heat_init_spec.rb
===================================================================
--- puppet-module-heat.orig/spec/classes/heat_init_spec.rb
+++ puppet-module-heat/spec/classes/heat_init_spec.rb
@@ -149,6 +149,8 @@ describe 'heat' do
         :rabbit_quorum_delivery_limit    => '<SERVICE DEFAULT>',
         :rabbit_quorum_max_memory_length => '<SERVICE DEFAULT>',
         :rabbit_quorum_max_memory_bytes  => '<SERVICE DEFAULT>',
+        :use_queue_manager               => '<SERVICE DEFAULT>',
+        :rabbit_stream_fanout            => '<SERVICE DEFAULT>',
         :enable_cancel_on_failover       => '<SERVICE DEFAULT>',
       )
     end
@@ -182,6 +184,8 @@ describe 'heat' do
         :rabbit_quorum_delivery_limit    => '<SERVICE DEFAULT>',
         :rabbit_quorum_max_memory_length => '<SERVICE DEFAULT>',
         :rabbit_quorum_max_memory_bytes  => '<SERVICE DEFAULT>',
+        :use_queue_manager               => '<SERVICE DEFAULT>',
+        :rabbit_stream_fanout            => '<SERVICE DEFAULT>',
         :enable_cancel_on_failover       => '<SERVICE DEFAULT>',
       )
     end
