feat: nested virtualization support per guest on the same kvm host
- Dominant language
- Java
- Stars
- 3.1k
- Forks
- 1.4k
- Avg merge
- 6d 19h
- Merged PRs (30d)
- 32
Description
##### ISSUE TYPE
* Feature Idea
##### DESCRIPTION
As a CS user, I would like to be able to create a Guest / VM with `guest.cpu.mode=host-passtrough` and also a second VM without `guest.cpu.mode passtrough` on the same KVM host, that's not possible, because `guest.cpu.mode` is applied to the KVM host globally.
##### PROPOSAL
Custom compute offering `large.metal` ( similar to flavors in AWS with nested virtualization capability ) when one can set `allow.additional.vm.configuration.list.kvm` ( https://www.shapeblue.com/cloudstack-feature-first-look-enable-sending-of-arbitrary-configuration-data-to-vms/ ), probably doable with `` XML snippet ( see for more info https://libvirt.org/formatdomain.html#cpu-model-and-topology ) or with simple tick-checkbox for enabling nested virtualization.
It's important to have this ability directly on the offering to support for example CloudStack CAPI implementation, here https://github.com/kubernetes-sigs/cluster-api-provider-cloudstack/blob/main/templates/cluster-template.yaml#L72
Contributor guide
Research direction
Start with the issue's custom compute offering proposal and the referenced cluster-template.yaml, then review the linked libvirt CPU model and topology documentation. Done means nested virtualization can be selected per offering or guest, while another VM on the same KVM host can run without host-passthrough mode.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java, kubernetes
- Domain
- cloud, infrastructure
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100