A Kubernetes-native controller that automates node upgrades through declarative upgrade plans.
In your Kubernetes, upgrading your nodes
This tool is used by Kubernetes cluster administrators to automate and manage node upgrades in a controlled, declarative manner using custom resource definitions (CRDs). It is ideal for environments requiring consistent, repeatable node upgrade policies with minimal manual intervention.
Upgrades should be designed to be idempotent to avoid issues during repeated executions. The controller runs highly privileged jobs with access to host IPC, network, PID namespaces, and root filesystem, so security considerations are critical. Node selection for upgrades is label-based and can be optionally opted in or out. The tool supports concurrency limits and optional cordon/drain behavior similar to kubectl.
Apply the system-upgrade-controller manifest via kubectl: kubectl apply -k github.com/rancher/system-upgrade-controller
Alternatively, use the release-specific manifest from the releases page, e.g., download and apply system-upgrade-controller.yaml from v0.4.0 release
kubectl apply -k github.com/rancher/system-upgrade-controller
Deploys the system-upgrade-controller to the Kubernetes cluster using the latest manifest.