Match the build-time helm binary to the linked helm library (release-v1.40) - #5215
Open
dimitri-nicolo wants to merge 1 commit into
Open
Match the build-time helm binary to the linked helm library (release-v1.40)#5215dimitri-nicolo wants to merge 1 commit into
dimitri-nicolo wants to merge 1 commit into
Conversation
HELM3_VERSION = v3.11.3 -> v3.21.3
This is the helm program hack/bin downloads to render the Envoy Gateway chart
into pkg/render/gatewayapi/gateway_api_resources.yaml at build time. It is a
build tool and never ships in the operator image, separate from the
helm.sh/helm/v3 library the operator links -- which is already on v3.21.3
while the binary sat ten minors behind on a 2021 release.
The regenerated resources file is committed alongside, because the make rule
keys off the versioned binary name and would otherwise re-render it and fail
dirty-check.
The upgrade is inert in the way that matters. Across 58,298 lines the only
change is nine comment lines, where helm now records the full chart path in
the source comment:
-# Source: crds/gatewayapi-crds.yaml
+# Source: gateway-helm/charts/crds/crds/gatewayapi-crds.yaml
No Kubernetes resource changes -- not a field, not an ordering, not a
generated label. The nine lines are YAML comments, dropped at parse time.
Verified:
- v3.11.3 re-renders the committed file byte for byte, so the comparison is
against a faithful baseline rather than a drifted one
- `git diff` on the regenerated file touches only `# Source:` lines
NOT verified by the gatewayapi unit tests, which cannot pass on this branch
either before or after this change: they panic with "missing/extra k8s CRDs
from gateway API YAML (12 != 11)". That failure is pre-existing, unrelated to
this change, and byte-identical with and without it. It is currently invisible
in CI because this branch's UT step pipes make into tee without
`set -o pipefail`, so the job always exits 0. Both are described in the PR.
Cherry-picked from the equivalent commit on release-v1.42; the two branches
share the chart version and resources file, so it applied cleanly.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the build-time Helm v3 binary version used by the Makefile to match the already-upgraded helm.sh/helm/v3 Go library version, and commits the corresponding regenerated Envoy Gateway rendered resources file so build-time dirty checks remain stable.
Changes:
- Bump
HELM3_VERSIONfromv3.11.3tov3.21.3in the build tooling. - Update the committed, rendered
gateway_api_resources.yamloutput to reflect Helm’s updated# Source:comment formatting (no Kubernetes resource spec/content changes).
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
Makefile |
Updates the build-time Helm binary version to v3.21.3, aligning with the existing Go Helm library version and the download/extract rules. |
pkg/render/gatewayapi/gateway_api_resources.yaml |
Regenerated output; only # Source: comment paths change to include full chart paths. |
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
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.
HELM3_VERSIONv3.11.3 → v3.21.3. Clean cherry-pick of therelease-v1.42change (#5214) — the two branches share the chart version and resources file.This is the helm program
hack/bindownloads to render the Envoy Gateway chart intopkg/render/gatewayapi/gateway_api_resources.yamlat build time. It's a build tool — it never ships in the operator image — and it's separate from thehelm.sh/helm/v3library the operator links, which is already on v3.21.3. The binary had been left on a 2021 release, ten minors behind.The regenerated resources file is committed alongside, because the make rule keys off the versioned binary name and would otherwise re-render it and fail
dirty-check.The upgrade is inert
Across 58,298 lines the only change is nine comment lines, where helm now records the full chart path in the source comment:
No Kubernetes resource changes — not a field, not an ordering, not a generated label. Those nine lines are YAML comments, dropped at parse time.
v3.11.3 re-renders the committed file byte for byte, so the comparison is against a faithful baseline rather than a file that had drifted from its generator.
Neither is caused by this change, and this PR does not fix either. Both need a separate decision.
1. The gatewayapi unit tests cannot pass on this branch
go test ./pkg/render/gatewayapi/...panics, on the untouched base branch and with this change alike — byte-identically:The committed YAML carries 12 Gateway API CRDs;
gateway_api.goasserts exactly 11.This looks like more than a stale test.
gateway_api_resources.yamlis//go:embed-ed into the operator binary, and the panic sits in the lazily-calledGatewayAPIResourcesGetterclosure — so on the face of it a shippedrelease-v1.40operator would panic the first time it renders Gateway API resources. Someone who knows this code should confirm whether that path is reachable in production.2. CI cannot report a UT failure on this branch
The panic above is already in CI logs, and the job still reports green. The UT step is:
Without
set -o pipefail, the step's exit status istee's, which is always 0. Every UT failure on this branch is silently swallowed.master and
release-v1.42already carry the fix:- set -o pipefail; make ut 2>&1 | tee ut.log(
release-v1.41doesn't pipe at all, so it's unaffected.) Worth picking that one-liner onto this branch — and note that until it lands, this PR's own green CI proves nothing about the tests.Release note: