Skip to content

Support modernizing machine config version contracts for existing clusters #3260

Description

@jeffbehl-beep

Problem

Machine configs generated by Omni stay pinned to the version contract of the Talos version the cluster was created with. Clusters upgraded over time keep old-format configs indefinitely: features that depend on newer config formats (e.g. multi-doc discovery service configuration) remain unavailable, and long-lived fleets accumulate legacy config shapes.

What

A user-initiated way to bump a cluster's machine config version contract. Direction from planning discussion: on bump, Omni regenerates the base config at the new contract; config patches that conflict with or are invalid under the new contract must be fixed by the user, with Talos rejecting invalid configs so the cluster stays healthy on its current config until patches are resolved — no silent breakage.

Open design question: bump first and fix patches reactively, or prepare and verify a migration before bumping the contract.

Why

  • Features gated on newer config formats are inaccessible to long-lived clusters
  • The same modernization story applies to Terraform-provider users following reproducible config generation outside Omni
  • Reduces long-tail support burden from legacy configs

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions