# 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: payments-dev-api-gateway-policies namespace: payments spec: interval: 10m sourceRef: kind: GitRepository name: k8s-platform # k8s-platform lives in flux-system: the templates are the platform's, # this Kustomization is the team's. sourceRef resolves in the # Kustomization's own namespace unless told otherwise, hence the # explicit namespace rather than a copy of the source per domain. namespace: flux-system path: ./dataplane-globalpolicy-template prune: true postBuild: substitute: NAME: payments-dev NAMESPACE: payments # Stable by construction: the mirror CR is declared with this derived # name in k8s-platform/dataplane-template/controlplane-mirror.yaml, so # it no longer has to be looked up after each Gateway reconcile. CONTROL_PLANE_REF_NAME: payments-dev-cp # Every audience valid anywhere in the payments domain. mcp-payments # added 2026-08-23 alongside the payments-mcp Kong layer # (payments-api/kong/mcp/). JWT_AUDIENCE_WHITELIST: '["payments-api", "mcp-payments"]' # Local in-cluster Keycloak is the platform-wide IdP now (see # ../../../STATUS.md sections 15/16), not dataplane-template-defaults' # stale VPS value — confirmed reachable in-cluster before wiring this # in, same pattern as catalog/customers. OIDC_ISSUER: https://keycloak.sttlab.local/realms/classic-models substituteFrom: - kind: ConfigMap name: dataplane-template-defaults