feat: add Envoy Gateway Component#2685
Conversation
…conflict, and prometheus scraping
Greptile SummaryThis PR introduces Envoy Gateway as an optional UDS Core component, wiring it into
Confidence Score: 4/5Safe to merge for upstream and unicorn flavors; the registry1 variant has an unresolved image compliance gap that should be addressed before that flavor is used in a restricted environment. The registry1 flavor's managed Envoy proxy image resolves to Docker Hub rather than an Iron Bank image, so any registry1 deployment that instantiates a Gateway will attempt to pull from an unapproved registry. All other aspects of the change — CRD ordering, SSA workaround, network policy coverage, and test structure — are sound. src/envoy-gateway/values/registry1-values.yaml and the corresponding image list in src/envoy-gateway/zarf.yaml (registry1 flavor block). Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[packages/standard or base\noptionalComponents] -->|imports| B[src/envoy-gateway/zarf.yaml\nflavor-specific component]
B -->|imports common| C[src/envoy-gateway/common/zarf.yaml]
C -->|kubectl apply| D[envoy-gateway-crds\nfrom GitHub release v1.8.0]
C -->|helm install| E[envoyproxy/gateway-helm:v1.8.0\nenvoy-gateway-system]
B -->|helm install| F[uds-envoy-gateway-config\nlocal chart]
F -->|creates| G[GatewayClass: envoy-gateway]
F -->|creates| H[EnvoyProxy: uds-default\nenvoy-gateway-system]
F -->|creates| I[UDS Package CR\nambient mesh + network policies]
G -->|parametersRef| H
E -->|reconciles Gateway resources| J[Managed Envoy Proxy Pods/Services\nper Gateway instance]
H -->|configures proxy image| J
Reviews (3): Last reviewed commit: "add minimal e2e test" | 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 |
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