Running Multiple Driver Versions¶
One cluster can run different driver versions for different NPU families or node groups. This guide covers the container driver mode described in NPU Driver Upgrades.
Driver Settings and Node Selection¶
In Helm values, use the top-level driver block for shared image and resource settings, and driver.instances for settings specific to each node group. Each instance overrides the values it specifies and uses the shared settings for omitted values. driver.upgradePolicy applies to all instances.
For multiple driver versions, set driver.deployDefault: false and specify the target nodes and version in each instance. When deployDefault is true, nodes not selected by any instance may also receive a driver with the shared settings. Instances still inherit the shared settings when this option is false.
Each instance selects its target nodes with nodeSelector. This field is not inherited, so specify it on every instance. If several instances match a node, the most specific instance whose selector includes all the other matching conditions takes precedence. For example, an instance that selects an NPU family and env: canary takes precedence over one that selects only the same family.
---
config:
htmlLabels: false
flowchart:
curve: linear
---
flowchart TD
A["Find RBLNDriver selectors<br/>matching the node"] --> B{"Unique most specific<br/>selector?"}
B -->|"Yes"| C["Assign the owner<br/>Set the owner label"]
C --> D["Schedule the driver Pod<br/>using the owner label"]
B -->|"No"| E["Report selector conflict<br/>Keep the current driver"] If several instances match but no single instance takes precedence, the operator reports the reason ConflictingNodeSelector. Adjust the conflicting selectors. The labels rebellions.ai/npu.driver.owner and rebellions.ai/npu.deploy.driver are managed by the operator and cannot be used in nodeSelector.
Check that the instances' nodeSelector settings cover every node that needs a driver. When changing deployDefault from true to false on an existing installation, include the nodes previously handled by the default driver.
Configuration Examples¶
The following examples show versions assigned directly by NPU family and a shared version running alongside a canary version within one family. Adjust the versions and node selectors for your environment.
Specify the driver version directly on each instance. ATOM™ nodes use 3.4.1, and Rebel100™ nodes use 3.5.1.
Rebel100™ nodes use the shared version 3.5.1, with a different version applied to a subset of nodes. Label the nodes that should use the other version with env: canary.
Verifying Instance Routing¶
The node label rebellions.ai/npu.driver.owner records the selected instance's resource name.