chore: move the Go toolchain to 1.26.5 - #300
Conversation
|
Correction to the "Unblocks #263" framing above: this PR clears the first gate, not the only one. #273 (recreated onto current main after this PR was opened) showed what comes next. It drags the k8s module set to 0.35.3 transitively and fails with:
This PR is still worth landing on its own merits — it removes the three-way drift between CI (1.25.0), the release image (1.25.12), and Review notes in the description still stand: this changes the compiler that builds the shipped release image, so a dev-cluster rollout — particularly to confirm Go 1.26 TLS-inlining behaviour against uprobe-based LLM extraction — is worth doing before merge. |
The repo pins Go in three places and they had drifted apart: CI on 1.25.0, the release image on 1.25.12, and the (unused) alpine build file still on 1.23.8. Move all three to 1.26.5 together so the version CI validates is the version the release actually ships. This also unblocks #263: k8s.io 0.36.x declares `go >= 1.26.0`, and CI runs with GOTOOLCHAIN=local, so a 1.25.x runner fails the module load outright rather than fetching a newer toolchain. Deliberately not touching the `go` directive in go.mod — 1.26.5 satisfies the current `go 1.25.0`, and raising it is the k8s bump's business, not the toolchain's.
53ee9bd to
3f0ef72
Compare
Consolidates the three Go pins in this repo, which had drifted apart, onto 1.26.5:
.github/workflows/ci.ymlgo-version: '1.25.0'go-version: '1.26.5'Dockerfile(ships the release image)ARG GO_VERSION=1.25.12ARG GO_VERSION=1.26.5Dockerfile.alpinegolang:1.23.8-alpinegolang:1.26.5-alpine1.26.5 is the current Go release.
Why
Two reasons, one immediate and one hygienic.
Unblocks #263. The k8s group bump (
k8s.io/apimachinery,k8s.io/client-go0.32.13 → 0.36.2) fails CI with:k8s.io 0.36.x declares
go >= 1.26.0. Because CI runs withGOTOOLCHAIN=local, a 1.25.x runner fails the module load outright instead of fetching a newer toolchain, so no amount of rebasing fixes #263 until this lands.Removes the drift. CI was validating 1.25.0 while the released binary was built with 1.25.12, and
Dockerfile.alpinehad been left on 1.23.8. Supersedes #292, which bumped only the alpine file — merging that alone would have left an unused file advertising a Go version nothing actually builds with.Scope
The
godirective ingo.modis deliberately untouched. 1.26.5 satisfies the existinggo 1.25.0, and raising that directive is properly part of the k8s bump rather than a toolchain change.Review notes
This changes the compiler that builds the shipped agent, so it deserves more than a green check:
Dockerfile, so this affects production artifacts.Not requesting merge — opening this so CI runs and the toolchain move can be decided deliberately.