Deploy agentgateway in standalone mode, not the K8s Gateway-API control plane
Date: 2026-06-06 Status: Superseded by hl-m3c Decision: hl-jd4 Deciders: sean
Context
Section titled “Context”agentgateway supports two deployment models: standalone (one config.yaml as a ConfigMap, raw kustomize Deployment behind Traefik IngressRoutes) and a Kubernetes control-plane using Gateway-API CRDs (AgentgatewayPolicy/Backend). The cluster already standardizes on Traefik IngressRoutes + forward-auth middleware.
Decision
Section titled “Decision”agentgateway runs in standalone mode: one config.yaml ConfigMap, a kustomize Deployment behind Traefik IngressRoutes, mirroring the existing argocd/app-configs/litellm/ structure.
Rationale
Section titled “Rationale”- One LLM proxy + one MCP upstream do not justify the Gateway-API CRD abstraction layer.
- Standalone config.yaml is GitOps-native, hot-reloadable via Stakater Reloader, and follows established cluster patterns.
- Adopting Gateway-API CRDs is explicitly a non-goal for this scope.
Alternatives Considered
Section titled “Alternatives Considered”- Standalone config.yaml ConfigMap (CHOSEN) — simple, matches the litellm app-config shape; GitOps-native; Reloader hot-reload. Cost: all config in one YAML; adding routes edits the ConfigMap.
- K8s Gateway-API control plane (AgentgatewayPolicy/Backend CRDs) — rejected: large CRD surface for one LLM proxy + one MCP upstream; overkill; deviates from the established ingress pattern.
Consequences
Section titled “Consequences”Positive: deployment shape is legible to anyone familiar with the litellm app-config; no new CRD types in the cluster. Negative: if routing grows substantially (many upstreams/policies), migrating to Gateway-API CRDs needs a config-translation effort. Neutral: standalone and CRD modes are not permanently exclusive — the option remains open.
References
Section titled “References”- Superseded by: hl-m3c