Files
wbsong111 9e5b6633db 자체 빌드 이미지 레포명을 security-images에서 hardened-containers로 정정한다
실제 레포명은 hardened-containers인데 이관 커밋 이후 문서·워크플로·차트 주석에
잘못된 이름 security-images가 남아 있었다. 텍스트 참조 전체를 정정하고
doc/migrations/의 이관 핸드오프 문서도 파일명까지 리네임했다. env var/secret
이름(SECURITY_IMAGES_REPO, SECURITY_IMAGES_DISPATCH_TOKEN)은 GitHub Secret
재등록이 필요한 별도 운영 작업이라 이번 텍스트 정정 범위에서 제외했다.

덧붙여 scripts/build/patch-catalog-tag.py의 docstring이 삭제된 build-image.yml을
호출자로 여전히 가리키고 있던 것도 실제 호출 경로(check-rebuild-needed.py /
apply-published-tags.py → catalog-tag-update.yml)로 고쳤다.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-08-26 08:16:37 +09:00

113 lines
2.5 KiB
YAML

# cnpg-cluster — DIP 플랫폼 기본 배포값 (멀티 테넌트 운영 기준)
instances: 3
postgresql:
# custom-values.yaml 과 동일하게 SUSE BCI 15.7 자체 빌드를 쓴다.
# 근거·비용은 별도 레포 hardened-containers 의 docs/decisions/0001-cnpg-postgresql-image.md
# (이 레포에는 없다).
# trivy 는 SLES 15.7 을 정상 커버한다(게이트의 CoverageProbe 가 매 스캔마다 확인 —
# doc/sbom-pipeline.md).
# 실효 C/H 0/0, 게이트 PASS.
imageName: "docker.io/paasup/cnpg-postgresql:18.4-bci15.7-hardened-20260820"
parameters:
max_connections: "200"
shared_buffers: 512MB
work_mem: 16MB
maintenance_work_mem: 256MB
effective_cache_size: 3GB
log_timezone: Asia/Seoul
timezone: Asia/Seoul
# 감사 로깅 — pgaudit 대상 지정
pgaudit.log: "ddl, role, write"
pgaudit.log_catalog: "off"
pgaudit.log_parameter: "on"
sharedPreloadLibraries:
- pgaudit
- pg_stat_statements
# 운영 환경은 최소 1개 동기 복제본을 요구한다.
synchronous:
method: any
number: 1
primaryUpdateStrategy: unsupervised
primaryUpdateMethod: switchover
storage:
size: 100Gi
storageClass: longhorn
walStorage:
enabled: true
size: 50Gi
storageClass: longhorn
resources:
requests:
cpu: "1"
memory: 4Gi
limits:
cpu: "4"
memory: 8Gi
bootstrap:
initdb:
database: appdb
owner: appuser
# 플랫폼은 Infisical 로 자격증명을 주입한다.
secretName: "$INFISICAL_SECRET"
encoding: UTF8
postInitApplicationSQL: []
databases:
- name: appdb
owner: appuser
ensure: present
reclaimPolicy: retain
extensions:
- name: pg_stat_statements
- name: pgaudit
enableSuperuserAccess: false
affinity:
enablePodAntiAffinity: true
# 운영 클러스터는 노드 수 >= instances 이므로 required 로 노드 분산을 강제한다.
podAntiAffinityType: required
topologyKey: kubernetes.io/hostname
nodeSelector: {}
tolerations: []
monitoring:
enablePodMonitor: true
backup:
enabled: true
retentionPolicy: 30d
barmanObjectStore:
destinationPath: "s3://dip-pg-backup/cnpg"
endpointURL: ""
s3Credentials:
accessKeyId:
name: pg-backup-s3
key: ACCESS_KEY_ID
secretAccessKey:
name: pg-backup-s3
key: ACCESS_SECRET_KEY
scheduledBackup:
enabled: true
schedule: "0 0 2 * * *"
pooler:
enabled: true
instances: 2
type: rw
poolMode: transaction
parameters:
max_client_conn: "1000"
default_pool_size: "25"