Generally available version. Ready to be used in production environments.
v1.0.0
New features
- [vm] Added protection to prevent a cloud image (
VirtualImage
\ClusterVirtualImage
) from being connected as the first disk. Previously, this caused the VM to fail to start with the “No bootable device” error. - [vmop] Added
Restore
operation to restore a VM from a previously created snapshot.
Fixes
- [vmsnapshot] When restoring a virtual machine from a snapshot, all annotations and labels that were present on the resources at the time of the snapshot are now restored correctly.
- [module] Fixed an issue with queue blocking when the
settings.modules.publicClusterDomain
parameter was empty in the global ModuleConfig resource. - [module] Optimized hook performance during module installation.
- [vmclass] Fixed core/coreFraction validation in the
VirtualMachineClass
resource. - [module] When the SDN module is disabled, the configuration of additional networks in the VM is not available.
Security
- Fixed CVE-2025-47907
v0.25.0
Important notes before update
In version v0.25.0, support for the module’s operation with CRI containerd V2 has been added. After upgrading CRI from containerd v1 to containerd v2, it is necessary to recreate the images that were created using virtualization module version v0.24.0 and earlier.
New Features
- [observability] New Prometheus metrics have been added to track the phase of resources such as
VirtualMachineSnapshot
,VirtualDiskSnapshot
,VirtualImage
, andClusterVirtualImage
. - [vm] MAC address management for additional network interfaces has been added using the
VirtualMachineMACAddress
andVirtualMachineMACAddressLease
resources. - [vm] Added the ability to attach additional network interfaces to a virtual machine for networks provided by the
SDN
module. For this, theSDN
module must be enabled in the cluster. - [vmclass] An annotation has been added to set the default
VirtualMachineClass
. You can designate aVirtualMachineClass
as the default by adding the annotationvirtualmachineclass.virtualization.deckhouse.io/is-default-class=true
. This allows creating VMs with an emptyspec.virtualMachineClassName
field, which will be automatically filled with the default class.
Fixes
- [module] Added validation to ensure that virtual machine subnets do not overlap with system subnets (
podSubnetCIDR
andserviceSubnetCIDR
). - [vi] To create a virtual image on a
PersistentVolumeClaim
, the storage must support theRWX
andBlock
modes; otherwise, a warning will be displayed. - [vm] Fixed an issue where changing the operating system type caused the machine to enter a reboot loop.
- [vm] Fixed an issue where a virtual machine would hang in the Starting phase when project quotas were insufficient. A quota shortage message will now be displayed in the virtual machine’s status. To allow the machine to continue starting, the project quotas need to be increased.
Other
- [vm] Improved the garbage collector (GC) for completed virtual machine operations:
- Runs daily at 00:00.
- Removes successfully completed operations (
Completed
/Failed
) after their TTL (24 hours) expires. - Retains only the last 10 completed operations.