Add platform infrastructure configuration

This commit is contained in:
donghyeon-ka
2026-08-28 17:35:41 +09:00
parent fa76531e5b
commit 16c337bcc9
302 changed files with 83259 additions and 1 deletions
@@ -0,0 +1,32 @@
# CloudNativePG Operator
이 디렉터리는 Operator의 유일한 Kustomize 빌드 루트다. 공식
`cloudnative-pg` Helm Chart를 복제하거나 수정하지 않고 렌더링한다. 홈 클러스터
변경 사항은 `values/home.yaml`에 둔다.
## 고정된 원본
- Chart 저장소: <https://cloudnative-pg.github.io/charts>
- Chart 버전: `0.29.0`
- Operator 애플리케이션 버전: `1.30.0`
- 공식 저장소 인덱스에 있는 Chart 패키지 SHA-256:
`668e065ff53508d58238788fd35b355a925060843629a951df0e6a9362e6d32f`
Operator는 전체 클러스터를 감시하지만, 자체 namespace 리소스는 `cnpg-system`에서
실행된다. CRD와 클러스터 RBAC은 Chart가 설치한다. 모니터링 스택과 관련 CRD가
준비될 때까지 PodMonitor와 Grafana Dashboard 리소스는 비활성화한다.
저장소 공통 규칙에 따라 다음과 같이 렌더링한다.
```bash
kubectl kustomize --enable-helm infrastructure/controllers/cloudnative-pg
```
Kustomize는 Git에서 제외된 이 디렉터리의 `.helm/charts/` 아래에 Chart를 내려받는다.
values 파일도 빌드 루트 아래에 있으므로 기본 `RootOnly` 로드 제한으로 충분하다.
`--load-restrictor=LoadRestrictionsNone`는 사용하지 않는다.
## 공식 참고 문서
- <https://cloudnative-pg.io/docs/1.30/installation_upgrade/>
- <https://github.com/cloudnative-pg/charts>
@@ -0,0 +1,5 @@
# 기본 확장 지점
업스트림 Operator는 컨트롤러 디렉터리 루트에 선언된 Helm Chart로 공급한다.
Chart와 무관하고 환경에 종속되지 않는 보조 리소스가 실제로 필요할 때만 이곳에
추가하며, Chart 템플릿을 저장소에 복제하지 않는다.
@@ -0,0 +1,17 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: cnpg-system
helmGlobals:
chartHome: .helm/charts
helmCharts:
- name: cloudnative-pg
repo: https://cloudnative-pg.github.io/charts
version: 0.29.0
releaseName: cloudnative-pg
namespace: cnpg-system
valuesFile: values/home.yaml
includeCRDs: true
skipTests: true
@@ -0,0 +1,5 @@
# 홈 환경 Overlay
현재 홈 클러스터용 Operator Overlay는 `../../values/home.yaml`의 Chart values
파일로 표현한다. Helm values와 내려받은 Chart가 Kustomize의 기본 로드 제한 범위
안에 있도록 컨트롤러 디렉터리를 빌드 루트로 유지한다.
@@ -0,0 +1,31 @@
# Home-cluster overrides for the official CloudNativePG operator chart.
# Chart: cloudnative-pg 0.29.0 / appVersion 1.30.0
replicaCount: 1
crds:
create: true
config:
create: true
secret: false
clusterWide: true
rbac:
create: true
aggregateClusterRoles: false
serviceAccount:
create: true
monitoring:
podMonitorEnabled: false
grafanaDashboard:
create: false
resources:
requests:
cpu: 50m
memory: 100Mi
limits:
cpu: 500m
memory: 256Mi