Skip to content

build(deps): Upgrade to Kubernetes 0.37 and controller-runtime 0.25 - #1173

Merged
privateip merged 2 commits into
mainfrom
fix/issue-1146
Oct 28, 2026
Merged

privateip merged 2 commits into
mainfrom
fix/issue-1146

Conversation

@privateip

@privateip privateip commented Oct 28, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

The shared instrumentation library (#1144) needs newer Kubernetes and controller-runtime releases.

This moves Galactic onto them with no source changes. The generated CRDs differ only in their version annotation, and CI now runs envtest against Kubernetes 1.37.

Fixes #1146

Test plan

The shared instrumentation library needs k8s.io/* v0.37 and controller-runtime v0.25 or later, and Galactic was on v0.36 and v0.24.1.

The root module and examples/edge-provider move k8s.io/{api,apimachinery,client-go,apiextensions-apiserver,cri-api} to v0.37.1 and controller-runtime to v0.25.2; go mod tidy pulls the libraries that move with them. No Go source changes: the only controller-runtime 0.25 API break Galactic touches is the new event recorder interface, which every manager already uses.

The CRDs are regenerated with controller-gen v0.23.0, the release built on k8s.io/* v0.37. Their schemas and the deepcopy code are unchanged; only the controller-gen version annotation moves.

Fixes #1146
@privateip privateip added the dependencies Pull requests that update a dependency file label Oct 28, 2026
@privateip privateip self-assigned this Oct 28, 2026
@privateip privateip added the dependencies Pull requests that update a dependency file label Oct 28, 2026
client-go v0.37 against a 1.35 API server is outside the supported version skew. Install envtest from controller-runtime release-0.25 and use the 1.37 API server assets in both the unit and e2e jobs.
@privateip
privateip marked this pull request as ready for review October 28, 2026 03:05
@privateip
privateip requested a review from a team as a code owner October 28, 2026 03:05
@privateip
privateip enabled auto-merge October 28, 2026 03:06
@privateip

Copy link
Copy Markdown
Collaborator Author

Second review pass on head 3747107 returned two merge verdicts. The re-reviewer confirmed all three first-pass findings fixed (the envtest pins at ci.yaml lines 86 and 179, the body opening, and the test-plan checkboxes) and found the fix diff clean: VERDICT: merge. The conventions reviewer also returned VERDICT: merge. Its one nit, an unwrapped commit body, matches the repository's and author's preference, so no change was made.

Two decisions the conventions reviewer re-raised were already made by the maintainer. This PR lands before Renovate #1109. It merges now, with the lab run tracked as a follow-up on #1146, since merges deploy to staging only.

CI on the head is green. Attempt 1 of run 40622128550 failed TestRolloutWithShippedRBAC once. Fourteen local runs against envtest 1.37 under -race and CPU contention did not reproduce it, and attempt 2 passed every job, including E2E Tests and Unit Tests. It is treated as a one-time flake.

Auto-merge is enabled with a merge commit, the only method the main ruleset allows. The ruleset requires one approving review from a code owner and re-approval after the last push, so the PR waits for a human approval before it lands.

@ecv ecv left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approve.

Verified at 3747107: all 38 CRD files change only the controller-gen.kubebuilder.io/version annotation (v0.21.0/v0.18.0 to v0.23.0), with no schema, default or storage-version change, so the next production Galactic tag carries no CRD behavior change. k8s.io/api, apimachinery, client-go, apiextensions-apiserver and cri-api are all v0.37.1 across the root and the cni module, and every CI check at the head is green including e2e and envtest on 1.37.

  • The go.sum swaps zap v1.28.0 for v1.27.1 and objx v0.5.2 for v0.5.3. Neither module is a direct requirement in go.mod, so this is dependency resolution falling out of the bump rather than a deliberate downgrade, but it is worth knowing zap moved backwards.
  • The e2e run is the only evidence for controller-runtime 0.25 behavior (cache, webhook, metrics server and leader-election defaults). The PR makes no source changes, so a default that shifted silently would show up only on a real cluster.

Follow-ups:

  • The lab run is still unticked and tracked on #1146. Do it before the next production Galactic tag, since client-go 0.37 is the first release to talk to production clusters (skew in the newer-client direction is supported).

@privateip
privateip merged commit df9c12e into main Oct 28, 2026
29 of 30 checks passed
@privateip
privateip deleted the fix/issue-1146 branch October 28, 2026 03:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Upgrade to Kubernetes 0.37 libraries and controller-runtime 0.25

2 participants