Skip to content

feat(talos)!: update to Talos 1.14 and topf 0.6.0 - #2372

Merged
onedr0p merged 2 commits into
mainfrom
feat/talos-1.14
Sep 3, 2026
Merged

feat(talos)!: update to Talos 1.14 and topf 0.6.0#2372
onedr0p merged 2 commits into
mainfrom
feat/talos-1.14

Conversation

@onedr0p

@onedr0p onedr0p commented Sep 3, 2026

Copy link
Copy Markdown
Owner

Summary

  • Bump topf to v0.6.0 and talosctl / talosVersion to 1.14.0.
  • Talos 1.14 generates typed config documents and rejects the deprecated v1alpha1 fields the template patched (machine.install, machine.kubelet, cluster.network, cluster.apiServer, ...), so every patch under template/config/talos is rewritten to the new document kinds. Only machine.certSANs, machine.features and cluster.etcd remain v1alpha1.
  • The auto-generated KubeFlannelCNIConfig and PodSecurity admission documents are removed with document-level $patch: delete; control-plane scheduling is a taint delete on KubeNodeConfig.
  • Install disk is an UnattendedInstallConfig CEL selector. Device paths also match disk.symlinks, so /dev/disk/by-id/... keeps working; serials use disk.serial.
  • Weekly FilesystemTrimConfig (the generator default, now explicit) and FilesystemScrubConfig for XFS volumes.
  • Workload isolation (sandboxd) is explicitly disabled. Talos 1.14 turns it on for generated configs, which breaks hostPID / host-mount workloads (node-exporter, GPU plugins, in-tree iSCSI) and would silently switch on for existing users on their first 1.14 apply. The patch documents how to opt in.
  • ghcr.io/siderolabs/installer is no longer published as of 1.14, which is why renovate never offered the update. The talosVersion annotation now tracks siderolabs/talos GitHub releases and the talos group matches that package only.
  • home-operations/talosctl-cluster-action bumped to v0.2.2; v0.2 requires talosctl 1.14. Supersedes feat(github-action)!: Update action home-operations/talosctl-cluster-action (v0.1.6 ➔ v0.2.1) - autoclosed #2333.

Upgrade notes for existing clusters

A 1.13 node rejects the new documents, so run just talos upgrade-node <node> before just talos apply-node <node>. kubernetesVersion stays at v1.36.4 (#2362 covers 1.37).

Verification

  • All eight valid fixtures: just configure, oxfmt --check, just talos render, talosctl validate --mode metal with topf 0.6.0 / talosctl 1.14.0.
  • Serial and by-id install disk variants rendered and validated; an invalid CEL field fails validation, so the selectors are checked.
  • Rendered documents inspected for each migrated setting; no deprecated fields remain.
  • renovate-config-validator and zizmor pass.

Talos 1.14 generates typed config documents and rejects the deprecated
v1alpha1 fields the template patched, so every patch is rewritten to the
new document kinds. Flannel and the PodSecurity admission document are
removed with document-level deletes, control-plane scheduling is a taint
delete on KubeNodeConfig, the install disk is a CEL selector that also
matches by-id symlinks, and workload isolation is explicitly disabled to
keep hostPID and host-mount workloads working.

The ghcr.io/siderolabs/installer image is no longer published, so the
talosVersion renovate annotation now tracks siderolabs/talos releases.
talosctl-cluster-action v0.2 requires talosctl 1.14, so it is bumped too.

Signed-off-by: Devin Buhl <devin@buhl.casa>
Signed-off-by: Devin Buhl <devin@buhl.casa>
@onedr0p
onedr0p merged commit a25d0ab into main Sep 3, 2026
33 checks passed
@onedr0p
onedr0p deleted the feat/talos-1.14 branch September 3, 2026 23:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant