Skip to content

kubevirt/kubevirt-aie

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27,211 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

KubeVirt AIE

KubeVirt Accelerated Infrastructure Enablement (AIE) is a release-branch fork of KubeVirt that produces an alternative virt-launcher container image based on CentOS Stream 10 with NVIDIA-optimised (el10nv) RPMs for libvirt and QEMU. The image includes IOMMU-FD support and backported device patches required for GPU passthrough on NVIDIA ARM64 platforms such as GraceHopper, GraceBlackwell, and Vera Rubin.

This repository tracks the upstream KubeVirt release-1.8 branch with a minimal set of additional commits. Only the virt-launcher image is produced here; all other KubeVirt components (virt-operator, virt-api, virt-controller, virt-handler) are consumed from the standard KubeVirt release.

Why a separate fork?

GPU passthrough on ARM64 depends on a newer userspace stack (IOMMU-FD, backported QEMU device patches, libvirt changes) that is only available in the CentOS Stream 10 el10nv RPM variants. Since the standard KubeVirt virt-launcher is based on CentOS Stream 9, the alternative image must be built and delivered separately.

The WG AIE requires that changes carried in this fork are upstreamed back into kubevirt/kubevirt as soon as possible. Retiring this fork requires upstreaming at two levels: the el10nv RPM patches must be integrated into the main CentOS Stream 10 repositories by the AIE SIG, and the broader CentOS Stream 10 transition (VEP #210) must land in KubeVirt (planned across v1.9-v1.11). Only once both are complete can the standard KubeVirt virt-launcher build include the necessary hardware enablement and this fork be retired.

KubeVirt WG AIE

The KubeVirt Accelerated Infrastructure Enablement Working Group (WG AIE) aims to track and where possible extend KubeVirt in line with the CentOS Stream Accelerated Infrastructure Enablement SIG. The working group is a stakeholder of both sig-compute and sig-network within the KubeVirt community.

Chairs:

Meetings:

CentOS Stream AIE SIG

This work is aligned with the CentOS Accelerated Infrastructure SIG, which produces the el10nv RPM variants of libvirt and QEMU in CentOS Stream 10. The AIE SIG focuses on enabling accelerated and heterogeneous computing infrastructure, with packages optimised for NVIDIA hardware available from CentOS Stream 10 koji. WG AIE coordinates the integration of these packages into the KubeVirt ecosystem. For more information on the broader CentOS AIE SIG initiative, see the CentOS Accelerated Infrastructure SIG documentation.

Architecture

The kubevirt-aie virt-launcher image is one component of a larger architecture for NVIDIA hardware enablement in KubeVirt. The full system consists of four components:

Component Repository Summary
kubevirt-aie virt-launcher This repo CentOS Stream 10-based virt-launcher with el10nv RPMs for libvirt and QEMU
AIE webhook kubevirt-aie-webhook Mutating admission webhook that replaces the launcher image, injects IOMMUFD resource limits, and optionally adds node affinity
IOMMUFD device plugin iommufd-device-plugin Kubernetes device plugin that opens and configures /dev/iommu on the host and passes the file descriptor to virt-launcher via SCM_RIGHTS
HCO integration hyperconverged-cluster-operator HCO operand handlers that deploy and reconcile the webhook and device plugin on OpenShift

For detailed design documents covering each component, see the kubevirt-aie-veps repository.

Rebasing on upstream releases

Manual rebases onto new v1.8.z releases from the upstream kubevirt/kubevirt release-1.8 branch will be performed on this branch. The patch delta is kept intentionally small to minimise rebase friction.

What this fork changes

The delta against the upstream release-1.8 branch is intentionally small:

  • NV RPM sync infrastructure (hack/sync-nv-rpms.sh) -- Automated discovery and download of el10nv RPMs from CentOS Stream 10 koji
  • WORKSPACE and rpm/BUILD.bazel updates -- Bazel build definitions for the el10nv RPM packages
  • CentOS Stream 10 builder (hack/builder/Dockerfile.cs10) -- Build toolchain for multi-architecture (x86_64, aarch64) image builds
  • WIP image push script (hack/push-virt-launcher-pr.sh) -- Convenience script for building and pushing images from feature branches

Quick start

Syncing NV RPMs

# Auto-discover latest el10nv versions from koji
hack/sync-nv-rpms.sh

# Override specific versions
LIBVIRT_NV_VERSION=11.10.0 QEMU_NV_VERSION=10.1.0 hack/sync-nv-rpms.sh

Building and pushing a WIP virt-launcher image

# Push from current branch with auto-generated tag
hack/push-virt-launcher-pr.sh

# Override registry and tag
DOCKER_PREFIX=quay.io/myorg DOCKER_TAG=test-1 hack/push-virt-launcher-pr.sh

Building release images

DOCKER_PREFIX=quay.io/kubevirt/kubevirt-aie \
DOCKER_TAG=v1.8.0-aie-nv \
BUILD_ARCH=amd64,crossbuild-aarch64 \
make bazel-push-images

Upstream KubeVirt

This fork is based on KubeVirt, a virtual machine management add-on for Kubernetes. For general KubeVirt documentation, see:

Community

License

KubeVirt is distributed under the Apache License, Version 2.0.

Copyright The KubeVirt Authors.

About

A temporary KubeVirt fork aligned with the CentOS Stream Accelerated Infrastructure Enablement SIG.

Resources

License

Code of conduct

Contributing

Security policy

Stars

1 star

Watchers

1 watching

Forks

Packages

 
 
 

Contributors