Repository navigation
fix(deps): siderolabs talos and machinery pins can skew, breaking the build #6734
Description
🤖 Generated by the Agentic Engineer
Evidence
github.com/siderolabs/talos and github.com/siderolabs/talos/pkg/machinery are released together and
share the config API, but ksail pins them independently. On main both sit at v1.14.0-alpha.2.
Any bump that raises machinery alone breaks the build. Observed on #6724, where an omni/client
1.9.1 → 1.10.4 bump transitively raised machinery to v1.14.0-beta.1 and left talos at alpha.2:
pkg/fsutil/configmanager/talos/configs.go:615:54:
cp.Machine().Kubelet undefined (MachineConfig has no field or method Kubelet)
pkg/fsutil/configmanager/talos/version.go:223:28: machineCfg.Kubelet undefined
.../talos@v1.14.0-alpha.2/pkg/images/list.go:43:49:
config.Cluster().CoreDNS undefined (ClusterConfig has no field or method CoreDNS)
The last line is pinned Talos alpha.2 source failing against beta.1 machinery — proof the breakage is
the skew itself, not our call sites alone.
Why this recurs rather than being a one-off
machinery is an indirect dependency, so MVS treats it as a floor: any dependent that requires a newer
machinery raises it silently, with no corresponding change to the direct talos pin. Dependabot cannot
perform the coordinated two-module upgrade, so such a bump can arrive red and unmergeable. #6724 was
the historical instance and is now closed. Dependabot grouping shipped in #6803; the coordinated
target-version update is tracked by #6826.
Expected behaviour
The two siderolabs modules move together, and a transitive raise of one cannot silently skew them.
Acceptance criteria
-
siderolabs/talosandsiderolabs/talos/pkg/machineryare on the same version. - Call sites adapted to the target
configAPI — at minimumMachineConfig.Kubelet
(pkg/fsutil/configmanager/talos/configs.go,version.go) andClusterConfig.CoreDNS. - The Talos CI legs pass.
- A guard prevents silent skew recurring: test(deps): name a talos/machinery version skew instead of failing inside talos #7199 added a module-version equality check that also
rejects transitive machinery pseudo-version skew, while keeping the coordinated upgrade explicit. - chore(deps): bump github.com/siderolabs/omni/client from 1.9.1 to 1.10.4 #6724 is closed; chore(deps): bump the talos group across 1 directory with 3 updates #6826 is the current coordinated update.
Remaining delivery
The current main branch pins both modules to v1.14.0-alpha.2; that does not prove the target-version
upgrade, adapted call sites, or passing Talos CI legs. Those criteria remain open with #6826 and its
Kubernetes SDK compatibility prerequisites, including #6728 and #7259.
Size: medium. The upgrade itself is small; the API migration and the anti-recurrence guard are the work.
Metadata
Metadata
Assignees
Labels
Type
Fields
Priority
Effort
Projects
- StatusShow more project fields🧊 Icebox
Activity
chore: agent-claim #6734 nonce=8dadf35a596d4b6b77e6e0cdf6162d9f
test(deps): name a talos/machinery version skew instead of failing in…
devantler commentedon Sep 25, 2026
Re-checked against
maintoday:internal/depcontract/talos_lockstep_test.go(test(deps): name a talos/machinery version skew instead of failing inside talos #7199) fails a go.mod whosetalosandmachineryversions differ, including a machinery pseudo-version pulled in transitively.talos,machineryandomni/clienttogether, but it also pulls the Kubernetes v0.37 libraries, so it is parked on Move to Kubernetes client libraries v0.37 once Kyverno and vcluster support them #7259 (Kyverno and vcluster have not shipped v0.37 support; last verified 2026-09-25).Linked as blocked by #7259.
Generated by Claude Code
devantler commentedon Oct 5, 2026
The SDK skew now has authenticated RED→GREEN evidence on the existing coordinated upgrade PR #6826. Native dependency-contract job 111559455345 rejected the old mismatched root/machinery selections. Signed source repair ff13354 aligns both modules at published upstream revision 5c5fd29e95f71d6a642f306e4326553bec164e39, and signed successor 1943944 applies the exact hosted generator output.
At that successor, dependency-contract job 111621061685 runs the complete internal/depcontract suite and passes. Hosted tidy job 111621063708 also passes. The lockstep check remains enabled.
This repairs the independently owned skew failure. It does not complete the coordinated upgrade, migrate the removed accessors in #6776, clear #7259, prove the Talos lifecycle, or establish merge readiness. Those acceptance criteria remain open.