This Kustomization pulled dataplane-template-defaults via substituteFrom with optional: false, but that ConfigMap is deliberately single-instance in flux-system and this object lives in the llm namespace, so the build failed outright: configmaps "dataplane-template-defaults" not found. That is why the stack was never in the cluster and the llm KongService, KongRoute and plugin bindings had been applied by hand instead. Moving the Kustomization to flux-system would fix the lookup and break something worse: its substitution Secret holds OPENROUTER_BEARER and LIBRECHAT_APIKEY, and copying real credentials into flux-system is exactly what the Konnect PAT comment in gateway-kustomization.yaml refuses to do. OTEL_TRACES_ENDPOINT was the only key this stack took from that ConfigMap, so inline it and drop the reference. The trade-off is recorded next to the value: changing the cluster trace backend now takes an edit here too. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
platform-llm
Platform-owned llm bounded context — Gateway infrastructure and the
shared LLM proxy in one repo. Never split per functional domain, and never
split between infra/routing here either: both are owned by the same
(platform) team, unlike catalog's dataplane-catalog/catalog-api split
(feature team vs. platform team, a real access boundary that doesn't exist
for this domain).
What it does
Fronts OpenRouter (https://openrouter.ai) via one proxy route
(/llm/v1/chat/completions) — the client's own model field selects among
any OpenRouter-hosted model, not just a fixed set Kong picks.
Active policies:
ai-rate-limiting-advanced, token-based, both global (across all callers) and per-client (per authenticated consumer).ai-prompt-guard(regex) andai-semantic-prompt-guard(embedding-based, backed by Redis Stack) for prompt-injection/jailbreak safeguarding.- Two-tier auth:
key-auth(static, shared key) for chatbot UIs that can't do OIDC on their outbound LLM connection (LibreChat and similar tools — structural limitation of that whole category, not fixable client-side),openid-connectfor agents built in-house. Either succeeds; a request passing neither is rejected (request-terminationon the fallback anonymous consumer).
Not yet active: PII redaction (ai-sanitizer) — needs a private Kong
Cloudsmith registry image and an AI Gateway Enterprise entitlement, blocked
pending that access. Everything else in this repo is unaffected.
Structure
dev/ai-gateway-kustomization.yaml+dev/ai-gateway-externalsecret.yaml— Gateway/DataPlane/Control Plane infra (same sharedk8s-platformtemplate every domain uses).dev/proxy-kustomization.yaml+dev/proxy-externalsecret.yaml— the LLM proxy itself (./kong).dev/gitrepository.yaml— this repo, self-referential.