Deploy payments/dev dataplane (Layer 2), mirroring catalog/customers

Real Konnect Control Plane dc3b2a36-e2ad-4da1-a142-022d0ce6d94e, PAT
in Vault (kong-v2/payments/dev/konnect-pat). Replaces the TODO stubs
with the proven gateway-kustomization.yaml + externalsecret.yaml +
policies-kustomization.yaml pattern. IdP is the local Keycloak from
the start (platform default now, see STATUS.md 15/16), not the VPS.

Layer 3 (payments-api) not started — Gateway answers 404, nothing
routed yet.
This commit is contained in:
Stéphane Tailland
2026-08-23 16:07:29 +02:00
parent 2ab64e32bf
commit 8596514e42
7 changed files with 138 additions and 22 deletions
@@ -0,0 +1,37 @@
# sourceRef points at the GitRepository "k8s-platform" (created once,
# flux-system) — any domain's Kustomization can reference this same
# object, no monorepo: k8s-platform and dataplane-payments stay two
# separate repos, `path` below is relative to the root of whichever repo
# `sourceRef` names.
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
name: payments-dev-api-gateway
namespace: flux-system
spec:
interval: 10m
sourceRef:
kind: GitRepository
name: k8s-platform
path: ./dataplane-template
prune: true
postBuild:
# Domain-specific non-sensitive values inline — no separate ConfigMap to
# forget to re-apply after an edit. Inline substitute always wins over
# substituteFrom regardless of order, so this still overrides
# dataplane-template-defaults where needed.
substitute:
NAME: payments-dev
NAMESPACE: payments
CONTROL_PLANE_ID: "dc3b2a36-e2ad-4da1-a142-022d0ce6d94e"
HOSTNAME: payments-dev.sttlab.local
# Cluster-wide defaults only — the Konnect PAT is NOT handled via
# 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 materialized
# directly into the payments namespace instead (externalsecret.yaml, via
# External Secrets Operator + Vault) — never passes through flux-system.
substituteFrom:
- kind: ConfigMap
name: dataplane-template-defaults