-
Notifications
You must be signed in to change notification settings - Fork 25
feat: migrate to Talos v1.13 machinery and gate config against target talosVersion #213
Copy link
Copy link
Open
Labels
area/engineIssues or PRs related to pkg/engine (rendering, MergeFileAsPatch, helm)Issues or PRs related to pkg/engine (rendering, MergeFileAsPatch, helm)area/networkingIssues or PRs related to networking (interfaces, VIP, routes)Issues or PRs related to networking (interfaces, VIP, routes)kind/api-changeCategorizes issue or PR as related to adding, removing, or otherwise changing an APICategorizes issue or PR as related to adding, removing, or otherwise changing an APIkind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new featurepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next release
Metadata
Metadata
Assignees
Labels
area/engineIssues or PRs related to pkg/engine (rendering, MergeFileAsPatch, helm)Issues or PRs related to pkg/engine (rendering, MergeFileAsPatch, helm)area/networkingIssues or PRs related to networking (interfaces, VIP, routes)Issues or PRs related to networking (interfaces, VIP, routes)kind/api-changeCategorizes issue or PR as related to adding, removing, or otherwise changing an APICategorizes issue or PR as related to adding, removing, or otherwise changing an APIkind/featureCategorizes issue or PR as related to a new featureCategorizes issue or PR as related to a new featurepriority/important-soonMust be staffed and worked on either currently, or very soon, ideally in time for the next releaseMust be staffed and worked on either currently, or very soon, ideally in time for the next release
Type
Fields
Give feedbackNo fields configured for issues without a type.
Summary
talm pins its Talos
machineryto acozystack/talosfork snapshot from 2026-01-26, which predates Talos v1.13. As a result, config documents introduced in v1.13 are not in the document registry and fail to load with"<Kind>" "v1alpha1": not registered. The first user-reported case isRoutingRuleConfig(Linux policy routing, needed for multi-NIC setups), but seven other documents are affected too.This epic tracks two things:
talosVersion(e.g. a v1.13-only document in a config aimed at v1.11), surfacing a clear error attalm template/talm applytime instead of a cryptic node-side rejection.Current state
go.modnominally requirespkg/machinery v1.13.0-beta.1, but areplaceoverrides it withcozystack/talos[/pkg/machinery] v0.0.0-20260126122716-d18a185e3680(2026-01-26).--skip-verify(upstream PR #12652, declined upstream, so the fork is required for as long as we need the flag).v1.13.0-beta.1(2026-03-27) and is present throughv1.13.3(2026-05-25). The fork is ~7 weeks older than that commit, so the documents below are simply absent.What we gain from v1.13
Re-basing the fork onto v1.13.3 registers these documents automatically (the document registry drives loading):
RoutingRuleConfigVRFConfigBlackholeRouteConfigKubeSpanConfigTCPProbeConfigExternalVolumeConfigEnvironmentConfigImageVerificationConfigWorkstreams
A. Re-derive the fork on a stable base
cozystack/talosfrom upstream tagv1.13.3and cherry-pick the--skip-verifypatch on top, replacing the long-lived diverged branch that drifted to 2026-01-26.talosandtalos/pkg/machinery.main(alpha), so talm's machinery line matches the Talos line actually running on nodes.B. Bump talm
requireand bothreplacelines ingo.modto the new fork revision;go mod tidy; confirm the build.RoutingRuleConfigand the other seven documents load via the engine path.C. Version-skew gates
talosVersion: reject (or warn on) any document/field that does not exist in the target release, with an actionable hint, instead of letting the node reject it.grubUseUKICmdlinerejection on older targets.D. Tests
docs/manual-test-plan.mdin the same commits as the code (forward-looking "do X, expect Y" steps).E. Docs
F. Optional / low priority
--skip-verifycan be upstreamed or replaced, which would let us drop the fork entirely and depend on plain upstream machinery.Open questions