Files
kong-platform-llm/dev/proxy-kustomization.yaml
T
Stéphane Tailland 5a2addb073 Source the control plane from Vault and use a stable ref name
Two hardcoded values tied this repo to one specific Konnect org, and
replacing that org broke both.

CONTROL_PLANE_ID was pasted into gateway-kustomization.yaml. It now
comes from Vault through External Secrets, into a Secret in flux-system
that postBuild.substituteFrom reads. flux-system is acceptable for the
id — it is visible in the Konnect UI URL — but not for the token, which
keeps going straight to the domain namespace as before.

CONTROL_PLANE_REF_NAME held the random suffix the Gateway operator gives
its auto-created mirror CR, looked up by hand. The new org recreated
those CRs under new suffixes, so the ref named an object that no longer
existed and the domain's Kong entities sat Programmed=False. It now
names the ${NAME}-cp mirror declared in k8s-platform's
dataplane-template — derived from NAME, stable across Gateway
recreations and org changes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-26 16:30:33 +02:00

48 lines
1.9 KiB
YAML

apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: platform-llm-dev
namespace: llm
spec:
interval: 10m
sourceRef:
kind: GitRepository
name: platform-llm-dev
path: ./kong
prune: true
dependsOn:
- name: llm-dev-ai-gateway
namespace: flux-system
postBuild:
substitute:
NAME: llm-dev
NAMESPACE: llm
CONTROL_PLANE_REF_NAME: llm-dev-cp
OIDC_ISSUER: https://keycloak.sttlab.eu/realms/sttlab
AGENT_AUDIENCE: '["llm-proxy"]'
OPENROUTER_UPSTREAM_URL: https://openrouter.ai/api/v1/chat/completions
OPENROUTER_EMBEDDINGS_UPSTREAM_URL: https://openrouter.ai/api/v1/embeddings
VECTORDB_HOST: llm-dev-vectordb
VECTORDB_PORT: "6379"
RATE_LIMIT_GLOBAL_TOKENS_PER_MINUTE: "500000"
RATE_LIMIT_PER_CLIENT_TOKENS_PER_MINUTE: "50000"
# Looked up after consumer.yaml's llm-anonymous KongConsumer first
# reconciled — config.anonymous needs the real Consumer ID, not the
# username (Konnect stores it as a literal string otherwise, silently
# never resolving — verified live, request-termination never fired).
LLM_ANONYMOUS_CONSUMER_ID: "1efd79ee-fd2d-4f2d-beb8-e6e9b24185a1"
# The URI path is the collector's routing key: Fluent Bit tags the
# record `llm` and turns that into the Loki label domain=llm.
AUDIT_LOG_ENDPOINT: http://audit-log-collector.observability.svc.cluster.local/llm
substituteFrom:
# Listed first so the Secret below still wins on any key it defines.
# Brings OTEL_TRACES_ENDPOINT, the cluster-wide trace backend, so this
# gateway follows a backend change without a second edit here. The only
# key it shares with the inline block above is OIDC_ISSUER, and both
# carry the same value.
- kind: ConfigMap
name: dataplane-template-defaults
optional: false
- kind: Secret
name: platform-llm-dev-secrets