From 96cabf7e4368e4e8778c27f65596a9914f09752a Mon Sep 17 00:00:00 2001 From: Nicolas Vazquez Date: Tue, 16 Sep 2025 07:19:20 -0300 Subject: [PATCH] [KVM] Allow passing the OS type machine for KVM XML domains through VM setting (#11569) * [KVM] Allow passing OS type machine to XML domains --- api/src/main/java/com/cloud/vm/VmDetailConstants.java | 1 + .../hypervisor/kvm/resource/LibvirtComputingResource.java | 3 +++ 2 files changed, 4 insertions(+) diff --git a/api/src/main/java/com/cloud/vm/VmDetailConstants.java b/api/src/main/java/com/cloud/vm/VmDetailConstants.java index ea5d209a5d4..596c861218f 100644 --- a/api/src/main/java/com/cloud/vm/VmDetailConstants.java +++ b/api/src/main/java/com/cloud/vm/VmDetailConstants.java @@ -41,6 +41,7 @@ public interface VmDetailConstants { String KVM_VNC_PORT = "kvm.vnc.port"; String KVM_VNC_ADDRESS = "kvm.vnc.address"; String KVM_VNC_PASSWORD = "kvm.vnc.password"; + String KVM_GUEST_OS_MACHINE_TYPE = "kvm.guest.os.machine.type"; // KVM specific, custom virtual GPU hardware String VIDEO_HARDWARE = "video.hardware"; diff --git a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index 42aa1130c52..11d7aa30bb8 100644 --- a/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -3306,6 +3306,9 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv } } guest.setIothreads(customParams.containsKey(VmDetailConstants.IOTHREADS)); + if (customParams.containsKey(VmDetailConstants.KVM_GUEST_OS_MACHINE_TYPE)) { + guest.setMachineType(customParams.get(VmDetailConstants.KVM_GUEST_OS_MACHINE_TYPE)); + } } guest.setUuid(uuid); if(!isGuestS390x()) {