Skip to content

Commit 3a4ab3f

Browse files
authored
Merge pull request #773 from stackhpc/upstream/2025.1-2025-08-19
Synchronise 2025.1 with upstream
2 parents 7ea9d7e + 6fff833 commit 3a4ab3f

File tree

6 files changed

+90
-58
lines changed

6 files changed

+90
-58
lines changed

ansible/group_vars/all.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -503,7 +503,7 @@ kuryr_port: "23750"
503503

504504
letsencrypt_webserver_port: "8081"
505505
letsencrypt_managed_certs: "{{ '' if not enable_letsencrypt | bool else ('internal' if letsencrypt_internal_cert_server != '' and kolla_same_external_internal_vip | bool else ('internal,external' if letsencrypt_internal_cert_server != '' and letsencrypt_external_cert_server != '' else ('internal' if letsencrypt_internal_cert_server != '' else ('external' if letsencrypt_external_cert_server != '' and not kolla_same_external_internal_vip | bool else '')))) }}"
506-
letsencrypt_external_cert_server: ""
506+
letsencrypt_external_cert_server: "https://acme-v02.api.letsencrypt.org/directory"
507507
letsencrypt_internal_cert_server: ""
508508

509509
magnum_internal_fqdn: "{{ kolla_internal_fqdn }}"

ansible/roles/neutron/templates/neutron-server.json.j2

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
2-
"command": "neutron-server --config-file /etc/neutron/neutron.conf {% if neutron_plugin_agent in ['openvswitch', 'linuxbridge', 'ovn'] %} --config-file /etc/neutron/plugins/ml2/ml2_conf.ini {% if enable_neutron_vpnaas | bool %}--config-file /etc/neutron/neutron_vpnaas.conf{% endif %}{% elif neutron_plugin_agent in ['vmware_nsxv', 'vmware_nsxv3', 'vmware_nsxp', 'vmware_dvs'] %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %}{% if enable_neutron_fwaas | bool %}--config-file /etc/neutron/fwaas_driver.ini{% endif %}",
2+
"command": "neutron-server --config-file /etc/neutron/neutron.conf{% if neutron_plugin_agent in ['openvswitch', 'linuxbridge', 'ovn'] %} --config-file /etc/neutron/plugins/ml2/ml2_conf.ini{% if enable_neutron_vpnaas | bool %} --config-file /etc/neutron/neutron_vpnaas.conf{% endif %}{% elif neutron_plugin_agent in ['vmware_nsxv', 'vmware_nsxv3', 'vmware_nsxp', 'vmware_dvs'] %} --config-file /etc/neutron/plugins/vmware/nsx.ini {% endif %}{% if enable_neutron_fwaas | bool %} --config-file /etc/neutron/fwaas_driver.ini{% endif %}",
33
"config_files": [
44
{
55
"source": "{{ container_config_directory }}/neutron.conf",

doc/source/admin/tls.rst

Lines changed: 20 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -316,19 +316,26 @@ to the HAProxy containers using SSH.
316316
with HAProxy.
317317

318318
You can configure separate ACME servers for internal and external
319-
certificate requests.
320-
321-
.. code-block:: yaml
322-
323-
letsencrypt_external_cert_server: "<ACME server URL for external cert>"
324-
letsencrypt_internal_cert_server: "<ACME server URL for internal cert>"
325-
326-
.. note::
327-
328-
The ``letsencrypt_external_cert_server`` has a default value of
329-
``https://acme-v02.api.letsencrypt.org/directory``. Ensure that
330-
``letsencrypt_internal_cert_server`` is reachable from the controller
331-
if you configure it for internal certificate requests.
319+
certificate requests by setting server URL on
320+
``letsencrypt_internal_cert_server`` and
321+
``letsencrypt_external_cert_server`` respectively.
322+
The default is external certificate ACME server set to
323+
``https://acme-v02.api.letsencrypt.org/directory``.
324+
325+
.. list-table:: Let's Encrypt management
326+
:widths: 28 72
327+
:header-rows: 1
328+
329+
* - Desired outcome
330+
- Settings
331+
* - External only (default)
332+
- Enable Let's Encrypt; no further changes.
333+
* - External + internal
334+
- Set ``letsencrypt_internal_cert_server`` and ensure it is reachable
335+
from the controller.
336+
* - Internal only
337+
- Set ``letsencrypt_external_cert_server: ""`` and set
338+
``letsencrypt_internal_cert_server``.
332339

333340
.. _admin-tls-generating-a-private-ca:
334341

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

doc/source/user/quickstart-development.rst

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ Install Kolla-ansible
102102

103103
.. code-block:: console
104104
105-
pip install ./kolla-ansible
105+
pip install -e ./kolla-ansible
106106
107107
#. Create the ``/etc/kolla`` directory.
108108

@@ -291,20 +291,19 @@ accordingly.
291291

292292
.. code-block:: console
293293
294-
cd kolla-ansible/tools
295-
./kolla-ansible bootstrap-servers -i ../../all-in-one
294+
kolla-ansible bootstrap-servers -i ../all-in-one
296295
297296
#. Do pre-deployment checks for hosts:
298297

299298
.. code-block:: console
300299
301-
kolla-ansible prechecks -i ../../all-in-one
300+
kolla-ansible prechecks -i ../all-in-one
302301
303302
#. Finally proceed to actual OpenStack deployment:
304303

305304
.. code-block:: console
306305
307-
kolla-ansible deploy -i ../../all-in-one
306+
kolla-ansible deploy -i ../all-in-one
308307
309308
When this playbook finishes, OpenStack should be up, running and functional!
310309
If error occurs during execution, refer to
@@ -324,8 +323,7 @@ Using OpenStack
324323

325324
.. code-block:: console
326325
327-
cd kolla-ansible/tools
328-
./kolla-ansible post-deploy
326+
kolla-ansible post-deploy
329327
330328
* The file will be generated in /etc/kolla/clouds.yaml, you can use it by
331329
copying it to /etc/openstack or ~/.config/openstack or setting
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
fixes:
3+
- |
4+
Restore the default Let's Encrypt ACME server for external certificates
5+
so that enabling ``enable_letsencrypt`` works out of the box again
6+
without explicitly setting ``letsencrypt_external_cert_server``. The
7+
default is ``https://acme-v02.api.letsencrypt.org/directory``.
8+
upgrade:
9+
- |
10+
Deployments using a file-based external certificate and Let's Encrypt for
11+
the internal certificate (separate VIPs) default to managing the external
12+
certificate with Let's Encrypt. To retain a file-based external
13+
certificate, set ``letsencrypt_external_cert_server: ""``.

0 commit comments

Comments
 (0)