fix: deliver Envoy Gateway CRs via a multi-source Application#481
Open
emmanuel wants to merge 1 commit into
Open
fix: deliver Envoy Gateway CRs via a multi-source Application#481emmanuel wants to merge 1 commit into
emmanuel wants to merge 1 commit into
Conversation
josmo
approved these changes
Jun 27, 2026
emmanuel
marked this pull request as ready for review
June 30, 2026 07:16
Add a create-gateway Helm chart holding the Gateway CRs (GatewayClass, EnvoyProxy) and deliver it as a second source on the envoy-gateway Application. ArgoCD applies the gateway-helm CRDs and these CRs in a single sync (CRDs first, then CRs), so the CRs no longer fail at bootstrap when their CRDs aren't registered yet. nlbName is injected into the source's valuesObject via a kustomize replacement of EG_NLB_NAME. SkipDryRunOnMissingResource is set as insurance; ArgoCD applies CRDs-then-CRs natively within one Application, so it converges either way. Verified on kind + ArgoCD: one multi-source Application bootstraps all Gateway/Envoy CRDs plus the GatewayClass/EnvoyProxy from an empty cluster in a single sync.
create-gateway mini-chart for delayed CRs
emmanuel
force-pushed
the
fix/separate-create-gateway-chart
branch
from
July 21, 2026 19:11
23d862f to
3c01ce0
Compare
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.
What
Delivers the Envoy Gateway custom resources (
GatewayClass,EnvoyProxy) as a second source on theenvoy-gatewayApplication (multi-source), alongside thegateway-helmchart. ArgoCD then applies the Gateway API / Envoy Gateway CRDs and the CRs in a single sync (CRDs first, then the CRs) — instead of the CRs failing at bootstrap when their CRDs don't exist yet.The CRs live in a small
create-gatewayHelm chart (source 2), which also lets the per-environment NLB name be injected via the Application'svaluesObject(kustomize replacement ofEG_NLB_NAME).Commits
8d9a7e6— add thecreate-gatewaymini-chartac092a7— fix render bug: manifests were undertemplate/(singular); Helm only renderstemplates/, so the chart rendered zero resources. Renamedtemplate/→templates/.320a98e— addSkipDryRunOnMissingResource=true23d862f— refactor to multi-source: collapse the separatecreate-gatewayApplication into a second source onenvoy-gateway; the CRDs + CRs now sync as one unit.Testing
Static —
helm templaterenders both CRs with correctnlbNamesubstitution;kustomize buildrenders a single multi-source Application with the value injected into source 2.End-to-end (disposable
kind+ ArgoCD, empty cluster, no Gateway CRDs): the one multi-source Application bootstrapped all 20 Gateway/Envoy CRDs plusGatewayClass eg+EnvoyProxy eg-proxyin a single sync →Synced/Healthy,nlbNameannotation correct.