Helm Configuration Examples¶
Choose a configuration and save its YAML as npu-values.yaml. Each example is for a new installation; omitted values use the chart defaults.
| Deployment configuration | Use case |
|---|---|
| Driver container + Device Plugin | Install the driver through a container and allocate NPUs to Pods |
| Host driver + Device Plugin | Use a host-installed driver |
| DRA allocation | Allocate NPUs through ResourceClaims |
| KubeVirt VM passthrough | Attach NPUs to VMs through Sandbox Device Plugin or DRA |
| Helm settings for mixed container and VM workloads | Enable the components needed for container and VM workloads |
| Driver versions by product family | Use different driver versions for each NPU family |
| RDS | Expose RDS devices to containers with allocated NPUs |
Common Preparation¶
| Item | Preparation |
|---|---|
| NFD | Installed in the cluster |
drivercred | Image pull secret for driver containers. Update driver.imagePullSecrets if the name differs. |
<...> | Replace with values for your environment |
| Driver version | Select an image for the NPU family, OS, and kernel. Every family using the version needs an image. |
Then follow Helm installation. For an existing installation, retain its settings as described in Applying Helm values.
Driver Container + Device Plugin¶
Install the driver through a container on nodes without a host driver, and advertise rebellions.ai/npu.
| npu-values.yaml | |
|---|---|
Set <DRIVER_VERSION> to the version to use. For different versions by family, use driver versions by product family.
Host Driver + Device Plugin¶
Use nodes with a host-installed driver and working rbln-smi. Manage driver installation and updates on the host.
| npu-values.yaml | |
|---|---|
DRA Allocation¶
Allocate NPUs with the DRA Kubelet Plugin on Kubernetes 1.34 or later. This configuration uses a driver container and the Container Toolkit.
| npu-values.yaml | |
|---|---|
Set <DRIVER_VERSION> to the version to use. The DRA Kubelet Plugin cannot be enabled alongside either the Device Plugin or the Sandbox Device Plugin.
KubeVirt VM Passthrough¶
For NPU nodes used only for VMs, configure IOMMU, VFIO, and KubeVirt, then choose the Sandbox Device Plugin or DRA to allocate NPUs. See Prerequisites for the requirements of each method. The guest VM needs a driver to use its NPU.
Attach an NPU by specifying its product-specific Kubernetes resource in the VM's hostDevices.
Request an NPU through a ResourceClaim using the vfio-npu.rebellions.ai DeviceClass.
Helm Settings for Mixed Container and VM Workloads¶
Enable the components needed for container and VM workloads. Set the default workload mode to container and select VM nodes with the workload label. For node selection, follow Separate NPU nodes for containers and VMs.
| npu-values.yaml | |
|---|---|
| npu-values.yaml | |
|---|---|
Driver Versions by Product Family¶
Assign different driver versions to Rebel100™ and ATOM™ nodes. Replace both version values for your environment.
With driver.deployDefault: false, nodes not selected by an instance receive no driver. Select every node that needs a driver.
RDS¶
RDS exposes NPU and RDS devices to containers on Rebel100™ nodes through Device Plugin v0.5.0 or DRA Kubelet Plugin v0.2.1.
| Item | Requirement |
|---|---|
| Driver | RDS-capable image for the target OS and kernel |
| DRA Kubelet Plugin | v0.2.1 |
| Device Plugin | v0.5.0 |
| Container Toolkit | v0.2.3 or later |
| Kubernetes (DRA only) | 1.34 or later |
NVMe Data Loss
RDS takes control of the selected NVMe devices. Select only devices dedicated to RDS, with no operating system or data you need to retain.
| Value | What to specify |
|---|---|
<RDS_DRIVER_VERSION> | RDS-capable driver version |
<RDS_NODE_NAME> | Target node's metadata.name |
<NVME_PCI_ADDRESS> | NVMe PCI address, such as 0000:08:00.0 |
After deploying the NPU Operator with the RDS configuration, follow the RDS Support guide to set the rebellions.ai/rds.present=true node label.