Add platform infrastructure configuration
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
# AIStor Operator
|
||||
|
||||
상태(2026-07-23): 실제 클러스터 적용 완료. ObjectStore Operator, AdminJob
|
||||
Operator와 admission webhook이 모두 Ready `1/1`이며 단일 ObjectStore를
|
||||
`Initialized/green`으로 관리한다.
|
||||
|
||||
이 디렉터리는 AIStor Operator의 유일한 Kustomize 빌드 루트다. 업스트림 템플릿을
|
||||
복제하거나 수정하지 않고 공식 Chart를 렌더링한다. 홈 클러스터용 재정의 값은
|
||||
`values/home.yaml`에 둔다.
|
||||
|
||||
## 고정된 원본
|
||||
|
||||
| 항목 | 값 |
|
||||
| --- | --- |
|
||||
| Chart 저장소 | `https://helm.min.io/` |
|
||||
| Chart | `aistor-operator` |
|
||||
| Chart 버전 | `5.10.0` |
|
||||
| 애플리케이션 버전 | `v20260721224148.0.0` |
|
||||
| Chart 패키지 SHA-256 | `e5534f5ae4f6f12a3528a8cda5954d73280cba1a8e979e1628fbf3aac76babd1` |
|
||||
|
||||
Chart 캐시는 Git에서 제외된 `.helm/charts/` 아래에 작성된다. 모든 입력 파일이 이
|
||||
빌드 루트 아래에 있으므로 Kustomize의 기본 `RootOnly` 로드 제한으로 충분하다.
|
||||
|
||||
## 라이선스 계약
|
||||
|
||||
Chart 값 `license`는 빈 문자열로 유지해야 한다. 이 빌드 루트를 적용하기 전에
|
||||
`aistor` namespace에 다음 키를 가진 `Secret/minio-license`를 생성한다.
|
||||
|
||||
| Secret | 유형 | 필수 키 |
|
||||
| --- | --- | --- |
|
||||
| `aistor/minio-license` | `Opaque` | `minio.license` |
|
||||
|
||||
라이선스 본문을 Git, values 파일, Shell 기록 또는 렌더링 산출물에 절대 남기지
|
||||
않는다. 이 값을 비워 두면 Chart는 미리 생성한 Secret을 참조하지만 라이선스
|
||||
Secret 자체를 렌더링하지 않는다.
|
||||
|
||||
Operator, admin-job Operator와 admission webhook은 각각
|
||||
`donghyeon-system-product-name`에서 1 replica로 시작한다. 더 이상 권장되지 않는
|
||||
AIHub, Prompt 및 Warp는 비활성화한다. TokenReview는 Chart의 표준 Kubernetes 인증
|
||||
방식이므로 활성 상태를 유지한다.
|
||||
|
||||
Helm으로 직접 설치하지 않고 Kustomize 렌더와 보호 스크립트로만 적용한다.
|
||||
|
||||
```sh
|
||||
kubectl kustomize --enable-helm infrastructure/controllers/aistor-operator
|
||||
```
|
||||
|
||||
공식 Chart가 webhook `caBundle`을 렌더하지만 실행 중인 Operator가 이 값을
|
||||
주입·회전한다. 재적용 때 server-side apply 소유권 충돌이 발생하지 않도록
|
||||
`kustomization.yaml`에서 초기 빈 `caBundle` 필드를 제거한다. 실제 적용과
|
||||
readiness 재검증은 `scripts/bootstrap/apply-aistor.sh --execute`가 수행한다.
|
||||
|
||||
## 공식 참고 문서
|
||||
|
||||
- <https://docs.min.io/aistor/reference/kubernetes/object-store-operator-helm-chart/>
|
||||
- <https://docs.min.io/aistor/installation/kubernetes/install/deploy-aistor-on-kubernetes/>
|
||||
@@ -0,0 +1,5 @@
|
||||
# 기본 확장 지점
|
||||
|
||||
업스트림 리소스는 컨트롤러 디렉터리 루트에 선언된 Helm Chart에서 가져온다.
|
||||
Chart와 무관하고 환경에 종속되지 않는 보조 리소스가 필요할 때만 이곳에 추가하며,
|
||||
Chart 템플릿을 저장소에 복제하지 않는다.
|
||||
@@ -0,0 +1,29 @@
|
||||
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||
kind: Kustomization
|
||||
|
||||
namespace: aistor
|
||||
|
||||
helmGlobals:
|
||||
chartHome: .helm/charts
|
||||
|
||||
helmCharts:
|
||||
- name: aistor-operator
|
||||
repo: https://helm.min.io/
|
||||
version: 5.10.0
|
||||
releaseName: aistor
|
||||
namespace: aistor
|
||||
valuesFile: values/home.yaml
|
||||
includeCRDs: true
|
||||
skipTests: true
|
||||
|
||||
# The Operator injects and rotates this runtime CA. Do not let the Helm render
|
||||
# claim field ownership with an empty value, which would break idempotent SSA.
|
||||
patches:
|
||||
- target:
|
||||
group: admissionregistration.k8s.io
|
||||
version: v1
|
||||
kind: MutatingWebhookConfiguration
|
||||
name: object-store-operator-webhook
|
||||
patch: |-
|
||||
- op: remove
|
||||
path: /webhooks/0/clientConfig/caBundle
|
||||
@@ -0,0 +1,4 @@
|
||||
# 홈 환경 Overlay 확장 지점
|
||||
|
||||
홈 클러스터 Chart 설정은 `../../values/home.yaml`에 둔다. 업스트림 Chart 값으로
|
||||
표현할 수 없는 Kustomize Patch만 이 디렉터리에 둔다.
|
||||
@@ -0,0 +1,37 @@
|
||||
# The official chart always looks for Secret/aistor/minio-license and mounts the
|
||||
# minio.license key. Keep this empty so Helm never renders the license into Git.
|
||||
license: ""
|
||||
|
||||
global:
|
||||
fipsMode: false
|
||||
clusterDomain: cluster.local
|
||||
operator:
|
||||
replicas: 1
|
||||
nodeSelector:
|
||||
kubernetes.io/hostname: donghyeon-system-product-name
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
ephemeral-storage: 100Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
ephemeral-storage: 1Gi
|
||||
|
||||
operators:
|
||||
adminjob:
|
||||
disabled: false
|
||||
aihub:
|
||||
disabled: true
|
||||
object-store:
|
||||
disabled: false
|
||||
replicas: 1
|
||||
tokenValidation: TokenReview
|
||||
webhook:
|
||||
enabled: true
|
||||
replicas: 1
|
||||
prompt:
|
||||
disabled: true
|
||||
warp:
|
||||
disabled: true
|
||||
Reference in New Issue
Block a user