Skip to content

chore: move the Go toolchain to 1.26.5 - #300

Merged
mayankpande88 merged 1 commit into
mainfrom
chore/go-1.26.5-toolchain
Jul 29, 2026
Merged

chore: move the Go toolchain to 1.26.5#300
mayankpande88 merged 1 commit into
mainfrom
chore/go-1.26.5-toolchain

Conversation

@mayankpande88

Copy link
Copy Markdown
Contributor

Consolidates the three Go pins in this repo, which had drifted apart, onto 1.26.5:

File Before After
.github/workflows/ci.yml go-version: '1.25.0' go-version: '1.26.5'
Dockerfile (ships the release image) ARG GO_VERSION=1.25.12 ARG GO_VERSION=1.26.5
Dockerfile.alpine golang:1.23.8-alpine golang:1.26.5-alpine

1.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-go 0.32.13 → 0.36.2) fails CI with:

go: go.mod requires go >= 1.26.0 (running go 1.25.0; GOTOOLCHAIN=local)

k8s.io 0.36.x declares go >= 1.26.0. Because CI runs with GOTOOLCHAIN=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.alpine had 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 go directive in go.mod is deliberately untouched. 1.26.5 satisfies the existing go 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:

  • The release image is built from Dockerfile, so this affects production artifacts.
  • Worth confirming against the known Go 1.26 TLS-inlining behaviour that affects uprobe-based LLM extraction for Go clients — that concerns instrumenting target binaries rather than the agent's own build, but the two are easy to conflate and this is the right PR to check it on.
  • Suggest a dev-cluster rollout of an image built from this branch before merging.

Not requesting merge — opening this so CI runs and the toolchain move can be decided deliberately.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Code Review

This pull request updates the Go version used in the Dockerfiles, bumping the version to 1.26.5 in both the standard Dockerfile and the Alpine-based Dockerfile. There are no review comments, so I have no feedback to provide.

@mayankpande88

Copy link
Copy Markdown
Contributor Author

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:

cilium@v1.17.16/pkg/k8s/informer/informer.go:103:3: unknown field RetryOnError in struct literal of type "k8s.io/client-go/tools/cache".Config

cache.Config.RetryOnError was removed in client-go 0.35. #263 targets 0.36.2, so it will hit the same break once the toolchain gate is gone.

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 Dockerfile.alpine (1.23.8), and CI is green under 1.26.5. But #263 additionally needs a cilium/cilium bump off v1.17.16 (upstream is at v1.19.6).

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.
@mayankpande88
mayankpande88 force-pushed the chore/go-1.26.5-toolchain branch from 53ee9bd to 3f0ef72 Compare July 29, 2026 05:36
@mayankpande88
mayankpande88 merged commit 2076f9d into main Jul 29, 2026
7 checks passed
@mayankpande88
mayankpande88 deleted the chore/go-1.26.5-toolchain branch July 29, 2026 08:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants