chore(e2e): bump client-go to v0.36.1, Go to 1.26.4, switch pod exec to WebSocket#8628
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
Updates the e2e/ Go module to newer Kubernetes client libraries and a newer Go toolchain, and hardens pod exec by preferring WebSocket exec with SPDY fallback. It also updates CI configuration so jobs that operate on the e2e module follow the e2e module’s Go version.
Changes:
- Bump e2e dependencies (
client-go/API/apimachinery and controller-runtime) and the e2e module Go version. - Switch exec transport to WebSocket-first with SPDY fallback in the e2e harness.
- Update GitHub Actions and ADO pipeline configuration to use the e2e module’s Go version.
Reviewed changes
Copilot reviewed 5 out of 6 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
e2e/go.mod |
Bumps e2e module Go version and k8s/controller-runtime deps. |
e2e/go.sum |
Updates sums to match the new dependency graph. |
e2e/exec.go |
Uses WebSocket exec with SPDY fallback for pod exec streaming robustness. |
.pipelines/templates/e2e-template.yaml |
Pins Go installation for ADO e2e job to match e2e module version. |
.github/workflows/validate-components.yml |
Makes version-consistency jobs follow e2e/go.mod Go version and adds cache path. |
.github/workflows/tidy.yaml |
Adds explicit Go setup for tidy workflow using e2e/go.mod Go version. |
2bceb39 to
cb88f01
Compare
cb88f01 to
c03d9a2
Compare
c03d9a2 to
567300a
Compare
Contributor
Author
|
Addressed both review comments in 567300a:
|
awesomenix
approved these changes
Jun 3, 2026
567300a to
e3b6e14
Compare
…t exec
Upgrades the e2e module to the latest stable k8s client and switches
pod exec from SPDY-only to WebSocket-with-SPDY-fallback. WebSocket exec
(protocol v5, GA in client-go v0.32+) is more robust to apiserver
streaming-proxy stalls than the legacy SPDY transport, which has been
the source of recent flaky timeouts (e.g. wireserver validator hang in
build 166502267).
Changes:
e2e/go.mod
* k8s.io/{api,apimachinery,client-go} v0.34.2 -> v0.36.1
* sigs.k8s.io/controller-runtime v0.20.4 -> v0.24.1
* go directive 1.25.10 -> 1.26.4
(required by client-go v0.36)
e2e/exec.go
* NewSPDYExecutor -> NewFallbackExecutor(websocket, spdy, IsUpgradeFailure)
so the harness prefers WebSocket but falls back transparently on
older clusters or upgrade failures.
.pipelines/templates/e2e-template.yaml
* Add GoTool@0 task pinning Go 1.26.4 so the ADO agent doesn't fall
back to whatever pre-installed version is on the pool.
.github/workflows/validate-components.yml
* version-consistency job: switch hardcoded 'go-version: 1.25' to
'go-version-file: e2e/go.mod' so the workflow follows the module.
.github/workflows/tidy.yaml
* Add explicit setup-go step (was relying on ubuntu-latest's default)
pinned via 'go-version-file: e2e/go.mod' so tidy uses Go 1.26+.
Note: tidy workflow continues to strip toolchain directives from go.mod
(no behavior change), so the bumped 'go' directive is the only knob.
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
e3b6e14 to
63d571f
Compare
Contributor
Author
|
Addressed both new review comments in 63d571f:
|
awesomenix
approved these changes
Jun 3, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps e2e client-go + Go and switches pod exec from SPDY to WebSocket.
Bumps (
e2e/go.mod)k8s.io/{api,apimachinery,client-go}sigs.k8s.io/controller-runtimegodirectiveExec transport (
e2e/exec.go)NewSPDYExecutor→NewWebSocketExecutor. WS exec (protocol v5) is GA in apiserver 1.31+; e2e only targets latest AKS, so no SPDY fallback needed.CI
.github/workflows/validate-components.ymlversion-consistencyjob:go-version: '1.25'→go-version-file: e2e/go.mod.github/workflows/tidy.yamlsetup-gowithgo-version-file: e2e/go.modNo ADO change — agent's
GOTOOLCHAIN=autoauto-downloads the version pinned ingo.mod(proven in build 166502267 which downloadedgo1.25.10on demand).Root +
aks-node-controllermodules untouched (still Go 1.25.10) — neither uses client-go.Validation
go build,go vet, test-compile all pass in/e2e. Real validation is the e2e run in CI.Which issue(s) this PR fixes:
Fixes #