apache / apache/cloudstack

feat: nested virtualization support per guest on the same kvm host

Open
#7,600 0 comments 3 reactions 0 assignees View on GitHub
component:agent component:kvm type:config type:new-feature
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.