feat(vm): support hotplug/unplug block devices via spec.blockDeviceRefs#2033
Draft
feat(vm): support hotplug/unplug block devices via spec.blockDeviceRefs#2033
Conversation
…-devices-via-spec
Signed-off-by: Daniil Loktev <lokt.daniil@gmail.com>
Contributor
|
Workflow has started. The target step completed with status: failure. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
Add support for hot-plugging and unplugging block devices via
spec.blockDeviceRefson a running VM, without requiring a restart.Key changes:
HotplugHandlerin VM controller: reconcilesspec.blockDeviceRefsagainst KVVM volumes — hotplugs missing disks via KubeVirtAddVolumeand unplugs removed disks viaRemoveVolume.ApplyVirtualMachineSpecsetsHotpluggable: true.blockDeviceRefschanges areActionApplyImmediate: thevmchangecomparator no longer requires VM restart for any block device changes (add, remove, replace, reorder).spec.blockDeviceRefs[].bootOrderfield: optional field to explicitly control boot priority. If not set, positional order is used.ApplyVirtualMachineSpec: removedClearDisks+ rebuild pattern, removed hotplug snapshot/reapply logic. Block device application extracted intoapplyBlockDeviceRefs/setBlockDeviceDisk.bootOrder >= 1and rejects duplicate values.Why do we need it, and what problem does it solve?
Previously, runtime disk management required creating
VirtualMachineBlockDeviceAttachment(VMBDA) resources. This PR enables the same capability directly through the VM spec — adding or removing entries inspec.blockDeviceRefson a running VM will hotplug/unplug disks immediately.What is the expected result?
spec.blockDeviceRefson a running VM → disk is hotplugged without restart.spec.blockDeviceRefson a running VM → disk is unplugged without restart.bootOrderon block devices → VM boots from the correct device.Checklist
Changelog entries