Skip to content

Commit 019dfb9

Browse files
Zuulopenstack-gerrit
authored andcommitted
Merge "Update RabbitMQ documentation for Epoxy" into stable/2025.1
2 parents 0571550 + d373507 commit 019dfb9

File tree

1 file changed

+50
-36
lines changed

1 file changed

+50
-36
lines changed

doc/source/reference/message-queues/rabbitmq.rst

Lines changed: 50 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,25 @@ The ``+sbwt none +sbwtdcpu none +sbwtdio none`` arguments prevent busy waiting
110110
of the scheduler, for more details see:
111111
https://www.rabbitmq.com/runtime.html#busy-waiting.
112112

113+
.. _high-availability:
114+
113115
High Availability
114116
~~~~~~~~~~~~~~~~~
115117

118+
.. warning::
119+
120+
In the Epoxy release of Kolla, the version of RabbitMQ will be updated to
121+
4.0. As a result, **all queues must be migrated to a durable type prior to
122+
upgrading to Epoxy.** This can be done by setting the following options and
123+
then following the migration procedure outlined below.
124+
125+
.. code-block:: yaml
126+
127+
om_enable_queue_manager: true
128+
om_enable_rabbitmq_quorum_queues: true
129+
om_enable_rabbitmq_transient_quorum_queue: true
130+
om_enable_rabbitmq_stream_fanout: true
131+
116132
With the release of RabbitMQ 4.0, all queues are highly available as they are
117133
configured to be quorum queues by default. RabbitMQ also offer queues called
118134
streams, which can be used to replace "fanout" queues with a more performant
@@ -161,54 +177,52 @@ different type, the follow procedure will be needed.
161177
162178
kolla-ansible deploy --tags <service-tags>
163179
164-
SLURP
165-
~~~~~
180+
RabbitMQ Versions
181+
-----------------
166182

167-
.. note::
183+
Kolla ships multiple versions of RabbitMQ.
168184

169-
The version of RabbitMQ did not increase in Dalmatian, so this will not be
170-
needed for a skip-level upgrade to Epoxy.
185+
.. list-table:: Supported RabbitMQ versions
186+
:header-rows: 1
171187

172-
RabbitMQ has two major version releases per year but does not support jumping
173-
two versions in one upgrade. So if you want to perform a skip-level upgrade,
174-
you must first upgrade RabbitMQ to an intermediary version. To do this, Kolla
175-
provides multiple RabbitMQ versions in the odd OpenStack releases. To use the
176-
upgrade from Antelope to Caracal as an example, we start on RabbitMQ version
177-
3.11. In Antelope, you should upgrade to RabbitMQ version 3.12 with the command
178-
below. You can then proceed with the usual SLURP upgrade to Caracal (and
179-
therefore RabbitMQ version 3.13).
188+
* - OpenStack Release
189+
- Default RabbitMQ version
190+
- Additional RabbitMQ version
191+
* - 2025.1 Epoxy
192+
- 4.0
193+
- 4.1
194+
* - 2024.1 Caracal/2024.2 Dalmatian
195+
- 3.13
196+
- 4.1
180197

181-
.. warning::
198+
Although Kolla-Ansible supports RabbitMQ upgrade when upgrading OpenStack from
199+
Caracal/Dalmatian to Epoxy, **it is highly recommended to upgrade RabbitMQ to
200+
4.1 (the latest RabbitMQ supported by Epoxy/Dalmatian/Caracal Kolla-Ansible)
201+
prior to OpenStack upgrade to Epoxy**
202+
You can upgrade RabbitMQ to 4.1 with following steps.
182203

183-
This command should be run from the Antelope release.
204+
1. Queue migration
184205

185-
Note that this command is NOT idempotent. See "RabbitMQ versions" below for
186-
an alternative approach.
206+
See :ref:`high-availability` section above
187207

188-
.. code-block:: console
208+
2. Set ``rabbitmq_image`` in your configuration ``globals.yml`` to use later version of RabbitMQ
189209

190-
kolla-ansible rabbitmq-upgrade 3.12
210+
.. warning::
191211

192-
RabbitMQ versions
193-
~~~~~~~~~~~~~~~~~
212+
It is recommended to set ``rabbitmq_image`` before running upgrade command to
213+
maintain idempotency
194214

195-
Alternatively, you can set ``rabbitmq_image`` in your configuration
196-
``globals.yml`` for idempotence in deployments. As an example, Kolla ships
197-
versions 3.11, 3.12 and 3.13 of RabbitMQ in Antelope. By default, Antelope
198-
Kolla-Ansible will deploy version 3.11. If you wish to deploy a later version,
199-
you must override the image. if you want to use version 3.12 change
200-
``rabbitmq_image`` in ``globals.yml`` as follows:
215+
If you're upgrading the system from Caracal or Dalmatian and already
216+
upgraded RabbitMQ to 4.1, ``rabbitmq_image`` must be overridden as
217+
follows to prevent the downgrade of RabbitMQ while upgrading the system to
218+
Epoxy.
201219

202-
.. code-block:: yaml
220+
.. code-block:: yaml
203221
204-
rabbitmq_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/rabbitmq-3-12"
222+
rabbitmq_image: "{{ docker_registry ~ '/' if docker_registry else '' }}{{ docker_namespace }}/rabbitmq-4-1"
205223
206-
You can then upgrade RabbitMQ with the usual command:
224+
3. Run upgrade command
207225

208-
.. code-block:: console
209-
210-
kolla-ansible upgrade --tags rabbitmq
226+
.. code-block:: console
211227
212-
Note again that RabbitMQ does not support upgrades between more than one major
213-
version, so if you wish to upgrade to version 3.13 you must first upgrade to
214-
3.12.
228+
kolla-ansible upgrade --tags rabbitmq

0 commit comments

Comments
 (0)