1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
Description: Add a rabbit_transient_queues_ttl and amqp_auto_delete params
The amqp_auto_delete option needs this patch:
https://review.opendev.org/c/openstack/puppet-oslo/+/944132
.
Since transient_queues_ttl is also managed by oslo::messaging::rabbit,
there's no way to use cinder_config to set it, so this patch is
mandatory for one to set rabbit_transient_queues_ttl in cinder.conf.
Author: Thomas Goirand <zigo@debian.org>
Date: Thu, 13 Mar 2025 11:59:58 +0100
Change-Id: I8f59ef9186431cdc377cf9060d179f2beb253944
Forwarded: https://review.opendev.org/c/openstack/puppet-cinder/+/944209
Last-Update: 2025-03-13
Index: puppet-module-cinder/manifests/init.pp
===================================================================
--- puppet-module-cinder.orig/manifests/init.pp
+++ puppet-module-cinder/manifests/init.pp
@@ -86,6 +86,14 @@
# (Optional) Use quorum queues for transients queues in RabbitMQ.
# Defaults to $facts['os_service_default']
#
+# [*rabbit_transient_queues_ttl*]
+# (Optional) Positive integer representing duration in seconds for
+# queue TTL (x-expires). Queues which are unused for the duration
+# of the TTL are automatically deleted.
+# The parameter affects only reply and fanout queues. (integer value)
+# Min to 1
+# 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
@@ -154,6 +162,10 @@
# (string value)
# Defaults to $facts['os_service_default']
#
+# [*amqp_auto_delete*]
+# (Optional) Define if transient queues should be auto-deleted (boolean value)
+# Defaults to $facts['os_service_default']
+#
# [*amqp_durable_queues*]
# Use durable queues in amqp.
# (Optional) Defaults to $facts['os_service_default']
@@ -250,6 +262,7 @@ class cinder (
$rabbit_qos_prefetch_count = $facts['os_service_default'],
$rabbit_quorum_queue = $facts['os_service_default'],
$rabbit_transient_quorum_queue = $facts['os_service_default'],
+ $rabbit_transient_queues_ttl = $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'],
@@ -265,6 +278,7 @@ class cinder (
$kombu_failover_strategy = $facts['os_service_default'],
$kombu_compression = $facts['os_service_default'],
$amqp_durable_queues = $facts['os_service_default'],
+ $amqp_auto_delete = $facts['os_service_default'],
$package_ensure = 'present',
$api_paste_config = '/etc/cinder/api-paste.ini',
$storage_availability_zone = 'nova',
@@ -311,9 +325,11 @@ class cinder (
kombu_ssl_certfile => $kombu_ssl_certfile,
kombu_ssl_ca_certs => $kombu_ssl_ca_certs,
amqp_durable_queues => $amqp_durable_queues,
+ amqp_auto_delete => $amqp_auto_delete,
kombu_compression => $kombu_compression,
rabbit_quorum_queue => $rabbit_quorum_queue,
rabbit_transient_quorum_queue => $rabbit_transient_quorum_queue,
+ rabbit_transient_queues_ttl => $rabbit_transient_queues_ttl,
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,
Index: puppet-module-cinder/releasenotes/notes/amqp_auto_delete-b34b1a9e219eb8a0.yaml
===================================================================
--- /dev/null
+++ puppet-module-cinder/releasenotes/notes/amqp_auto_delete-b34b1a9e219eb8a0.yaml
@@ -0,0 +1,5 @@
+---
+features:
+ - |
+ Add a new `amqp_auto_delete` parameter, so that transient queues are
+ automatically deleted.
Index: puppet-module-cinder/releasenotes/notes/rabbit_transient_queues_ttl-046d931781e0a101.yaml
===================================================================
--- /dev/null
+++ puppet-module-cinder/releasenotes/notes/rabbit_transient_queues_ttl-046d931781e0a101.yaml
@@ -0,0 +1,6 @@
+---
+features:
+ - |
+ A new parameter `rabbit_transient_queues_ttl` has been added to the
+ heat init class to configure how long transtient queue should stay until
+ they are automatically deleted.
Index: puppet-module-cinder/spec/classes/cinder_init_spec.rb
===================================================================
--- puppet-module-cinder.orig/spec/classes/cinder_init_spec.rb
+++ puppet-module-cinder/spec/classes/cinder_init_spec.rb
@@ -33,6 +33,7 @@ describe 'cinder' do
:kombu_reconnect_delay => '<SERVICE DEFAULT>',
:kombu_failover_strategy => '<SERVICE DEFAULT>',
:amqp_durable_queues => '<SERVICE DEFAULT>',
+ :amqp_auto_delete => '<SERVICE DEFAULT>',
:kombu_compression => '<SERVICE DEFAULT>',
:kombu_ssl_ca_certs => '<SERVICE DEFAULT>',
:kombu_ssl_certfile => '<SERVICE DEFAULT>',
@@ -42,6 +43,7 @@ describe 'cinder' do
:rabbit_retry_interval => '<SERVICE DEFAULT>',
:rabbit_quorum_queue => '<SERVICE DEFAULT>',
:rabbit_transient_quorum_queue => '<SERVICE DEFAULT>',
+ :rabbit_transient_queues_ttl => '<SERVICE DEFAULT>',
:rabbit_quorum_delivery_limit => '<SERVICE DEFAULT>',
:rabbit_quorum_max_memory_length => '<SERVICE DEFAULT>',
:rabbit_quorum_max_memory_bytes => '<SERVICE DEFAULT>',
@@ -102,6 +104,7 @@ describe 'cinder' do
:rabbit_qos_prefetch_count => 0,
:rabbit_quorum_queue => true,
:rabbit_transient_quorum_queue => true,
+ :rabbit_transient_queues_ttl => 60,
:rabbit_quorum_delivery_limit => 3,
:rabbit_quorum_max_memory_length => 5,
:rabbit_quorum_max_memory_bytes => 1073741824,
@@ -116,6 +119,7 @@ describe 'cinder' do
:rabbit_qos_prefetch_count => 0,
:rabbit_quorum_queue => true,
:rabbit_transient_quorum_queue => true,
+ :rabbit_transient_queues_ttl => 60,
:rabbit_quorum_delivery_limit => 3,
:rabbit_quorum_max_memory_length => 5,
:rabbit_quorum_max_memory_bytes => 1073741824,
|