From aa9dd32cce62fd52bb171f4c06336817ea6762e7 Mon Sep 17 00:00:00 2001 From: Andy Lee Date: Mon, 19 May 2025 10:17:07 +0800 Subject: [PATCH] Change isKVMDisable condition (#294) * change condition to check isKVMDisable Signed-off-by: Andy Lee * change condition eq 0 Signed-off-by: Andy Lee * add allNotExist back Signed-off-by: Andy Lee --------- Signed-off-by: Andy Lee --- pkg/harvester/config/labels-annotations.js | 1 + pkg/harvester/models/harvester/node.js | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/harvester/config/labels-annotations.js b/pkg/harvester/config/labels-annotations.js index e52e577e..3cc0e693 100644 --- a/pkg/harvester/config/labels-annotations.js +++ b/pkg/harvester/config/labels-annotations.js @@ -66,4 +66,5 @@ export const HCI = { VM_DEVICE_ALLOCATION_DETAILS: 'harvesterhci.io/deviceAllocationDetails', SVM_BACKUP_ID: 'harvesterhci.io/svmbackupId', DISABLE_LONGHORN_V2_ENGINE: 'node.longhorn.io/disable-v2-data-engine', + K8S_ARCH: 'kubernetes.io/arch' }; diff --git a/pkg/harvester/models/harvester/node.js b/pkg/harvester/models/harvester/node.js index f71a5798..709771a2 100644 --- a/pkg/harvester/models/harvester/node.js +++ b/pkg/harvester/models/harvester/node.js @@ -185,9 +185,16 @@ export default class HciNode extends HarvesterResource { } get isKVMDisable() { + // Arm based + const isARMMachine = this.metadata.labels?.[HCI_ANNOTATIONS.K8S_ARCH]?.includes('arm'); + + if (isARMMachine) { + return this.status.capacity['devices.kubevirt.io/kvm'] && this.status.capacity['devices.kubevirt.io/kvm'] === '0'; + } + const allNotExist = !this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_AMD_CPU] && !this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_INTEL_CPU]; - return this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_AMD_CPU] === 'false' || this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_INTEL_CPU] === 'false' || allNotExist; + return allNotExist || this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_AMD_CPU] === 'false' || this.metadata?.labels?.[HCI_ANNOTATIONS.KVM_INTEL_CPU] === 'false'; } get stateDisplay() {