Skip to content

feat(infra): remove leftover Envoy Gateway, complete Cilium cutover - #31

Open
jonathandieu wants to merge 1 commit into
mainfrom
feat/remove-envoy-gateway
Open

feat(infra): remove leftover Envoy Gateway, complete Cilium cutover#31
jonathandieu wants to merge 1 commit into
mainfrom
feat/remove-envoy-gateway

Conversation

@jonathandieu

Copy link
Copy Markdown
Owner

Summary

PR #29 introduced the Cilium Gateway but left Envoy Gateway deployed alongside it. All three HTTPRoutes already parent onto the Cilium gateway (cilium-gateway-system/public), so Envoy serves no traffic. Its orphaned DigitalOcean LoadBalancer is what drives the cloud-controller's perpetual 422 There is already a load balancer with that name reconcile loop (~1300 failures over ~4.5 days), which also keeps external-dns from settling.

This removes Envoy Gateway entirely so Cilium is the sole gateway.

Changes

  • Delete the charts/infrastructure/envoy-gateway chart
  • Delete argocd/apps/infrastructure/envoy-gateway-appset.yaml
  • Delete clusters/{platform,stage}-do-atl1/overrides/envoy-gateway.yaml
  • Repoint the two comment-only Envoy references (cert-manager, plausible values) to Cilium

No functional Envoy references remain. gateway-api-crds and cert-manager's enableGatewayAPI stay; Cilium relies on both.

Verification

  • Live: cilium GatewayClass Accepted, Gateway cilium-gateway-system/public PROGRAMMED (LB 129.212.241.198), adopting the terraform LB (load-balancer-id f0f43b4a..., type REGIONAL). Hitting it directly, recipes and changes return 200, analytics 503 (Plausible app-level).
  • All HTTPRoutes already parentRef the Cilium gateway.
  • The leftover Envoy Service pointed at a different LB id (0d90b7c6..., type REGIONAL_NETWORK) and was the source of the 422 churn.

Cleanup on merge

The root app-of-apps has prune: true and the Envoy-generated Applications carry resources-finalizer.argocd.argoproj.io, so on merge the envoy-gateway ApplicationSet is pruned and its resources (including the DO LoadBalancer) cascade-delete.

Post-merge, verify:

  • kubectl -n argocd get applicationset shows no envoy-gateway
  • envoy-gateway-system namespace and its DO LB are gone
  • external-dns settles and repoints the workload records to the Cilium IP

Draft until the post-merge cleanup path is confirmed acceptable.

PR #29 added the Cilium Gateway but left Envoy Gateway deployed alongside
it. All HTTPRoutes already parent onto the Cilium gateway
(cilium-gateway-system/public), so Envoy serves no traffic; its orphaned
DigitalOcean LoadBalancer is what drives the CCM's perpetual
"422 already a load balancer with that name" reconcile loop.

Remove Envoy Gateway entirely:
- delete charts/infrastructure/envoy-gateway
- delete argocd/apps/infrastructure/envoy-gateway-appset.yaml
- delete clusters/{platform,stage}-do-atl1/overrides/envoy-gateway.yaml
- repoint the two comment-only references (cert-manager, plausible) to Cilium

The root app-of-apps prunes the ApplicationSet on merge and the generated
Applications carry resources-finalizer, so Envoy resources (incl. the LB)
cascade-delete. gateway-api-crds and cert-manager's enableGatewayAPI stay;
Cilium relies on both.
@github-actions

github-actions Bot commented Aug 7, 2026

Copy link
Copy Markdown

Helm template diff

Only in /tmp/base: envoy-gateway.yaml
diff -u --recursive --label base --label head base head
--- base
+++ head
@@ -218,7 +218,7 @@
     app.kubernetes.io/managed-by: Helm
 type: Opaque
 data:
-  SECRET_KEY_BASE: TkUzNk80RXBlVngzdkEwU0RRUVZ5a2EyUnF2dXhySGc5ekpaYjZnZnhYMW1QT1RLcVM4aXo4SGNsNWJWeFV3NkFNU1VrNlhjUmxXWndEMFh4Ukl6SVFLSml2
+  SECRET_KEY_BASE: dldxQ2psWHdzZXZZVDh4WkZkTzFRSFFGOEtCYUozVEFabTJrWGJkSFcxazNsZkh2bVVFNnp4azV5MTE2VWk5RkZZZU80Ym5kWWVzMkxrVGVNNXFPZWdMVG1N
   TOTP_VAULT_KEY: ZHN4dmJuM2p4RGQxNmF6MlFwc1g1QjhPK2xseGpRMlNKRTJpNUJ6eDM4ST0=
   DATABASE_URL: cG9zdGdyZXM6Ly9wb3N0Z3Jlczpwb3N0Z3Jlc0BwbGF1c2libGUtcG9zdGdyZXNxbDo1NDMyL3BsYXVzaWJsZV9kYg==
   CLICKHOUSE_DATABASE_URL: aHR0cDovL2NsaWNraG91c2U6cGFzc3dvcmRAcGxhdXNpYmxlLWNsaWNraG91c2U6ODEyMy9wbGF1c2libGVfZXZlbnRzX2Ri

@jonathandieu jonathandieu self-assigned this Aug 7, 2026
@jonathandieu
jonathandieu marked this pull request as ready for review August 7, 2026 02:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant