2024.2 Series Release Notes¶
30.0.0¶
Prelude¶
The OpenStack 2024.2 (Nova 30.0.0) release includes many new features and bug fixes. Please be sure to read the upgrade section which describes the required actions to upgrade your cloud from 29.0.0 (2024.1) to 30.0.0 (2024.2). As a reminder, OpenStack 2024.2 is not a Skip-Level-Upgrade Release (starting from now, we name it a SLURP release) meaning that you can’t do rolling-upgrade from 2023.2, you first need to upgrade to 2024.1.
There are a few major changes worth mentioning. This is not an exhaustive list:
The latest Compute API microversion supported for 2024.2 is v2.96.
With the libvirt driver and libvirt version 7.3.0 or newer, mediated devices for vGPUs are now persisted across reboots of a compute host.
Instances with UEFI firmware can now be launched with stateless firmware if their image has the
hw_firmware_stateless
property and if the compute services have libvirt 8.6.0 or later.Nova now automatically detects vTPM support for compute services if libvirt version is above 8.0.0 and if
swtpm
is installed on the node. It will also automatically get the TPM models that are supported.You can now require TLS connections for SPICE consoles if you set the
[spice]/require_secure
configuration option toTrue
.AggregateMultitenancyIsolation
scheduler filter now supports multiple aggregate keys prefixed byfilter_tenant_id
which removes the limitation on the number of tenants an aggregate of hosts can relate to.A couple of other improvements target reducing the number of bugs we have: one is changing how the Ironic driver sends metadata to the Ironic API, and another one created a new
nova.wsgi
WSGI module that allows different WSGI servers to set their WSGI application the same way (using module instead of a binary).
New Features¶
A new module,
nova.wsgi
, has been added as a place to gather WSGIapplication
objects. This is intended to ease deployment by providing a consistent location for these objects. For example, if using uWSGI then instead of:[uwsgi] wsgi-file = /bin/nova-api-wsgi
You can now use:
[uwsgi] module = nova.wsgi.osapi_compute:application
This also simplifies deployment with other WSGI servers that expect module paths such as gunicorn.
A new configuration option,
[api] response_validation
, has been added. This allows operators to configure the behavior ofnova-api
when a response fails schema validation.
Libvirt virt driver now supports launching instances with stateless firmware. The new
hw_firmware_stateless
image property can be used to enable this feature. Note that the feature can be used only for the instances with UEFI firmware. This feature requires libvirt v8.6.0 or later.
With the libvirt driver and libvirt version 7.3.0 or newer, mediated devices for vGPUs are now persisted across reboots of a compute host.
Note
After a compute host reboots, if you have a GPU that supports SR-IOV, then the virtual functions for the GPU must be enabled again before instances will be able to use their vGPUs. Please see https://docs.openstack.org/nova/latest/admin/virtual-gpu.html for more information.
This release removes the limit of the number of tenants that can be specified for an aggregate and honored by the AggregateMultitenancyIsolation filter. It now respects multiple keys prefixed by filter_tenant_id like the request filter implementation. You can use filter_tenant_id as a prefix to set an infinite number of properties for tenant IDs on the aggregate. This change has been implemented in a manner that preserves backward compatibility. Existing configurations using filter_tenant_id will continue to function as expected.
This release adds a new config option require_secure to the spice configuration group. Defaulting to false to match the previous behavior, if set to true the SPICE consoles will require TLS protected connections. Unencrypted connections will be gracefully redirected to the TLS port via the SPICE protocol.
Upgrade Notes¶
In the victoria release, the instance_numa_topology object was extended to enabled mix cpus (pinned and unpinned cpus) in the same instance. This change added a new field pcpuset to the instance_numa_topology object. While the change included object conversion code to handle the upgrade, it did not account for instances that have a numa_topology but were not pinned. i.e. a flavor with hw:mem_page_size or hw:numa_nodes set but without hw:cpu_policy set to dedicated. As a result, instances created between liberty and victoria releases with such a flavor cannot be started after upgrade to victoria. This has now been fixed. instances created post victoria are not affected by this issue. see: https://bugs.launchpad.net/nova/+bug/2080556 for more details.
Deprecation Notes¶
AMI, AKI, and ARI image formats are now deprecated in Nova. The special- case handling for them will be removed in a future release, and Nova will stop being able to boot from them at that time. The kernel-id and ramdisk-id linkages will continue to be honored from base images and are unaffecfted by this deprecation.
Bug Fixes¶
The libvirt driver now ensures the
swtpm_ioctl
binary, which is used to terminate swtpm processes, is present when[libvirt] swtpm_enabled
is set toTrue
.
Fixes a regression for live migration on shared storage that was removing the backing disk and instance folder during the cleanup of a virtual machine post live migration. bug 2080436 for details.
Before the Bug 2078999 was fixed, the
nova-manage image_property set
command would update the image properties embedded in the instance but would not update the ones in the request specs. This led to an unexpected rollback of the image properties that were updated by the command after an instance migration.
Bug #2035375: Fixed leftover NVMe-oF subsystems when disconnecting multiple NVMe-oF volumes on the same host from storage sharing the subsystem for different volumes.
Nova now ensures that an instance cannot move between availability zones when the host of the instance is added or removed to an aggregate that is part of another availability zone. Moving from or to the default availability zone is also rejected.
This resolves bug 1907775 where after such move the instance become stuck in between availability zones.
Bug #2002606: Previously, server rescue in stable device mode had a dependency on the original image used to create or rebuild the server. If the original image was deleted from Glance, the server could not be rescued. The issue has been fixed by falling back to the instance image metadata if the original image is not found in Glance.
Introduced a new compute configuration option sharing_providers_max_uuids_per_request and applied a fix to handle the “Request-Too-Long” error that can occur when querying the placement API with a large number of aggregate UUIDs.