diff --git a/manifests/proxy/ceilometer.pp b/manifests/proxy/ceilometer.pp index 1324bf81..b0cac50d 100644 --- a/manifests/proxy/ceilometer.pp +++ b/manifests/proxy/ceilometer.pp @@ -99,6 +99,28 @@ # option, you must wipe the RabbitMQ database. (boolean value) # Defaults to $facts['os_service_default'] # +# [*rabbit_quorum_queue*] +# (Optional) Use quorum queues in RabbitMQ. +# Defaults to $facts['os_service_default'] +# +# [*rabbit_transient_quorum_queue*] +# (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 +# the message gets dropped or dead-lettered. +# Defaults to $facts['os_service_default'] +# # [*rabbit_heartbeat_timeout_threshold*] # (Optional) Number of seconds after which the Rabbit broker is # considered down if heartbeat's keep-alive fails @@ -118,6 +140,10 @@ # (optional) Define queues as "durable" to rabbitmq. # 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'] +# # [*kombu_reconnect_delay*] # (Optional) How long to wait before reconnecting in response # to an AMQP consumer cancel notification. (floating point value) @@ -184,10 +210,15 @@ class swift::proxy::ceilometer( $rabbit_use_ssl = $facts['os_service_default'], $kombu_ssl_version = $facts['os_service_default'], $rabbit_ha_queues = $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_heartbeat_timeout_threshold = $facts['os_service_default'], $rabbit_heartbeat_rate = $facts['os_service_default'], $rabbit_qos_prefetch_count = $facts['os_service_default'], $amqp_durable_queues = $facts['os_service_default'], + $amqp_auto_delete = $facts['os_service_default'], $kombu_reconnect_delay = $facts['os_service_default'], $kombu_failover_strategy = $facts['os_service_default'], $kombu_compression = $facts['os_service_default'], @@ -247,20 +278,25 @@ class swift::proxy::ceilometer( if $default_transport_url =~ /^rabbit.*/ { oslo::messaging::rabbit { 'swift_ceilometer_config': - rabbit_ha_queues => $rabbit_ha_queues, - heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold, - heartbeat_rate => $rabbit_heartbeat_rate, - heartbeat_in_pthread => $rabbit_heartbeat_in_pthread, - rabbit_qos_prefetch_count => $rabbit_qos_prefetch_count, - amqp_durable_queues => $amqp_durable_queues, - kombu_ssl_ca_certs => $notification_ssl_ca_file, - kombu_ssl_certfile => $notification_ssl_cert_file, - kombu_ssl_keyfile => $notification_ssl_key_file, - kombu_ssl_version => $kombu_ssl_version, - rabbit_use_ssl => $rabbit_use_ssl, - kombu_reconnect_delay => $kombu_reconnect_delay, - kombu_failover_strategy => $kombu_failover_strategy, - kombu_compression => $kombu_compression, + rabbit_ha_queues => $rabbit_ha_queues, + 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, + heartbeat_timeout_threshold => $rabbit_heartbeat_timeout_threshold, + heartbeat_rate => $rabbit_heartbeat_rate, + heartbeat_in_pthread => $rabbit_heartbeat_in_pthread, + rabbit_qos_prefetch_count => $rabbit_qos_prefetch_count, + amqp_durable_queues => $amqp_durable_queues, + amqp_auto_delete => $amqp_auto_delete, + kombu_ssl_ca_certs => $notification_ssl_ca_file, + kombu_ssl_certfile => $notification_ssl_cert_file, + kombu_ssl_keyfile => $notification_ssl_key_file, + kombu_ssl_version => $kombu_ssl_version, + rabbit_use_ssl => $rabbit_use_ssl, + kombu_reconnect_delay => $kombu_reconnect_delay, + kombu_failover_strategy => $kombu_failover_strategy, + kombu_compression => $kombu_compression, } } elsif $default_transport_url =~ /^amqp.*/ { # TODO(tkajinam): Remove this check after 2025.1 release diff --git a/releasenotes/notes/amqp_auto_delete-6324867e420e9e08.yaml b/releasenotes/notes/amqp_auto_delete-6324867e420e9e08.yaml new file mode 100644 index 00000000..af421dc0 --- /dev/null +++ b/releasenotes/notes/amqp_auto_delete-6324867e420e9e08.yaml @@ -0,0 +1,5 @@ +--- +features: + - | + The class swift::proxy::ceilometer now has a new ``amqp_auto_delete`` + parameter, so that transient queues are automatically deleted. diff --git a/releasenotes/notes/proxy-ceilometer-rabbitmq-params-ff1f9c5e81195a4b.yaml b/releasenotes/notes/proxy-ceilometer-rabbitmq-params-ff1f9c5e81195a4b.yaml new file mode 100644 index 00000000..31c5c4b6 --- /dev/null +++ b/releasenotes/notes/proxy-ceilometer-rabbitmq-params-ff1f9c5e81195a4b.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + New parameters for the class ``swift::proxy::ceilometer`` have been added: + ``rabbit_quorum_queue``, ``rabbit_transient_quorum_queue`` and + ``rabbit_quorum_delivery_limit``. diff --git a/releasenotes/notes/rabbit_transient_queues_ttl-dacc8bf7e5c4898d.yaml b/releasenotes/notes/rabbit_transient_queues_ttl-dacc8bf7e5c4898d.yaml new file mode 100644 index 00000000..4a2e3ec4 --- /dev/null +++ b/releasenotes/notes/rabbit_transient_queues_ttl-dacc8bf7e5c4898d.yaml @@ -0,0 +1,6 @@ +--- +features: + - | + A new parameter ``rabbit_transient_queues_ttl`` has been added to the + swift::proxy::ceilometer class to configure how long transtient queue + should stay until they are automatically deleted. diff --git a/spec/classes/swift_proxy_ceilometer_spec.rb b/spec/classes/swift_proxy_ceilometer_spec.rb index 5249f483..0b87f248 100644 --- a/spec/classes/swift_proxy_ceilometer_spec.rb +++ b/spec/classes/swift_proxy_ceilometer_spec.rb @@ -78,20 +78,25 @@ describe 'swift::proxy::ceilometer' do end it { is_expected.to contain_oslo__messaging__rabbit('swift_ceilometer_config').with( - :rabbit_ha_queues => '', - :heartbeat_timeout_threshold => '', - :heartbeat_rate => '', - :heartbeat_in_pthread => nil, - :rabbit_qos_prefetch_count => '', - :amqp_durable_queues => '', - :kombu_ssl_ca_certs => '', - :kombu_ssl_certfile => '', - :kombu_ssl_keyfile => '', - :kombu_ssl_version => '', - :rabbit_use_ssl => '', - :kombu_reconnect_delay => '', - :kombu_failover_strategy => '', - :kombu_compression => '', + :rabbit_ha_queues => '', + :rabbit_quorum_queue => '', + :rabbit_transient_quorum_queue => '', + :heartbeat_timeout_threshold => '', + :heartbeat_rate => '', + :heartbeat_in_pthread => nil, + :rabbit_qos_prefetch_count => '', + :amqp_durable_queues => '', + :amqp_auto_delete => '', + :kombu_ssl_ca_certs => '', + :kombu_ssl_certfile => '', + :kombu_ssl_keyfile => '', + :kombu_ssl_version => '', + :rabbit_use_ssl => '', + :rabbit_quorum_delivery_limit => '', + :rabbit_transient_queues_ttl => '', + :kombu_reconnect_delay => '', + :kombu_failover_strategy => '', + :kombu_compression => '', )} context 'with overridden rabbit ssl params' do