Upgrading the RBLN NPU Operator¶
Upgrade through Helm or OLM, whichever was used for the installation. For driver replacement, see NPU driver upgrades.
Before upgrading¶
Review the support matrix and release changes and back up the existing deployment configuration.
For Helm installations, compare the existing user settings with the target chart's defaults.
Upgrading with Helm¶
Use the existing release name and namespace. Refer to the NPU Operator Helm settings and specify the values to override in npu-values.yaml.
Upgrading with OpenShift / OLM¶
When OLM detects a new version in the channel tracked by the Subscription, it creates an InstallPlan according to the upgrade path.
Check the current version, target version, and approval strategy.
In the Subscription, status.installedCSV identifies the current version and status.currentCSV identifies the version selected by OLM. status.installPlanRef.name identifies the InstallPlan for this Subscription.
Once an InstallPlan is created, spec.installPlanApproval determines how the upgrade proceeds.
installPlanApproval | Upgrade behavior |
|---|---|
Automatic | OLM approves the InstallPlan and upgrades automatically |
Manual | OLM upgrades after you approve the InstallPlan |
For Manual, inspect the InstallPlan referenced by the Subscription, check its target version, and approve it.
Verifying the upgrade¶
Check the RBLNDriver and RBLNClusterPolicy instances directly, regardless of whether Helm or OLM reports completion.
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblndriver --all --timeout=600s
rblndriver.rebellions.ai/rbln-driver-rebel100 condition met
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblnclusterpolicy/rbln-cluster-policy --timeout=600s
rblnclusterpolicy.rebellions.ai/rbln-cluster-policy condition met
$ kubectl get rblnclusterpolicy rbln-cluster-policy \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state'
NAME STATE
rbln-cluster-policy ready
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblndriver --all --timeout=600s
rblndriver.rebellions.ai/rbln-driver-atom condition met
$ kubectl wait --for=jsonpath='{.status.state}'=ready \
rblnclusterpolicy/rbln-cluster-policy --timeout=600s
rblnclusterpolicy.rebellions.ai/rbln-cluster-policy condition met
$ kubectl get rblnclusterpolicy rbln-cluster-policy \
-o 'custom-columns=NAME:.metadata.name,STATE:.status.state'
NAME STATE
rbln-cluster-policy ready
All target resources must report ready, and the required Pods must be ready.