플랫폼 PostgreSQL — Keycloak Phase 2 확장
상태: 2026-07-23 실제 적용, DatabaseRole·Database 모두 applied=true
additive NetworkPolicy도 적용됐으며 기존 PostgreSQL Cluster와 Gitea DB 리소스는
교체하지 않았다.
이 디렉터리는 이미 생성된 platform-postgres CloudNativePG Cluster에 추가하는
Kustomize 빌드 루트다. 의도적으로 Cluster 리소스를 포함하지 않으며 Phase 1
NetworkPolicy를 Patch하거나 교체하지 않는다.
렌더링 결과에는 다음 항목만 있다.
DatabaseRole/platform-postgres-keycloakDatabase/platform-postgres-keycloak- 기존 PostgreSQL operand Pod를 선택하고
keycloaknamespace에서 TCP 5432로 접근하는 것을 허용하는NetworkPolicy/platform-postgres-keycloak-ingress
NetworkPolicy ingress 규칙은 누적되므로 이 확장은 Phase 1의 CloudNativePG, 동일 Cluster 및 Gitea 허용 규칙을 보존한다. 기존 공통 Cluster에는 Keycloak이 자기 Database에 SCRAM으로 접근하도록 허용하는 정확한 규칙과, 바로 다음에 같은 Role의 다른 모든 Database 접근을 거부하는 HBA 규칙이 이미 있다. 이 확장은 Cluster를 Patch하지 않는다.
이 루트를 적용하기 전에 platform-data/keycloak-db-credentials를 생성한다. 유형은
kubernetes.io/basic-auth, label은 cnpg.io/reload: "true", username은
keycloak이어야 하며 비밀번호는 Git 외부에서 제공한다. 이에 대응하는 애플리케이션
측 사본은 keycloak namespace에 둔다.
기본 RootOnly 로드 제한으로 다음과 같이 렌더링한다.
kubectl kustomize services/platform-postgres-keycloak
Phase 1 Cluster가 Ready 상태이고 Keycloak Secret 계약이 존재할 때만 이 확장을
적용한다. 렌더링 결과에 Cluster 리소스가 없어야 한다.