Feature Gate Status on Arm64

This page is based on https://github.com/kubevirt/kubevirt/issues/9749 It records the feature gate status on Arm64 platform. Here is the explanation of the status:

  • Supported: the feature gate support on Arm64 platform.
  • Not supported yet: there are some dependencies of the feature gate not support Arm64, so this feature does not support for now. We may support the dependencies in the future.
  • Not supported: The feature gate is not support on Arm64.
  • Not verified: The feature has not been verified yet.
FEATURE GATESTATUSNOTES
ExpandDisksGateNot supported yetCDI is needed
CPUManagerSupporteduse taskset to do CPU pinning, do not support kvm-hint-dedicated (this is only works on x86 platform)
NUMAFeatureGateNot supported yetNeed to support Hugepage on Arm64
IgnitionGateSupportedThis feature is only used for CoreOS/RhCOS
LiveMigrationGateSupportedVerified live migration with masquerade network
SRIOVLiveMigrationGateNot verifiedNeed two same Machine and SRIOV device
HypervStrictCheckGateNot supportedHyperv does not work on Arm64
SidecarGateSupported 
GPUGateNot verifiedNeed GPU device
HostDevicesGateNot verifiedNeed GPU or sound card
SnapshotGateSupportedNeed snapshotter support https://github.com/kubernetes-csi/external-snapshotter
VMExportGatePartially supportedNeed snapshotter support https://kubevirt.io/user-guide/operations/export_api/, support exporting pvc, not support exporting DataVolumes and MemoryDump which rely on CDI
HotplugVolumesGateNot supported yetRely on datavolume and CDI
HostDiskGateSupported 
VirtIOFSGateSupported 
MacvtapGateNot supported yetquay.io/kubevirt/macvtap-cni not support Arm64, https://github.com/kubevirt/macvtap-cni#deployment
PasstGateSupportedVM have same ip with pods; start a process for network /usr/bin/passt —runas 107 -e -t 8080
DownwardMetricsFeatureGateneed more informationIt used to let guest get host information, failed on both Arm64 and x86_64.

The block is successfully attached and can see the following information:
 -blockdev {“driver”:”file”,”filename”:”/var/run/kubevirt-private/downwardapi-disks/vhostmd0”,”node-name”:”libvirt-1-storage”,”cache”:{“direct”:true,”no-flush”:false},”auto-read-only”:true,”discard”:”unmap”}

But unable to get information via vm-dump-metrics:

LIBMETRICS: read_mdisk(): Unable to read metrics disk
LIBMETRICS: get_virtio_metrics(): Unable to export metrics: open(/dev/virtio-ports/org.github.vhostmd.1) No such file or directory
LIBMETRICS: get_virtio_metrics(): Unable to read metrics
NonRootDeprecatedSupported 
NonRootSupported 
RootSupported 
ClusterProfilerSupported
WorkloadEncryptionSEVNot supportedSEV is only available on x86_64
VSOCKGateSupported 
HotplugNetworkIfacesGateNot supported yetNeed to setup multus-cni and multus-dynamic-networks-controller: https://github.com/k8snetworkplumbingwg/multus-cni
cat ./deployments/multus-daemonset-thick.yml | kubectl apply -f -https://github.com/k8snetworkplumbingwg/multus-dynamic-networks-controller
kubectl apply -f manifests/dynamic-networks-controller.yaml

Currently, the image ghcr.io/k8snetworkplumbingwg/multus-cni:snapshot-thick does not support Arm64 server. For more information please refer to https://github.com/k8snetworkplumbingwg/multus-cni/pull/1027.
CommonInstancetypesDeploymentGateNot supported yetSupport of common-instancetypes instancetypes needs to be tested, common-instancetypes preferences for ARM workloads are still missing