Skip to content

Quickstart

This walks through installing tuppr and running one Talos and one Kubernetes upgrade. It assumes you have granted Talos API access to the controller namespace - see Requirements.

Terminal window
helm install tuppr oci://ghcr.io/home-operations/charts/tuppr \
--namespace system-upgrade

Every chart value is documented in the generated Helm chart values reference.

Create a TalosUpgrade. This is the minimal form - one target version applied to every node, sequentially:

apiVersion: tuppr.home-operations.com/v1alpha1
kind: TalosUpgrade
metadata:
name: cluster
spec:
talos:
# renovate: datasource=docker depName=ghcr.io/siderolabs/talos
version: v1.14.5

tuppr health-checks the cluster, then upgrades each node in turn: drain → talosctl upgrade → reboot → wait for the node to return Ready on the new version. Watch it:

Terminal window
kubectl get talosupgrade -w
kubectl describe talosupgrade cluster

Adding health checks, parallel batches, hooks, maintenance windows, and per-node overrides: Talos upgrades.

Create the (single) KubernetesUpgrade:

apiVersion: tuppr.home-operations.com/v1alpha1
kind: KubernetesUpgrade
metadata:
name: kubernetes
spec:
kubernetes:
# renovate: datasource=docker depName=ghcr.io/siderolabs/kubelet
version: v1.37.1
Terminal window
kubectl get kubernetesupgrade -w

There is exactly one KubernetesUpgrade per cluster; to upgrade again, edit spec.kubernetes.version on it. Details: Kubernetes upgrades.

You can apply both resources; tuppr never runs them concurrently. Whichever starts first runs to completion while the other waits in Pending, then the second starts automatically. See Upgrade coordination.