feat: add Envoy Gateway Component#2685
Conversation
…conflict, and prometheus scraping
Greptile SummaryAdds Envoy Gateway as an optional UDS Core component, deploying the controller in
Confidence Score: 5/5Safe to merge; this is a purely additive optional component with no changes to existing functionality All changes are new files under src/envoy-gateway/ plus small opt-in wiring in base/standard/bundle. No existing components are modified. The SSA workaround is well-understood and documented. The two observations are cosmetic style issues that do not affect runtime behavior. No files require special attention; the only open item is the acknowledged TODO in uds-package.yaml to tighten the webhook ingress rule from Anywhere to KubeAPI, which is tracked for a follow-on. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[bundles/k3d-standard\nuds-bundle.yaml] -->|optionalComponents: envoy-gateway| B[packages/standard\nzarf.yaml]
B -->|import path: ../base| C[packages/base\nzarf.yaml]
C -->|import path: ../../src/envoy-gateway| D[src/envoy-gateway\nzarf.yaml\nflavor variants]
D -->|import path: common| E[src/envoy-gateway/common\nzarf.yaml]
E -->|Helm chart| F[oci://envoyproxy/gateway-helm:v1.8.0\nenvoy-gateway-system]
D -->|localPath: chart| G[uds-envoy-gateway-config\nHelm chart]
G --> H[GatewayClass: envoy-gateway]
G --> I[UDS Package CR\nambient mesh + network policies]
I --> J[NetworkPolicy: KubeAPI egress\ncontroller + certgen]
I --> K[NetworkPolicy: IntraNamespace\ningress/egress]
I --> L[NetworkPolicy: Anywhere ingress\nport 9443 webhook]
I --> M[ServiceMonitor\nport 19001 metrics]
Reviews (5): Last reviewed commit: "chore: remove envoy-gateway-crds pre-app..." | Re-trigger Greptile |
briantwatson
left a comment
There was a problem hiding this comment.
Nice addition! A couple small comments
joelmccoy
left a comment
There was a problem hiding this comment.
Generally looking good. A couple comments and suggested changes.
joelmccoy
left a comment
There was a problem hiding this comment.
After playing around with this, I realize that we don't bundle the envoy proxy image in this PR, so this feature is not really usable/testable e2e yet. It was called out in the design doc to include this in this part and I think we would include the proxy image in zarf and also include the CRD to override the envoy proxy image: https://www.notion.so/defense-unicorns/UDP-Envoy-Gateway-Component-34be512f24fc8082ac78d3e5c41ce991?source=copy_link#35ae512f24fc8010a8eccb8d6398a766.
|
@greptileai review this |
|
@greptileai review |
joelmccoy
left a comment
There was a problem hiding this comment.
Feels like we added a couple hacks here that I'm am not sure I fully understand. The raw kubectl apply probably isn't going to fly and will mostly like cause us some issues. Best practice is to have all resources managed by a helm chart.
|
@greptileai review this again |
joelmccoy
left a comment
There was a problem hiding this comment.
Generally looking good here! However, I think we need to enable this optional component for our IAC bundles (for example here). Will also want to see these pass the IAC tests before feeling confident to ship this. I think updating the bundles will trigger thoughts
…nd of standard support in May 2026 and AWS GovCloud is rejecting it.
🤖 I have created a release *beep* *boop* --- ## [1.7.0](v1.6.0...v1.7.0) (2026-06-23) ### Features * add Envoy Gateway Component ([#2685](#2685)) ([d941ce4](d941ce4)) * package CR expose annotations ([#2757](#2757)) ([e052f68](e052f68)) ### Miscellaneous * **deps-dev:** bump form-data from 4.0.4 to 4.0.6 in /test/vitest ([#2754](#2754)) ([ac0b221](ac0b221)) * **deps-dev:** bump vite from 8.0.14 to 8.0.16 in /docs/.c4 ([#2749](#2749)) ([5ece4e1](5ece4e1)) * **deps-dev:** bump vite from 8.0.5 to 8.0.16 in /scripts/renovate ([#2747](#2747)) ([277d4b1](277d4b1)) * **deps-dev:** bump vite from 8.0.5 to 8.0.16 in /test/vitest ([#2748](#2748)) ([44e2318](44e2318)) * **deps:** update falco ([#2643](#2643)) ([2e86b30](2e86b30)) * **deps:** update falco ([#2764](#2764)) ([6bb6054](6bb6054)) * **deps:** update iac-support-deps ([#2735](#2735)) ([2dc173a](2dc173a)) * **deps:** update iac-support-deps ([#2756](#2756)) ([7bb9449](7bb9449)) * **deps:** update loki ([#2726](#2726)) ([30fd38e](30fd38e)) * **deps:** update prometheus-stack ([#2718](#2718)) ([3205255](3205255)) * **deps:** update support-deps ([#2728](#2728)) ([8c78383](8c78383)) * **deps:** update support-deps ([#2759](#2759)) ([95fef9b](95fef9b)) * migrate the remaining package guidance to the new docs page ([#2730](#2730)) ([b6ebeea](b6ebeea)) * **renovate:** group envoy-gateway updates ([#2742](#2742)) ([f76bf35](f76bf35)) * uds-core v1.7.0 release notes ([#2765](#2765)) ([316372d](316372d)) ### Documentation * fix for callout formatting ([#2763](#2763)) ([6339826](6339826)) --- This PR was generated with [Release Please](https://github.com/googleapis/release-please). See [documentation](https://github.com/googleapis/release-please#release-please). Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Description
Adds Envoy Gateway as an optional UDS Core component, providing the controller and GatewayClass infrastructure needed for UDP ingress support.
src/envoy-gateway/component wrappingoci://docker.io/envoyproxy/gateway-helm:v1.8.0with upstream, registry1, and unicorn flavor variantsenvoy-gateway-systemwith aGatewayClassnamedenvoy-gatewaypackages/standardas an optional component andbundles/k3d-standardas an opt-in viaoptionalComponentsChart version pinned to v1.8.0, this ships Gateway API CRDs at v1.5.1, which is required to pass the
safe-upgrades.gateway.networking.k8s.ioValidatingAdmissionPolicy installed by Istio. Earlier chart versions bundle v1.4.1 CRDs and will be blocked on install.On-demand Gateway lifecycle (Pepr operator) and UDPRoute generation are scoped to CORE-502.
Related Issue
Fixes Core-482
Type of change
Steps to Validate
envoy-gatewaycomponent enableduds run src/envoy-gateway:validate, waits for theenvoy-gatewayDeployment to be available andGatewayClass envoy-gatewayto beAcceptedChecklist before merging