| name | upgrading-network-operator |
| description | Upgrade NVIDIA Network Operator to a new version. Use when changing NETOP_VERSION, running upgrade-network-operator.sh, migrating between operator versions, handling CRD schema changes, or rolling back a failed upgrade. |
Upgrading Network Operator
Upgrade the Network Operator Helm release to a new version with zero-downtime node rolling.
Supported Versions
24.7.0, 24.10.0, 24.10.1, 25.1.0, 25.4.0, 25.7.0, 25.10.0, 26.1.0 (default)
Pre-Upgrade Checklist
- Verify target version exists:
helm search repo nvidia/network-operator --versions
- Check K8s compatibility (26.1.0 requires K8s 1.32+)
- Generate config for new version with
CREATE_CONFIG_ONLY=1 first
- Review YAML diffs between old and new generated configs
- Ensure all nodes are healthy:
kubectl get nodes
Upgrade Procedure
export NETOP_VERSION="26.1.0"
source global_ops.cfg
export CREATE_CONFIG_ONLY=1
cd usecase/${USECASE}
${NETOP_ROOT_DIR}/ops/mk-config.sh
export CREATE_CONFIG_ONLY=0
${NETOP_ROOT_DIR}/upgrade/upgrade-network-operator.sh
What the upgrade script does
- Cordons all worker nodes
- Scales Network Operator deployment to 0 replicas
- Regenerates config:
mk-values.sh, mk-nic-cluster-policy.sh, mk-network-cr.sh
- Applies updated NicClusterPolicy
- Applies new CRDs via
applycrds.sh
- Applies network resources via
apply-network-cr.sh
- Updates NIC config (if
NIC_CONFIG_ENABLE=true)
- Runs
helm upgrade
- Uncordons worker nodes
Post-Upgrade Verification
kubectl get pods -n ${NETOP_NAMESPACE}
./ops/getnetwork.sh
./ops/checksriovstate.sh
./ops/syncsriov.sh
./ops/checkipam.sh
Version-Specific Notes
| Version | Key Changes |
|---|
| 25.10.* | MAINTENANCE_OPERATOR_ENABLE defaults to NIC_CONFIG_ENABLE value |
| 26.1.* | MAINTENANCE_OPERATOR_ENABLE defaults to true independently |
| 25.1.0 | Uses nicConfigurationOperator parameter (older API) |
| 25.4.0+ | Uses deployNodeFeatureRules for NFD |
Rollback
If upgrade fails, restore previous config and re-run:
export NETOP_VERSION="<previous_version>"
source global_ops.cfg
${NETOP_ROOT_DIR}/upgrade/upgrade-network-operator.sh
Common Failures
| Symptom | Fix |
|---|
| Helm chart not found | Verify NETOP_VERSION and helm repo update |
| CRD validation errors | Check feature gate compatibility with new version |
| Nodes stuck cordoned | Run source ops/cordon.sh && uncordon |
| Finalizers blocking delete | ./ops/getfinalizers.sh, then patch to remove |