Repository navigation
fix(deps): stop proposing controller-runtime minors that cannot compile - #7134
Conversation
sigs.k8s.io/controller-runtime is part of the `kubernetes` dependency
group, but the ignore rule that holds that coupled set back named only
`k8s.io/*`, so controller-runtime minors were still proposed automatically.
Each controller-runtime minor line targets exactly one Kubernetes minor
line: v0.24.1 requires k8s.io/{api,apimachinery,apiserver,client-go}
v0.36.0, while v0.25.0 requires v0.37.0. Because this module pins
k8s.io/kubernetes v1.36.0 and the staging modules on the 0.36 line, such
a bump drags the staging set to 0.37 and leaves the graph uncompilable —
the exact condition the k8s.io/* rule exists to prevent.
Scoped to controller-runtime rather than sigs.k8s.io/*, because the other
modules matching that glob version independently of the staging set.
Fixes #7133
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
✅MegaLinter analysis: Success✅ Linters with no issuesactionlint, bash-exec, git_diff, hadolint, jscpd, jsonlint, lychee, markdown-table-formatter, markdownlint, prettier, prettier, shellcheck, shfmt, stylelint, syft, trivy-sbom, trufflehog, v8r, v8r, yamllint Notices
See detailed reports in MegaLinter artifacts
|
@coderabbitai review |
|
✅ Action performedReview finished.
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: ASSERTIVE Plan: Advanced Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan provides up to 2 included reviews per hour; 1 remains after this review. 📜 Recent review details⏰ Context from checks skipped due to timeout. (1)
🔇 Additional comments (1)
📝 WalkthroughWalkthroughThe Dependabot configuration adds an ignore rule for Priority: ⬇️ Low 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Readiness record @
|
| module@version | requires k8s.io/{api,apimachinery,apiserver,client-go} |
|---|---|
controller-runtime@v0.24.1 (current) |
v0.36.0 |
controller-runtime@v0.25.0 (what #7075 proposes) |
v0.37.0 |
This module pins k8s.io/kubernetes v1.36.0 with the staging set on the 0.36 line, so the proposed minor moves the graph to 0.37 — and #7075 fails with precisely a 1.37-shaped API error (NodeAllocatableResourceClaimStatus has no field or method Resources). The same 0.37 requirement is what parks #6826, #6845 and #7127, all tracked under #6728.
I also checked the scoping decision as its user: sigs.k8s.io/* matches 13 further modules here (yaml, kind, kwok, kustomize/api, kustomize/kyaml, json, randfill, release-utils, knftables, cli-utils, gateway-api, apiserver-network-proxy, structured-merge-diff). Suppressing their minors would cost real updates for no benefit, which is why the rule names controller-runtime alone. CodeRabbit independently read the change the same way: "Patch and security updates remain allowed. Other sigs.k8s.io/* dependencies are unaffected."
Honest limit: I cannot make Dependabot run, so this is verified by structure and by the upstream coupling, not by observing a suppressed proposal. The observable confirmation is negative and arrives on the next cycle — controller-runtime minors stop being re-proposed.

Why
KSail's Kubernetes libraries have to move as one set, and there is already a rule holding that set back so the upgrade is done deliberately — but the controller-runtime library was never covered by it, so updates to it keep being raised automatically and can never build. The same update has already been raised, closed and raised again, each attempt spending a full CI run to rediscover the same incompatibility. Dependency updates get only five slots, four are already held by updates that cannot merge, so one more stuck update stops dependency updates for the whole project.
What
Brings controller-runtime under the existing rule, so its feature-level updates are taken deliberately alongside the rest of the Kubernetes set instead of arriving on their own. Security and bug-fix updates for it still come through as normal, and unrelated libraries are untouched.
Fixes #7133