NPU Driver Installation¶
The RBLN NPU Operator supports two ways to install the NPU kernel driver on each node. Pick one before deploying the operator chart:
- Container driver mode (
driver.enabled=true): The operator deploys a DaemonSet based on theRBLNDriverCR spec and installs and manages the kernel driver. Use this mode to manage driver installation, upgrades, and rollbacks through Kubernetes. - Host driver mode (
driver.enabled=false): You install the kernel driver directly on each node's host OS (for example, with the runfile installer, a distribution package, or DKMS) before deploying the operator. The operator detects the host driver and does not install, upgrade, or roll back the driver itself.
By default, the chart sets driver.enabled=false, so host driver mode is used unless you explicitly enable container driver mode.
This page covers both installation methods and how to verify the active mode for each node. For chart installation, see Installing the NPU Operator.
Container driver mode¶
Set driver.enabled=true when running helm install or helm upgrade. The operator creates the RBLNDriver CR, deploys the driver DaemonSet, and manages the kernel driver on each node.
For the full lifecycle, including driver image selection, upgrade rollout policy, manual upgrades, and upgrade exclusions for each node, see NPU Driver Upgrades.
Per-family driver images¶
Prepare driver images for each NPU family, OS, and kernel combination. To support several NPU families in one cluster, the operator resolves the driver image per family and builds each node pool's pull path from the node's rebellions.ai/npu.family label.
| Segment | Comes from | Example |
|---|---|---|
<registry>/<org> | driver.image.registry and the org part of driver.image.repository; do not include the family in either | repo.rebellions.ai/rebellions |
<family> | The node's rebellions.ai/npu.family label, inserted by the operator | atom |
<name> | The last segment of driver.image.repository | rbln-driver |
<version>-<kernel>-<os> | driver.image.tag plus the node's kernel and OS labels | 3.4.1-6.8.0-138-generic-ubuntu22.04 |
The operator inserts the family segment itself, so rebellions/rbln-driver becomes rebellions/atom/rbln-driver on an ATOM™ node. When configuring an RBLNDriver directly, also set spec.image to rebellions/rbln-driver without the family segment.
Check the following when preparing images:
- Every driver version your cluster runs must be published under the path of each family that uses it. A single
RBLNDrivercovering more than one family needs the same version available for all of them; use multiple driver versions when the versions differ. - The family label comes from a
NodeFeatureRulenamedrbln-npu-familythat the operator manages itself. The label carries the node's NPU product family in lowercase, such asatom. No manual node labeling is needed, but Node Feature Discovery must be running for the rule to take effect.
Before rolling out a pool, the operator checks that its image exists in the registry. A missing image is reported as DriverImageNotFound with the full image path. See the Helm chart's operator.driverImageCheck setting for when to disable this check.
Host driver mode¶
Install the kernel driver on every NPU node first (see the RBLN Driver Installation Guide) and confirm that rbln-smi is in the host's PATH. Then install the operator with driver.enabled=false:
Host driver detection requires rbln-smi
The driver manager initContainer detects the host driver by running rbln-smi --version through chroot. If rbln-smi is missing from the host's PATH, the node is treated as having no host driver. Confirm the binary is available before installing:
After installation, confirm the mode on each node as described in Verifying which mode is active per node.
With driver.enabled=false, the chart does not create the RBLNDriver CR or deploy the driver DaemonSet. This setting does not change how the other components are deployed. They require the kernel module to be loaded, regardless of how the driver was installed.
Operational responsibilities¶
- Kernel updates: if the host kernel is upgraded, you must reinstall the driver.
- Driver upgrades: use existing host management tools such as apt, yum, or DKMS. After the upgrade, reboot the node so the new kernel module is applied.
Mixed Clusters¶
Nodes in container driver mode and nodes in host driver mode can run together under a single RBLNClusterPolicy. Even with driver.enabled=true, the operator detects each node's state and uses the appropriate mode for that node.
Each time a driver pod starts, it checks for a host driver. The installation mode depends only on the node's state.
---
config:
htmlLabels: false
flowchart:
curve: linear
---
flowchart TD
A["Driver DaemonSet<br/>pod starts"] --> B{"Host driver<br/>detected?"}
B -->|"Yes"| C["Keep the host driver<br/>Skip container installation"]
B -->|"No"| D["Install and manage<br/>the container driver"]
C --> E["Other components use<br/>the node's kernel module"]
D --> E The Driver Manager initContainer detects the host driver with chroot /host rbln-smi --version. If it detects a host driver, it sets the node's rebellions.ai/npu.deploy.driver and rebellions.ai/npu.deploy.rbln-smd labels to pre-installed.
Automatic detection supports these two common setups:
- Some nodes can use host-installed drivers while others use container drivers. The operator detects the installation mode on each node, so you do not need to configure the mode separately for each node.
- To switch a node to host driver mode, install the kernel driver on the host and restart the driver pod. The driver pod detects the host driver and automatically stops the container-based driver installation.
If every node uses a host-installed driver, set driver.enabled=false.
Switching a node back to container driver mode
A node where a host-installed driver was detected keeps its pre-installed labels, and the operator does not revert them automatically. To let the container driver take over, remove the host driver first, then delete both labels:
rebellions.ai/npu.deploy.driver=true, the driver DaemonSet is scheduled on the node, and the container driver installs and manages the kernel module. Verifying which mode is active per node¶
After installation, check which mode each node is using:
true: the operator-managed container driver is active on the node.pre-installed: the operator detected a host driver and skipped container driver installation.rebellions.ai/npu.deploy.rbln-smdis alsopre-installed, which indicates that RSMD is not deployed on this node.