Upgrade Command
The upgrade command upgrades Talos OS on each node to the desired version specified in the installer image.
Flags
All flags can also be set via environment variables using the TOPF_ prefix and uppercasing the flag name (e.g. --reboot-mode → TOPF_REBOOT_MODE).
| Flag | Default | Description |
|---|---|---|
--dry-run |
false |
Only show what upgrades would be performed without actually upgrading |
--force |
false |
Force the upgrade (skip checks on etcd health and members, might lead to data loss) |
--reboot-mode |
default |
Reboot mode during upgrade: default uses kexec, powercycle does a full reboot |
--nodes-filter |
- | Regex pattern to filter which nodes to operate on (global flag) |
Behavior
- Pre-flight checks: Ensures all nodes are in the
Runningstage - Version comparison: Extracts schematic and version from the installer image and only upgrades nodes where either differs from the current state
- Per-node confirmation: Before each upgrade (unless
--confirm=false, see global flags) - Upgrade: Issues the upgrade command with the selected reboot mode (default: kexec)
- Stabilization: Waits 30 seconds after upgrade for the node to stabilize
Installer Image
Using talosVersion and schematicId (recommended)
To override the installer image for the entire cluster, set talosVersion and optionally schematicId in topf.yaml. Topf will automatically generate a cluster-level patch:
This generates factory.talos.dev/metal-installer/<schematicId>:v<talosVersion> as the base installer image. Since this patch is applied first, any subsequent machine.install.image patch (shared or node-level) will override it. The factory and platform can be customized via factory and platform in topf.yaml (or per node).
Manual installer image patch
Alternatively, manage the installer image explicitly via a patch. The target image for each node comes from the machine.install.image field in the assembled node configuration (i.e. the last patch takes precedence). The patch looks like:
all/00-install.yaml:
machine:
install:
image: factory.talos.dev/metal-installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.12.0
Per-node override
To upgrade a single node to a different version or schematic, add a node-specific patch that overrides the image:
node/node1/installer.yaml:
machine:
install:
image: factory.talos.dev/metal-installer/376567988ad370138ad8b2698212367b8edcb69b5fd68c80be1f2ec7d603b4ba:v1.13.0
Because node-level patches are merged last (see Configuration Model), this override applies only to that host.