@@ -596,6 +596,37 @@ spec:
596596 model: qwen2.5:3b
597597` ` `
598598
599+ # ## Client integration
600+
601+ This proposal covers the **gateway side** : programming the proxy to
602+ require mTLS, route to LLM backends, and enforce access control. The
603+ gateway validates client certificates against the SPIFFE trust bundle
604+ CA and either accepts or rejects the TLS handshake. It does not care
605+ how the client obtained its certificate.
606+
607+ From the client's perspective, consuming the gateway requires two
608+ things :
609+
610+ 1. **Endpoint** — the gateway's in-cluster Service address
611+ (e.g. `https://<gateway-svc>.<ns>.svc:8443`)
612+ 2. **Client certificate** — a valid X.509 SVID from the same trust
613+ domain, presented during the TLS handshake
614+
615+ Any workload with a SPIFFE identity can call the gateway. The agent
616+ code itself doesn't change — it uses the standard OpenAI-compatible
617+ ` /v1/chat/completions` endpoint. How the workload acquires and
618+ presents its SPIFFE certificate (CSI driver, spiffe-helper sidecar,
619+ AuthBridge integration, or native go-spiffe) is the client-side
620+ concern and is out of scope for this proposal.
621+
622+ AuthBridge (agent-to-agent OAuth/OIDC) and the MCP Gateway (MCP
623+ protocol routing) are orthogonal to AI Gateway (model routing and
624+ inference access control). They target different traffic flows and
625+ do not conflict.
626+
627+ Client-side configuration for connecting workloads to AI Gateways
628+ with SPIFFE identity may be addressed in a separate proposal.
629+
599630# # Reconciliation
600631
601632Each policy has its own controller. They run independently, generate
0 commit comments