From 39ed41e527901b7fa82a152cb31df7c1017d57a2 Mon Sep 17 00:00:00 2001 From: Alejandro Bonilla Date: Thu, 22 Oct 2026 10:38:16 -0400 Subject: [PATCH] feat: move OS type, CPU model and system options to the VM Basics tab (#1179) * feat: move OS type, CPU model and system options to the VM Basics tab OS Type, CPU Model and the CPU/system checkboxes (CPU pinning, USB tablet, TPM, EFI, Secure Boot and their persistent-state options) are core machine settings, but they were buried at the bottom of Advanced Options. Show them on the Basics tab, next to CPU and memory. Install Guest Agent stays in Advanced Options because it changes the cloud config. It now sits right below the User Data editor (the data it modifies) through a new optional slot in the Cloud Config component. Only the placement changes; behaviour and validation are untouched. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Alejandro Bonilla * feat: follow the review on the VM Basics layout - Basics now reads OS Type and CPU Model, then CPU and memory, then the system checkboxes, the CPU Manager banner and the SSH key, in the order proposed in review. The checkboxes sit in one wrapper; USB Tablet drops its extra mt-20 and uses the plain `check` class like the others. - Advanced Options puts Maintenance Strategy on the same row as Run Strategy; Reserved Memory moves to its own row. - The moved labels leave harvester.virtualMachine.advancedOptions: TPM, EFI, Secure Boot and the persistent-state labels are now under harvester.virtualMachine.systemOptions (also used by the template version editor), and the CPU Manager banner text is under harvester.virtualMachine.cpuPinning.cpuManager. Co-Authored-By: Claude Opus 5.5 Signed-off-by: Alejandro Bonilla * feat: match the VM template form and address review on the VM Basics layout The VM template form still had OS Type, CPU Model and the CPU/system checkboxes under Advanced Options, so creating a VM and creating a template put them in different places. Use the same layout as the VM form: - Basics: OS Type and CPU Model, then CPU and memory, then the CPU Pinning, USB Tablet, TPM, EFI and Secure Boot checkboxes (plus the persistent-state options when they apply), then the SSH key. - Advanced Options: Run Strategy and Maintenance Strategy on one row, Reserved Memory on its own row, then Show more and Cloud Config. Install Guest Agent sits right below the User Data editor through the after-user-data slot. Review follow-ups on both forms: - OS Type shows an info icon in create mode warning that selecting an image with an OS label on the Volumes tab may change the OS Type selection, now that OS Type comes before the volumes. - The CPU Manager banner under CPU Pinning is info in create mode, where it only explains why the checkbox is disabled, and stays a warning in edit mode, where it is about the restart. Only placement and presentation change; behaviour and validation are untouched. Signed-off-by: Alejandro Bonilla --------- Signed-off-by: Alejandro Bonilla Co-authored-by: Claude Opus 5.5 --- ...erhci.io.virtualmachinetemplateversion.vue | 188 ++++++++------- .../VirtualMachineCloudConfig/index.vue | 2 + .../edit/kubevirt.io.virtualmachine/index.vue | 228 +++++++++--------- pkg/harvester/l10n/en-us.yaml | 11 +- 4 files changed, 220 insertions(+), 209 deletions(-) diff --git a/pkg/harvester/edit/harvesterhci.io.virtualmachinetemplateversion.vue b/pkg/harvester/edit/harvesterhci.io.virtualmachinetemplateversion.vue index 753182a4..aa4fd34f 100644 --- a/pkg/harvester/edit/harvesterhci.io.virtualmachinetemplateversion.vue +++ b/pkg/harvester/edit/harvesterhci.io.virtualmachinetemplateversion.vue @@ -278,6 +278,25 @@ export default { name="Basics" :label="t('harvester.vmTemplate.tabs.basics')" > +
+
+ +
+
+ +
+
+ +
+ + + + + + + + + + + + + +
+
- -
- -
- - -
+
+ + - -
+
+ +
-
-
- -
-
-
+ > + + - - - - - - - - - - - - - - - - - - - - - {{ t('harvester.virtualMachine.cpuPinning.restartVMMessage') }} - - diff --git a/pkg/harvester/l10n/en-us.yaml b/pkg/harvester/l10n/en-us.yaml index 24a858dd..6c7d04a0 100644 --- a/pkg/harvester/l10n/en-us.yaml +++ b/pkg/harvester/l10n/en-us.yaml @@ -687,6 +687,7 @@ harvester: virtualMachine: label: Virtual Machines osType: OS Type + osTypeTooltip: Selecting an image with an OS label on the Volumes tab may change the OS Type selection. cpuModel: label: CPU Model fetchError: 'Failed to load CPU model configuration: {error}' @@ -758,6 +759,10 @@ harvester: tooltip: Enable CPU Pinning brings better performance and reduce latency for the virtual machine restartVMMessage: Changing the CPU Pinning setting requires a virtual machine reboot for the change to take effect migrationMessage: This virtual machine can only be migrated to a target node that has CPU Manager enabled, as CPU Pinning is configured. + cpuManager: + prefix: You must enable CPU Manager for at least one node in + middle: 'host page' + suffix: to enable CPU Pinning for VM restartNow: |- {restart, select, true {Restart} @@ -767,13 +772,9 @@ harvester: genericLoginError: Authentication failed. Please re-log in and try again. installAgent: Install guest agent enableUsb: Enable USB Tablet - advancedOptions: + systemOptions: tpm: Enable TPM tpmPersistentState: TPM Persistent State - cpuManager: - prefix: You must enable CPU Manager for at least one node in - middle: 'host page' - suffix: to enable CPU Pinning for VM efiEnabled: Booting in EFI mode efiPersistentState: EFI Persistent State secureBoot: Secure Boot