a9290c9650
위 4개 커밋은 build-image.yml 이 자동 생성한 것이고, cnpg-postgresql 은 1.0.0 만 갱신됐다. 1.1.0 도 같은 이미지를 가리키는데 낡은 태그(20260803)로 남아 있었다. 원인은 매핑이다. images/cnpg-postgresql/catalog.env 의 CHART_DIRS 가 1.0.0 하나만 선언해 워크플로가 1.1.0 을 볼 방법이 없었다. 카탈로그는 여러 버전을 동시에 보관하는 "버전 보관소" 이므로 이미지 하나가 여러 버전 디렉토리에 걸리는 것이 정상이다 — 매핑이 그것을 표현해야 한다. CHART_DIRS="manifests/helm/cnpg-cluster/1.0.0" → CHART_DIRS="manifests/helm/cnpg-cluster/1.0.0 manifests/helm/cnpg-cluster/1.1.0" 다른 세 이미지는 전수 확인 결과 CHART_DIRS 가 참조를 전부 덮는다(etcd 1.1.12 · cloudnative-pg 0.29.0 · apisix 2.16.0). cnpg-postgresql 만 누락이었다. 이 누락은 조용히 지나간다는 점이 문제다 — patch-catalog-tag.py 는 "예상 패턴을 못 찾으면 실패" 하지만, 애초에 대상 목록에 없는 파일은 검사하지 않는다. 매핑이 불완전하면 게이트만 계속 그 이미지를 차단으로 잡고 이유를 알기 어렵다. Refs #35 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
cnpg-cluster
CloudNativePG 커스텀 리소스를 Helm 으로 감싼 PostgreSQL 클러스터 차트.
- 차트 버전:
1.1.0 - PostgreSQL:
18 - 필요 operator:
cloudnative-pg차트0.29.0(operator1.30.0) 이상
생성되는 리소스
| 리소스 | 조건 | 파일 |
|---|---|---|
Cluster |
항상 | templates/cluster.yaml |
Database |
databases 가 비어있지 않을 때 |
templates/database.yaml |
Pooler |
pooler.enabled: true |
templates/pooler.yaml |
ScheduledBackup |
backup.enabled + scheduledBackup.enabled |
templates/scheduled-backup.yaml |
operator 가 위 리소스를 받아 StatefulSet 없이 개별 Pod, PVC, Service(-rw/-ro/-r),
TLS 시크릿을 생성한다.
빠른 시작
helm upgrade pg-cnpg ./ -f custom-values.yaml --install -n <namespace> --create-namespace
배포 옵션과 주의사항은 CUSTOM-README.md, 버전 갱신 절차는 BUILD-README.md 를 참고한다.
값 파일
| 파일 | 용도 |
|---|---|
values.yaml |
차트 기본값 (전체 키 문서화) |
custom-values.yaml |
PaaSup 표준 오버라이드 |
dip-values.yaml |
DIP 플랫폼 운영 배포값 (백업·pooler·동기복제 활성) |
dip-resources-quotas.yaml |
Small/Medium/Large CPU·메모리 티어 |
dip-volumes-quotas.yaml |
Small/Medium/Large 볼륨 티어 |