Files
wbsong111 6878b61efa 자체 빌드 이미지 3종(cloudnative-pg/cnpg-postgresql/etcd) + 대응 헬름 차트 도입
security-catalog 프로젝트에서 첫 실사용 자체 빌드 이미지 3종을 포팅한다 — 전부
상위 태그·베이스 OS 교체로 해소 안 되는 CVE(Go 모듈 정적 링크 또는 미수정 CRITICAL/
HIGH)를 자체 빌드(소스 컴파일 또는 SUSE BCI 재설치)로 대응한다:

- images/cloudnative-pg: CNPG operator, release-1.30 소스 컴파일 + bci-micro
- images/cnpg-postgresql: PostgreSQL 18.4, bci-base + zypper 재설치
- images/etcd: etcd v3.7.1, 소스 컴파일(x/text 강제 업그레이드) + bci-micro

함께 추가:
- manifests/helm/{cloudnative-pg,cnpg-cluster,etcd} — 위 이미지를 참조하는 카탈로그 차트
- scripts/deploy-test/*.sh, .claude/deploy-test-procedure.md — CVE 0건과 별개로
  "실제로 뜨는가"를 검증하는 배포 스모크 테스트
- .claude/pitfalls.md — 자체 빌드/배포 테스트 중 실측한 함정 모음

검토 중 발견해 반영한 수정:
- cloudnative-pg 차트의 image 블록을 etcd와 동일한 registry/repository/tag 3필드+
  따옴표 포맷으로 통일 — 기존 포맷(repository에 registry+repo 결합, 따옴표 없음)은
  patch-catalog-tag.py 의 split 패처가 tag만 갱신하고 repository는 그대로 남기는
  조용한 부분 치환을 일으켜, 향후 레지스트리 마이그레이션 시 깨진 참조를 만들 수 있었다
- cnpg-cluster 차트의 SLES 커버리지 코멘트를 최신 실측(trivy가 SLES 15.7을 정상
  커버함, 2026-07-29 재측정)에 맞게 정정 — 폐기된 "측정 불가/OVAL 우회 필요" 결론이
  남아있었다
- CLAUDE.md/MEMORY.md 의 "images/ 디렉토리 없음" 서술을 갱신하고, 레지스트리
  마이그레이션(docker.io/wbsong111 → docker.io/paasup)·decisions/analysis 문서 이관·
  리소스 프로파일 추가를 다음 작업으로 기록

이 3개 이미지는 아직 dip-catalog 자체 CI(build-image.yml)로 빌드·게이트·push 를
실행해본 적이 없다 — 현재 참조 태그는 security-catalog 쪽에서 이미 검증된 것이다.

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

140 lines
3.9 KiB
Go Template

{{ template "chart.header" . }}
{{ template "chart.deprecationWarning" . }}
{{ template "chart.badgesSection" . }}
{{ template "chart.description" . }}
{{ template "chart.homepageLine" . }}
About this chart
----------------
Helm chart to install the [CloudNativePG operator](https://cloudnative-pg.io), originally created and sponsored
by [EDB](https://www.enterprisedb.com/) to manage PostgreSQL workloads on any supported Kubernetes cluster
running in private, public, or hybrid cloud environments.
**NOTE**: this chart supports only the latest point release of the CloudNativePG operator.
The chart installs only the operator (controller manager, webhooks, RBAC and CRDs). To provision a PostgreSQL
`Cluster` resource, use the companion [`cluster`](https://github.com/cloudnative-pg/charts/tree/main/charts/cluster) chart
(see the [Cluster chart README](https://github.com/cloudnative-pg/charts/blob/main/charts/cluster/README.md) for details)
or apply your own `Cluster` manifest.
Getting Started
---------------
### Add the chart repository
```console
helm repo add cnpg https://cloudnative-pg.github.io/charts
helm repo update
```
### Install the operator
```console
helm upgrade --install cnpg \
--namespace cnpg-system \
--create-namespace \
cnpg/cloudnative-pg
```
### Install with custom parameters
You can override individual chart values from the command line with `--set`.
For example, to enable the Prometheus `PodMonitor`:
```console
helm upgrade --install cnpg \
--namespace cnpg-system \
--create-namespace \
--set monitoring.podMonitorEnabled=true \
cnpg/cloudnative-pg
```
> **Note**
> Enabling the `PodMonitor` requires the Prometheus Operator CRDs to be installed in the cluster.
> Without them the install fails with `no matches for kind "PodMonitor"`.
See the [Values](#values) section below for the full list of configurable parameters.
### Verify the installation
```console
kubectl -n cnpg-system get deploy
kubectl -n cnpg-system rollout status deploy/cnpg-cloudnative-pg
```
Single namespace installation
-----------------------------
It is possible to limit the operator's capabilities to solely the namespace in which it has been installed.
With this restriction, the cluster-level permissions required by the operator will be substantially reduced,
and the security profile of the installation will be enhanced.
You can install the operator in single-namespace mode by setting the `config.clusterWide` flag to `false`,
as in the following example:
```console
helm upgrade --install cnpg \
--namespace cnpg-system \
--create-namespace \
--set config.clusterWide=false \
cnpg/cloudnative-pg
```
**IMPORTANT**: the single-namespace installation mode can't coexist with the cluster-wide operator. Otherwise
there would be collisions when managing the resources in the namespace watched by the single-namespace
operator. It is up to the user to ensure there is no collision between operators.
Uninstalling
------------
```console
helm uninstall cnpg --namespace cnpg-system
```
> **Warning**
> Uninstalling the chart does not remove the CRDs. Deleting them cascade-deletes every `Cluster` (and other
> CloudNativePG) resource across the whole cluster, together with the PostgreSQL data stored in their PVCs.
> This is irreversible, so only delete the CRDs if you intend to permanently remove all managed databases.
{{ template "chart.sourcesSection" . }}
{{ template "chart.requirementsSection" . }}
{{ template "chart.valuesSection" . }}
{{ template "chart.maintainersSection" . }}
Contributing
------------
Please read the [code of conduct](https://github.com/cloudnative-pg/charts/blob/main/CODE-OF-CONDUCT.md) and the
[guidelines](https://github.com/cloudnative-pg/charts/blob/main/CONTRIBUTING.md) to contribute to the project.
Copyright
---------
Helm charts for CloudNativePG are distributed under [Apache License 2.0](./LICENSE).
{{- if not .SkipVersionFooter }}
{{ template "helm-docs.versionFooter" . }}
{{- end }}