diff --git a/doc/chart-restructure-plan.md b/doc/chart-restructure-plan.md new file mode 100644 index 0000000..ab0bf43 --- /dev/null +++ b/doc/chart-restructure-plan.md @@ -0,0 +1,94 @@ +# 차트 디렉토리 구조 변경 계획 + +## 개요 +charts 디렉토리 구조를 `charts/{app_name}`에서 `charts/{app_name}/{chart_version}`으로 변경합니다. 각 Chart.yaml 파일의 버전 정보를 사용합니다. kustomize를 사용하는 `kubeflow`, `model-registry`는 app version을 사용합니다. + +## 현재 구조 vs 새로운 구조 매핑 + +Chart.yaml 분석을 바탕으로 한 현재 구조에서 새로운 구조로의 매핑: + +| 현재 경로 | 차트 버전 | 새로운 경로 | +|-----------|-----------|-------------| +| `charts/airflow/` | 1.16.0 | `charts/airflow/1.16.0/` | +| `charts/argo-cd/` | 7.7.0 | `charts/argo-cd/7.7.0/` | +| `charts/cert-manager/` | v1.16.1 | `charts/cert-manager/v1.16.1/` | +| `charts/dnsup/` | 1.0.1 | `charts/dnsup/1.0.1/` | +| `charts/flowise/` | 6.0.0 | `charts/flowise/6.0.0/` | +| `charts/gitea/` | 12.4.0 | `charts/gitea/12.4.0/` | +| `charts/harbor/` | 1.16.2 | `charts/harbor/1.16.2/` | +| `charts/kafka/` | 32.4.3 | `charts/kafka/32.4.3/` | +| `charts/kafka-cluster/` | 1.0.0 | `charts/kafka-cluster/1.0.0/` | +| `charts/kafka-ui/` | 1.5.1 | `charts/kafka-ui/1.5.1/` | +| `charts/keycloak/` | 18.4.0 | `charts/keycloak/18.4.0/` | +| `charts/kong/` | 2.46.0 | `charts/kong/2.46.0/` | +| `charts/kserve/` | 0.1.0 | `charts/kserve/0.1.0/` | +| `charts/kubeflow/` | 1.10.0 | `charts/kubeflow/1.10.0/` | +| `charts/kyverno/` | 3.4.1 | `charts/kyverno/3.4.1/` | +| `charts/lakekeeper/` | 0.8.1 | `charts/lakekeeper/0.8.1/` | +| `charts/langflow-ide/` | 0.1.0 | `charts/langflow-ide/0.1.0/` | +| `charts/langfuse/` | 1.0.0-rc.2 | `charts/langfuse/1.0.0-rc.2/` | +| `charts/litellm/` | 0.4.4 | `charts/litellm/0.4.4/` | +| `charts/mlflow/` | 2.1.0 | `charts/mlflow/2.1.0/` | +| `charts/model-registry/` | 0.2.19 | `charts/model-registry/0.2.19/` | +| `charts/nemo/` | 25.4.0 | `charts/nemo/25.4.0/` | +| `charts/nim/` | 25.4.0 | `charts/nim/25.4.0/` | +| `charts/ollama/` | 1.1.2 | `charts/ollama/1.1.2/` | +| `charts/open-webui/` | 5.4.0 | `charts/open-webui/5.4.0/` | +| `charts/postgresql-ha/` | 11.9.4 | `charts/postgresql-ha/11.9.4/` | +| `charts/qdrant/` | 1.12.4 | `charts/qdrant/1.12.4/` | +| `charts/ragflow/` | 0.1.0 | `charts/ragflow/0.1.0/` | +| `charts/rancher/` | 2.10.1 | `charts/rancher/2.10.1/` | +| `charts/rancher-monitoring/` | 104.1.2+up57.0.3 | `charts/rancher-monitoring/104.1.2+up57.0.3/` | +| `charts/rancher-monitoring-crd/` | 104.1.2+up57.0.3 | `charts/rancher-monitoring-crd/104.1.2+up57.0.3/` | +| `charts/spark-operator/` | 2.0.2 | `charts/spark-operator/2.0.2/` | +| `charts/starrocks/` | 1.11.3 | `charts/starrocks/1.11.3/` | +| `charts/starrocks-operator/` | 1.11.3 | `charts/starrocks-operator/1.11.3/` | +| `charts/strimzi-kafka-operator/` | 0.47.0 | `charts/strimzi-kafka-operator/0.47.0/` | +| `charts/superset/` | 0.13.5 | `charts/superset/0.13.5/` | +| `charts/unitycatalog/` | 0.2.0 | `charts/unitycatalog/0.2.0/` | +| `charts/vllm/` | 0.0.11 | `charts/vllm/0.0.11/` | + +## 예외 사항 + +### 비표준 차트 구조(kustmize) +- `charts/kubeflow/` - Kustomize 기반 배포, app 버전 1.10.0 제공 +- `charts/model-registry/` - Kustomize 기반 배포, app 버전 0.2.19 제공 + +## 구현 단계 + +1. **백업 단계** + - 현재 charts 디렉토리 백업: `cp -r charts charts_backup_$(date +%Y%m%d_%H%M%S)` + + +2. **디렉토리 구조 변경 단계** + - 각 차트 디렉토리에 대해 버전 하위 디렉토리 생성 후 내용 이동: + ```bash + # 임시 디렉토리에 내용 이동 + mkdir -p /tmp/chart_temp/{app_name} + mv charts/{app_name}/* /tmp/chart_temp/{app_name}/ + + # 버전 디렉토리 생성 후 내용 이동 + mkdir -p charts/{app_name}/{version} + mv /tmp/chart_temp/{app_name}/* charts/{app_name}/{version}/ + + # 임시 디렉토리 정리 + rm -rf /tmp/chart_temp/{app_name} + ``` + + 또는 더 간단한 방법: + ```bash + # 버전 디렉토리 생성 + mkdir -p charts/{app_name}/{version} + + # 버전 디렉토리를 제외한 모든 파일/디렉토리 이동 + find charts/{app_name} -maxdepth 1 -not -name {version} -not -name {app_name} -exec mv {} charts/{app_name}/{version}/ \; + ``` + +3. **검증 단계** + - 모든 파일이 올바르게 이동되었는지 확인 + - 고아 파일이 남아있지 않은지 확인 + - Chart.yaml 파일이 올바른 위치에 있는지 확인 + +4. **문서 업데이트 단계** + - 문서에서 이전 구조에 대한 참조 업데이트 + - 이전 경로를 참조하는 스크립트나 자동화 업데이트