@@ -110,9 +110,25 @@ The ``+sbwt none +sbwtdcpu none +sbwtdio none`` arguments prevent busy waiting
110
110
of the scheduler, for more details see:
111
111
https://www.rabbitmq.com/runtime.html#busy-waiting.
112
112
113
+ .. _high-availability :
114
+
113
115
High Availability
114
116
~~~~~~~~~~~~~~~~~
115
117
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
+
116
132
With the release of RabbitMQ 4.0, all queues are highly available as they are
117
133
configured to be quorum queues by default. RabbitMQ also offer queues called
118
134
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.
161
177
162
178
kolla-ansible deploy --tags <service-tags>
163
179
164
- SLURP
165
- ~~~~~
180
+ RabbitMQ Versions
181
+ -----------------
166
182
167
- .. note ::
183
+ Kolla ships multiple versions of RabbitMQ.
168
184
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
171
187
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
180
197
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.
182
203
183
- This command should be run from the Antelope release.
204
+ 1. Queue migration
184
205
185
- Note that this command is NOT idempotent. See "RabbitMQ versions" below for
186
- an alternative approach.
206
+ See :ref: `high-availability ` section above
187
207
188
- .. code-block :: console
208
+ 2. Set `` rabbitmq_image `` in your configuration `` globals.yml `` to use later version of RabbitMQ
189
209
190
- kolla-ansible rabbitmq-upgrade 3.12
210
+ .. warning ::
191
211
192
- RabbitMQ versions
193
- ~~~~~~~~~~~~~~~~~
212
+ It is recommended to set `` rabbitmq_image `` before running upgrade command to
213
+ maintain idempotency
194
214
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.
201
219
202
- .. code-block :: yaml
220
+ .. code-block :: yaml
203
221
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 "
205
223
206
- You can then upgrade RabbitMQ with the usual command:
224
+ 3. Run upgrade command
207
225
208
- .. code-block :: console
209
-
210
- kolla-ansible upgrade --tags rabbitmq
226
+ .. code-block :: console
211
227
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