From 4882a8a40be3540b745678ab9153488815e47215 Mon Sep 17 00:00:00 2001 From: Antonio Cardace Date: Tue, 25 Jul 2023 22:13:57 +0200 Subject: [PATCH] Fix cluster-wide MachineType (#2437) Since https://github.com/kubevirt/kubevirt/pull/8293 there is a new field for setting the cluster-wide MachineType, let's use that along the old one (for compatibility reasons). Signed-off-by: Antonio Cardace --- controllers/operands/kubevirt.go | 13 +++++++++++++ controllers/operands/kubevirt_test.go | 7 +++++++ 2 files changed, 20 insertions(+) diff --git a/controllers/operands/kubevirt.go b/controllers/operands/kubevirt.go index 4d59847e5d..576d958302 100644 --- a/controllers/operands/kubevirt.go +++ b/controllers/operands/kubevirt.go @@ -35,6 +35,11 @@ const ( machineTypeEnvName = "MACHINETYPE" ) +const ( + DefaultAMD64OVMFPath = "/usr/share/OVMF" + DefaultAMD64EmulatedMachines = "q35*,pc-q35*" +) + var ( useKVMEmulation = false ) @@ -426,6 +431,14 @@ func getKVConfig(hc *hcov1beta1.HyperConverged) (*kubevirtcorev1.KubeVirtConfigu if val, ok := os.LookupEnv(machineTypeEnvName); ok { if val = strings.TrimSpace(val); val != "" { config.MachineType = val + + config.ArchitectureConfiguration = &kubevirtcorev1.ArchConfiguration{ + Amd64: &kubevirtcorev1.ArchSpecificConfiguration{ + MachineType: val, + OVMFPath: DefaultAMD64OVMFPath, + EmulatedMachines: strings.Split(DefaultAMD64EmulatedMachines, ","), + }, + } } } diff --git a/controllers/operands/kubevirt_test.go b/controllers/operands/kubevirt_test.go index 26924a5e95..ad899e01b7 100644 --- a/controllers/operands/kubevirt_test.go +++ b/controllers/operands/kubevirt_test.go @@ -229,6 +229,7 @@ Version: 1.2.3`) Expect(*foundResource.Spec.Configuration.DeveloperConfiguration.DiskVerification.MemoryLimit).Should(Equal(kvDiskVerificationMemoryLimit)) Expect(foundResource.Spec.Configuration.MachineType).Should(Equal("machine-type")) + Expect(foundResource.Spec.Configuration.ArchitectureConfiguration.Amd64.MachineType).Should(Equal("machine-type")) Expect(foundResource.Spec.Configuration.SMBIOSConfig).ToNot(BeNil()) Expect(foundResource.Spec.Configuration.SMBIOSConfig.Family).Should(Equal("smbios family")) @@ -309,6 +310,11 @@ Version: 1.2.3`) FeatureGates: []string{"wrongFG1", "wrongFG2", "wrongFG3"}, } existKv.Spec.Configuration.MachineType = "wrong machine type" + existKv.Spec.Configuration.ArchitectureConfiguration = &kubevirtcorev1.ArchConfiguration{ + Amd64: &kubevirtcorev1.ArchSpecificConfiguration{ + MachineType: "wrong machine type", + }, + } existKv.Spec.Configuration.SMBIOSConfig = &kubevirtcorev1.SMBiosConfiguration{ Family: "wrong family", Product: "wrong product", @@ -365,6 +371,7 @@ Version: 1.2.3`) )) Expect(foundResource.Spec.Configuration.MachineType).Should(Equal("machine-type")) + Expect(foundResource.Spec.Configuration.ArchitectureConfiguration.Amd64.MachineType).Should(Equal("machine-type")) Expect(foundResource.Spec.Configuration.SMBIOSConfig).ToNot(BeNil()) Expect(foundResource.Spec.Configuration.SMBIOSConfig.Family).Should(Equal("smbios family"))