From 0c88210d11d513e88526723ee5c2ba985368344f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Tailland?= Date: Thu, 20 Aug 2026 13:25:52 +0200 Subject: [PATCH] Flux setup --- ...zation.yaml => gateway-kustomization.yaml} | 6 +-- dev/api-gateway/policies-kustomization.yaml | 37 +++++++++++++++++++ 2 files changed, 40 insertions(+), 3 deletions(-) rename dev/api-gateway/{kustomization.yaml => gateway-kustomization.yaml} (86%) create mode 100644 dev/api-gateway/policies-kustomization.yaml diff --git a/dev/api-gateway/kustomization.yaml b/dev/api-gateway/gateway-kustomization.yaml similarity index 86% rename from dev/api-gateway/kustomization.yaml rename to dev/api-gateway/gateway-kustomization.yaml index 1b23264..dac4dde 100644 --- a/dev/api-gateway/kustomization.yaml +++ b/dev/api-gateway/gateway-kustomization.yaml @@ -30,9 +30,9 @@ spec: # substitute/substituteFrom at all: that mechanism requires the source # Secret to sit in flux-system (same namespace as this Kustomization), # which put a live copy of the real PAT in a shared, broadly-readable - # namespace. Rejected. The real konnect-auth Secret is applied directly - # into the catalog namespace instead (secret.yaml, kubectl apply -f) — - # never passes through flux-system. + # namespace. Rejected. The real konnect-auth Secret is materialized + # directly into the catalog namespace instead (externalsecret.yaml, via + # External Secrets Operator + Vault) — never passes through flux-system. substituteFrom: - kind: ConfigMap name: dataplane-template-defaults diff --git a/dev/api-gateway/policies-kustomization.yaml b/dev/api-gateway/policies-kustomization.yaml new file mode 100644 index 0000000..7349210 --- /dev/null +++ b/dev/api-gateway/policies-kustomization.yaml @@ -0,0 +1,37 @@ +# Split from gateway-kustomization.yaml on purpose: different change +# cadence (policies get tuned far more often than the Gateway itself gets +# recreated) and different blast radius (a bad policy build/prune can't +# touch the Gateway/DataPlane, and vice versa). Same GitRepository, same +# domain namespace, different path. +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: catalog-dev-api-gateway-policies + namespace: flux-system +spec: + interval: 10m + sourceRef: + kind: GitRepository + name: k8s-platform + path: ./dataplane-globalpolicy-template + prune: true + postBuild: + substitute: + NAME: catalog-dev + NAMESPACE: catalog + # Looked up manually after gateway-kustomization.yaml's + # Gateway/GatewayConfiguration first reconciled — the operator + # auto-names the mirrored KonnectGatewayControlPlane with a random + # suffix, not derivable from NAME. See + # dataplane-globalpolicy-template/global-policies-pluginbindings.yaml's + # comment. Automate this lookup once the self-service pipeline exists. + CONTROL_PLANE_REF_NAME: catalog-dev-bkphl + # Every audience valid anywhere in the catalog domain — grows as the + # domain gains APIs. PLACEHOLDER still: no Keycloak client exists yet + # for "catalog-api" (only the classic-models-api client's own audience + # mapper exists today) — this openid-connect binding will reject every + # real token until that client is created. + JWT_AUDIENCE_WHITELIST: '["catalog-api"]' # PLACEHOLDER audience name, Keycloak client not created yet + substituteFrom: + - kind: ConfigMap + name: dataplane-template-defaults