From f33a8b1836ca6679a66066de996a0cdd66b9823e Mon Sep 17 00:00:00 2001 From: Dmitriy Rabotyagov Date: Thu, 16 Nov 2023 20:15:01 +0100 Subject: [PATCH] Disable RabbitMQ quorum queues by default During PTG we agreed to disable quorum queues by default during this cycle and wait for improvements proposed as part of [1] before enabling it by default. This also adds a separate job that will test scenario with enabled quorum queues. [1] https://review.opendev.org/q/topic:bug-2031497 Change-Id: I0807cc1ed991fd85f9f74d4a360d3fd23cde227c --- inventory/group_vars/all/oslo-messaging.yml | 2 ++ ...bbitmq_quorum_queues-5f47b8a047faa8b5.yaml | 26 +++++++++++-------- .../templates/user_variables.aio.yml.j2 | 4 +++ zuul.d/jobs.yaml | 11 ++++++++ zuul.d/project-templates.yaml | 2 ++ 5 files changed, 34 insertions(+), 11 deletions(-) diff --git a/inventory/group_vars/all/oslo-messaging.yml b/inventory/group_vars/all/oslo-messaging.yml index 58fc9e109f..da8cf37feb 100644 --- a/inventory/group_vars/all/oslo-messaging.yml +++ b/inventory/group_vars/all/oslo-messaging.yml @@ -13,6 +13,8 @@ # limitations under the License. ## Main +oslomsg_rabbit_quorum_queues: False + # RPC oslomsg_rpc_transport: "{{ (groups[qdrouterd_host_group] | length > 0) | ternary('amqp', 'rabbit') }}" oslomsg_rpc_port: "{{ (groups[qdrouterd_host_group] | length > 0) | ternary(qdrouterd_port, rabbitmq_port) }}" diff --git a/releasenotes/notes/rabbitmq_quorum_queues-5f47b8a047faa8b5.yaml b/releasenotes/notes/rabbitmq_quorum_queues-5f47b8a047faa8b5.yaml index 61d132a3ef..14b34fa213 100644 --- a/releasenotes/notes/rabbitmq_quorum_queues-5f47b8a047faa8b5.yaml +++ b/releasenotes/notes/rabbitmq_quorum_queues-5f47b8a047faa8b5.yaml @@ -1,18 +1,22 @@ --- +features: + - | + Added support for RabbitMQ quorum queues. Quorum queues are disabled + by default. Followingvariables were implemented to control the behaviour: + + * oslomsg_rabbit_quorum_queues (default: false) + * oslomsg_rabbit_quorum_delivery_limit (default: 0) + * oslomsg_rabbit_quorum_max_memory_bytes (default: 0) + + Simmilar variables were also implemented for each service, while variables + above aim to change behaviour globally. upgrade: - | - During upgrade HA policy for RabbitMQ will be disabled and replaced with - usage of quorum queues which is a new and more efficient way to ensure - queues durability. + In case deployer wants to switch into using RabbitMQ quorum queues instead + of traditional HA policies during OpenStack upgrade, they need to define + variable ``oslomsg_rabbit_quorum_queues: True`` in user_variables.yml. - If you want to continue using HA queues instead of quorum queues, please - specify in your user_variables.yml: - - .. code-block:: yaml - - oslomsg_rabbit_quorum_queues: False - - If ``oslomsg_rabbit_quorum_queues`` is enabled (default behaviour), + If ``oslomsg_rabbit_quorum_queues`` is enabled, RabbitMQ vhosts will be re-created without leading ``/``. Ensure to reflect these changes in your monitoring software if vhosts are not auto-discovered. diff --git a/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 b/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 index ba95a2a31a..e7665ac31e 100644 --- a/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 +++ b/tests/roles/bootstrap-host/templates/user_variables.aio.yml.j2 @@ -349,3 +349,7 @@ tempest_test_includelist: - tempest.scenario.test_minimum_basic.TestMinimumBasicScenario.test_minimum_basic_scenario {% endif %} {% endif %} + +{% if 'quorum' in bootstrap_host_scenarios_expanded %} +oslomsg_rabbit_quorum_queues: True +{% endif %} diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index a84685752d..015688c338 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -437,6 +437,17 @@ nodeset: ubuntu-jammy timeout: 10800 +- job: + name: openstack-ansible-deploy-aio_metal_quorum-ubuntu-jammy + parent: openstack-ansible-deploy-aio + nodeset: ubuntu-jammy + +- job: + name: openstack-ansible-upgrade-aio_metal_quorum-ubuntu-jammy + parent: openstack-ansible-deploy-aio + nodeset: ubuntu-jammy + timeout: 10800 + - job: name: openstack-ansible-upgrade-aio_lxc-ubuntu-jammy parent: openstack-ansible-deploy-aio diff --git a/zuul.d/project-templates.yaml b/zuul.d/project-templates.yaml index d842e2181b..a2b8da5518 100644 --- a/zuul.d/project-templates.yaml +++ b/zuul.d/project-templates.yaml @@ -174,6 +174,7 @@ - openstack-ansible-deploy-aio_metal-ubuntu-jammy - openstack-ansible-deploy-aio_metal_tls-rockylinux-9 - openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy + - openstack-ansible-deploy-aio_metal_quorum-ubuntu-jammy - openstack-ansible-upgrade-aio_metal-rockylinux-9 - openstack-ansible-upgrade-aio_metal-ubuntu-jammy - openstack-ansible-upgrade-aio_metal_tls-rockylinux-9 @@ -185,6 +186,7 @@ - openstack-ansible-deploy-aio_metal-debian-bookworm - openstack-ansible-deploy-aio_metal-rockylinux-9 - openstack-ansible-deploy-aio_metal-ubuntu-jammy + - openstack-ansible-deploy-aio_metal_quorum-ubuntu-jammy - openstack-ansible-deploy-aio_metal_tls-rockylinux-9 - openstack-ansible-deploy-aio_metal_tls-ubuntu-jammy