fix(base): pin CRD installer image and grant admissionregistration RBAC - #187
Merged
sebastiancorrea81 merged 1 commit intoSep 3, 2026
Conversation
install-gateway-api-crds fails with BackoffLimitExceeded when global.gatewayApiCrdRef is bumped past v1.3.0, for two reasons: - docker.io/bitnami/kubectl:latest currently resolves to a build whose bundled OpenSSL 3.5.x fails to generate the ML-KEM-768 key share during the TLS 1.3 handshake with github.com, aborting the `kubectl kustomize github.com/...` fetch before any CRD is applied. Pin to docker.io/bitnamilegacy/kubectl:1.31.4, a stable tag unaffected by this regression, instead of the floating :latest tag introduced in nullplatform#140. - Gateway API CRD refs >= v1.4.0 ship a ValidatingAdmissionPolicy ("safe-upgrades") alongside the CRDs. The nullplatform-crd-installer ClusterRole only grants apiextensions.k8s.io/customresourcedefinitions, so the job's `kubectl apply` fails with Forbidden on validatingadmissionpolicies/validatingadmissionpolicybindings once gatewayApiCrdRef points at one of those versions. Add the missing admissionregistration.k8s.io rule. Reproduced against a live EKS cluster with gatewayApiCrdRef=v1.5.1: both errors confirmed via job pod logs, and the upgrade completes successfully with this patch applied. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F4iyAKjdPBB8jvEMLGimYJ
sebastiancorrea81
approved these changes
Sep 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.
Summary
install-gateway-api-crds(thepre-install,pre-upgradehook Job) fails withBackoffLimitExceededonceglobal.gatewayApiCrdRefis bumped past the defaultv1.3.0, for two independent reasons:docker.io/bitnami/kubectl:latestcurrently resolves to a build whose bundled OpenSSL 3.5.x fails to generate theML-KEM-768key share during the TLS 1.3 handshake withgithub.com(error:078C0103:...genkey:internal error while generating ML-KEM-768 private key), aborting thekubectl kustomize github.com/...fetch before any CRD is applied. This is a regression introduced by thelatesttag itself (floating), not by the chart — it was pinned to1.31before fix(base): update bitnami/kubectl image tag from 1.31 to latest #140 moved it to:latest. This PR pins it todocker.io/bitnamilegacy/kubectl:1.31.4, a stable tag on Bitnami's legacy registry unaffected by the regression.>= v1.4.0ship aValidatingAdmissionPolicy(safe-upgrades.gateway.networking.k8s.io) alongside the CRDs. Thenullplatform-crd-installerClusterRole only grantsapiextensions.k8s.io/customresourcedefinitions, sokubectl applyfails withForbiddenonvalidatingadmissionpolicies/validatingadmissionpolicybindings. This PR adds the missingadmissionregistration.k8s.iorule.Why not just bump gatewayApiCrdRef back to v1.3.0?
That sidesteps the RBAC issue but not the image issue —
bitnami/kubectl:latestcan regress again at any time since it's a floating tag. Pinning it is the durable fix regardless of which CRD ref is configured.Test plan
gatewayApiCrdRef=v1.5.1:kubectl kustomize ... | kubectl apply ...) in a debug pod using the current:latestimage — confirmed the TLS/ML-KEM error in the pod logs.docker.io/bitnamilegacy/kubectl:1.31.4— CRD fetch/apply succeeded, then hit theForbiddenerror onvalidatingadmissionpolicies.helm upgradeagainst the real release — completed successfully (STATUS: deployed), JobCompleted, all 8 Gateway API CRDs (including the 4 new ones:backendtlspolicies,grpcroutes,listenersets,tlsroutes) present on the cluster.🤖 Generated with Claude Code
https://claude.ai/code/session_01F4iyAKjdPBB8jvEMLGimYJ