PgWeb
PgWeb은 클러스터 운영자를 위해 배포된 경량 PostgreSQL 웹 UI입니다. 일반 제품 런타임 경로의 일부는 아닙니다.
소스 경로
lumie-infra/storage/pgweb/argocd.yamllumie-infra/storage/pgweb/helm-values.yamllumie-infra/storage/pgweb/common-values.yamllumie-infra/security/teleport/agent/helm-values.yaml
런타임 계약
- deployment는
lumie-db네임스페이스에서 실행됩니다. bjw-s/app-template차트와 공유charts/commonoverlay를 사용합니다.PGWEB_DATABASE_URL은pgweb-db-secrets시크릿에서 옵니다.- 이 시크릿은 Vault 경로
infrastructure/postgresql에서 렌더링되며 다음을 가리킵니다.- 호스트
lumie-db-rw.lumie-db.svc - 데이터베이스
lumie
- 호스트
소스 경로: lumie-infra/storage/pgweb/common-values.yaml
접근 경계
- 차트에서 ingress는 비활성화됩니다.
- 의도된 UI 경로는
http://pgweb.lumie-db.svc.cluster.local:80을 프록시하는pgweb이라는 Teleport 앱입니다.
이는 PgWeb을 퍼블릭 서비스가 아니라 운영자 대상 admin 표면으로 만듭니다.
왜 중요한가
- PgWeb은
infra-db가 아니라 메인 제품 데이터베이스를 대상으로 합니다. - 공유 PostgreSQL Vault 경로에서 렌더링된 높은 권한의 데이터베이스 자격 증명을 사용합니다.
- 애플리케이션 수준 테넌시와 비즈니스 규칙을 우회하므로 direct database access처럼 취급해야 합니다.
장애 지점
- VaultStaticSecret이 새로고침을 멈추면 pod는 계속 실행되지만 비밀번호 드리프트 후 재연결하지 못합니다.
- 도구가
lumie-db-rw를 직접 가리키므로 primary 서비스 가용성이 UI에 직접 영향을 주며, CNPG pooler를 거치지 않습니다. - 범용 SQL UI이기 때문에 여기서의 운영자 실수는 애플리케이션 코드가 강제하는 backend validation, RLS 컨텍스트 전파, audit 관행을 우회합니다.
검증
kubectl get applications.argoproj.io -n argocd pgweb
kubectl get pods -n lumie-db | rg pgweb
kubectl get secret -n lumie-db pgweb-db-secrets
kubectl describe deploy -n lumie-db pgweb
관측성
- PgWeb은 저장소 로컬 values 안에 별도 observability 스택을 정의하지 않습니다.
- 헬스는 주로 deployment, pod readiness, Teleport 앱 도달성으로 운영 측면에서 보입니다.