feat: add Envoy Gateway Component#2685
Conversation
…conflict, and prometheus scraping
Greptile SummaryAdds
Confidence Score: 5/5Safe to merge — new optional component that is off by default and does not affect existing deployments. The change is entirely additive: all new components are required: false, the CRD installation is guarded by a readiness wait loop, the Helm chart SSA conflict is documented and intentionally worked around, and the webhook network policy broadness is acknowledged with a TODO. No existing components are modified in a breaking way. No files require special attention. The one nit is the copyright year in src/envoy-gateway/values/values.yaml. Important Files Changed
Flowchart%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[envoy-gateway-crds component] -->|kubectl apply --server-side| B[Gateway API CRDs v1.5.1\n+ EnvoyProxy CRD\n+ VAP safe-upgrades...]
B --> C{CRD readiness wait\n60 × 2s loop}
C -->|CRD found| D[envoy-gateway component]
D -->|Helm install| E[envoy-gateway controller\nDeployment in envoy-gateway-system]
D -->|uds-envoy-gateway-config chart| F[EnvoyProxy CR: uds-default\nflavor-specific data-plane image]
D -->|uds-envoy-gateway-config chart| G[GatewayClass: envoy-gateway\nparametersRef → EnvoyProxy/uds-default]
D -->|uds-envoy-gateway-config chart| H[UDS Package CR\nambient mesh + network policies\n+ ServiceMonitor port 19001]
G -->|accepted by controller| I[GatewayClass condition: Accepted]
E -->|deployment ready| J[validate task: done]
I --> J
Reviews (4): Last reviewed commit: "chore: update envoy distroless for reg1,..." | 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 |
There was a problem hiding this comment.
is there a reason why you removed this test? I think it can ultimately be replaced once we have the operator logic in... but it might be good to keep in for now so that envoy gateway creation is tested on all flavors and IAC as well?
There was a problem hiding this comment.
No strong reasons, mainly because they'll be improved/replaced with future testing. I've added them back in.
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