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 5ffbe41b..3370816c 100644 --- a/pkg/harvester/models/harvester/node.js +++ b/pkg/harvester/models/harvester/node.js @@ -186,9 +186,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() {