Announcing the release of KubeVirt v1.5
The KubeVirt Community is pleased to announce the release of KubeVirt v1.5. This release aligns with Kubernetes v1.32 and is the seventh KubeVirt release to follow the Kubernetes release cadence.
This release sees the project adding some features that are aligned with more traditional virtualization platforms, such as enhanced volume and VM migration, increased CPU performance, and more precise network state control.
You can read the full release notes in our user-guide, but we have included some highlights in this blog.
Breaking change
Please be aware that in v1.5 we have introduced a change that affects permissions of namespace admins to trigger live migrations. As a hardening measure (principle of least privilege), the right of creating, editing and deleting VirtualMachineInstanceMigrations
are no longer assigned by default to namespace admins.
For more information, see our post on the KubeVirt blog.
Feature GA
This release marks the graduation of a number of features to GA; deprecating the feature gate and now enabled by default:
- Migration Update Strategy and Volume Migration: Storage migration can be useful in the cases where the users need to change the underlying storage, for example, if the storage class has been deprecated, or there is a new more performant driver available.
- Auto Resource Limits: Automatically apply CPU limits to a VMI.
- VM Live Update Features: This feature underpins hotplugging of CPU, memory, and volume resources.
- Network Binding Plugin: A modular plugin which integrates with KubeVirt to implement a network binding.
Compute
You can now specify the number of IOThreads to use through virtqueue mapping to improve CPU performance. We also added virtio video support for amd64 as well as the ability to reset VMs, which provides the means to restart the guest OS without requiring a new pod to be scheduled.
Networking
You can now dynamically control the link state (up/down) of a network interface.
Scale and Performance
A comprehensive list of performance and scale benchmarks for the release is available here. A notable change added to the benchmarks was the virt-handler resource utilization metrics. This metric gives the avg, max and min memory/cpu utilization per VMI that is scheduled on the node where virt-handler is running. Another notable shoutout from the benchmark document is changing how list calls are tracked. KubeVirt clients were misreporting watch calls as list calls, which was fixed in this release.
Storage
With this release you can now migrate hotplugged volumes. You can also migrate VMIs with a volume shared using virtiofs. And we addressed a recent change in libvirt that was preventing some NFS shared volumes from migrating by providing shared filesystem paths upfront.
Thank you for your contribution!
A lot of work from a huge amount of people goes into a release. A huge thank you to the 350+ people who contributed to this v1.5 release.
And if you’re interested in contributing to the project and being a part of the next release, please check out our contributing guide and our community membership guidelines.
Contributing needn’t be designing a new feature or committing to a Virtualization Enhancement Proposal, there is always a need for reviews, help with our docs and website, or submitting good quality bugs. Every little bit counts.