Files
service-catalog/doc/catalog-stack-classification.md
T
wbsong111 f10d50e400 argo-cd 7.7.0 제거 + CVE 게이트 요약표를 버전 최신순으로 정렬
카탈로그가 한 차트의 여러 버전을 들고 있어서, 게이트 요약표에 버전 정렬이 없으면
최신 버전과 구버전이 위험도 순으로 섞여 "지금 쓸 버전이 어느 정도인가" 를 한눈에
볼 수 없었다. 실측 사례 — argo-cd 10.4.0 이 구버전 7.8.11 사이에 끼어 표시됐다.

  변경 전 (chart asc → 실효 C/H desc)
    argo-cd@7.8.11  argocd:v2.14.5   14/101
    argo-cd@7.8.11  redis:7.4.2       5/60
    argo-cd@10.4.0  dex:v2.45.1       5/52     ← 최신이 구버전 사이에
    argo-cd@7.8.11  dex:v2.42.0       4/55
    argo-cd@10.4.0  argocd:v3.5.1     1/40

  변경 후 (chart asc → 버전 desc → 실효 C/H desc)
    argo-cd@10.4.0  dex:v2.45.1       5/52
    argo-cd@10.4.0  argocd:v3.5.1     1/40
    argo-cd@10.4.0  redis:8.6.4       0/0
    argo-cd@7.8.11  argocd:v2.14.5   14/101
    argo-cd@7.8.11  redis:7.4.2       5/60
    argo-cd@7.8.11  dex:v2.42.0       4/55

- scripts/pipeline/cve-gate.py
  - version_sort_key() 추가. 문자열 비교로는 "10.4.0" < "7.8.11" 이 되어 최신이
    아래로 내려간다. 숫자 구간을 정수로 파싱한다.
    프리릴리스는 코어와 분리해 다룬다 — 단순히 구간을 이어붙이면 리스트가 긴 쪽이
    커져 "1.2.0-rc1" 이 "1.2.0" 보다 최신으로 정렬된다(단위 테스트로 실측).
    semver 규칙대로 프리릴리스 없는 정식 릴리스를 더 크게 본다.
  - 정렬은 안정 정렬을 3번 겹쳐 만든다. 버전만 내림차순이라 reverse=True 가
    필요해 한 번에 튜플 하나로 묶을 수 없다.

- manifests/helm/argo-cd/7.7.0 제거
  게이트 차단 574건 중 237건이 이 버전의 이미지 3개였다
  (argocd:v2.13.0 117 / dex:v2.41.1 61 / redis:7.2.4-alpine 59 — 뒤 둘은 EOSL).
  제거 후 차단 337건.
  doc/catalog-stack-classification.md 의 버전 목록도 갱신했다(10.4.0 이 빠져 있어
  이미 stale 이었다). doc/chart-restructure-plan.md 는 과거 이관 기록이라 두었다.

로컬 파이프라인으로 검증했다(extract → generate → scan → gate, argo-cd 범위).
이미지 6개 / SBOM 6개 성공 / 커버리지 전부 ok.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-19 11:51:46 +09:00

167 lines
7.1 KiB
Markdown

# 카탈로그 스택 분류
`manifests/helm/` 의 차트를 용도별 스택으로 분류한다. 상세 설정·리소스는
[define-chart-resources.md](define-chart-resources.md) 를 따르고, 이 문서는 **분류와 우선순위만** 다룬다.
## 스택 구분
| 스택 | 정의 | 차트 수 |
|------|------|--------|
| **1. DIP 포함 스택** | dipup 이 배포하는 플랫폼 인프라 — 네트워크·스토리지·GitOps·인증·DB·관측 | 28 |
| **2. LLM 스택** | LLM 서빙·게이트웨이·오케스트레이션·관측·벡터 DB | 15 |
| **3. 데이터분석 스택** | 수집·스트리밍·배치·레이크하우스·BI·거버넌스 | 18 |
## 우선순위 기준
| 등급 | 의미 |
|------|------|
| **P0** | 스택 구성의 필수 — 없으면 스택이 성립하지 않음 |
| **P1** | 표준 선택지 — 요건에 따라 대부분 함께 배포 |
| **P2** | 선택·대체·미검증 — 특수 요건에서만 사용 |
> 우선순위는 dipup 기본 배포(argocd·harbor·infisical) 를 P0 기준점으로 삼아 정리한 **초안**이다.
> 실제 배포 정책과 다르면 조정한다.
---
## 1. DIP 포함 스택
### 1-1. 클러스터 기반
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| cert-manager | v1.16.1, v1.21.0 | TLS 인증서 자동 발급 | P0 |
| metallb | 0.16.1 | 베어메탈 LoadBalancer | P1 |
| longhorn | 109.3.1+up1.11.2 | 분산 블록 스토리지 | P1 |
| longhorn-crd | 109.3.1+up1.11.2 | longhorn CRD (선행 설치) | P1 |
| apisix | 2.16.0 | Ingress / API Gateway | P0 |
| etcd | 1.1.12 | apisix 용 차트 (설정 저장소, apisix 서브차트) | P0 |
| kyverno | 3.4.1, 3.8.2 | 정책 엔진 (admission) | P1 |
| rancher | 2.10.1, 2.14.3 | 멀티 클러스터 관리 UI | P0 |
| dnsup | 1.0.1 | 외부 DNS 레코드 동기화 | P0 |
### 1-2. GitOps · 개발 인프라
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| argo-cd | 7.8.11, 10.4.0 | GitOps CD — **dipup 기본** | P0 |
| harbor | 1.16.2, 1.19.1 | 컨테이너 레지스트리 — **dipup 기본** | P0 |
| gitea | 12.4.0, 12.6.0 | 자체 호스팅 Git 서버 — **dipup 기본** | P0 |
### 1-3. 인증 · 시크릿
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| infisical-standalone | 1.9.0 | 시크릿 관리 서버 — **dipup 기본** | P0 |
| secrets-operator | v0.10.33 | Infisical 시크릿 → K8s Secret 동기화 | P0 |
| keycloakx | 7.2.2 | SSO / IdP (paasup realm) — **dipup 기본** | P0 |
### 1-4. 데이터베이스 기반
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| cloudnative-pg | 0.29.0 | PostgreSQL 오퍼레이터 | P0 |
| cnpg-cluster | 1.0.0, 1.1.0 | 서비스별 전용 PG 인스턴스 — dip·keycloakx·gitea·harbor 가 쓰는 PostgreSQL 백엔드 | P0 |
| postgresql-ha | 11.9.4 | bitnami HA PG (cnpg 대체 후 삭제 예정) | P2 |
### 1-5. 관측 (메트릭 · 로그 · 알림)
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| victoria-metrics-cluster | 0.43.0 | 메트릭 시계열 저장소 | P1 |
| victoria-metrics-agent | 0.40.0 | 메트릭 수집 에이전트 | P1 |
| victoria-metrics-alert | 0.41.0 | 알림 룰 평가 | P1 |
| alertmanager | 1.37.0 | 알림 라우팅·중복 제거 | P1 |
| victoria-logs-cluster | 0.1.5 | 로그 저장소 | P1 |
| perses | 0.21.0 | 대시보드 UI | P1 |
| kube-state-metrics | 7.4.0 | K8s 오브젝트 메트릭 | P1 |
| prometheus-node-exporter | 4.55.0 | 노드 메트릭 | P1 |
| victoria-metrics-auth | 0.33.0 | VM 앞단 인증 프록시 | P1 |
| opentelemetry-collector | 0.156.2 | OTel 트레이스·메트릭 수집 | P1 |
---
## 2. LLM 스택
### 2-1. 서빙 · 추론
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| litellm | 0.4.4 | 멀티 LLM 프록시 (OpenAI 호환 API) | P1 |
| vllm | 0.0.11 | 고성능 LLM 추론 엔진 (GPU) | P1 |
| ollama | 1.1.2 | 경량 로컬 LLM 서빙 | P1 |
| kserve | 0.1.0 | 범용 모델 서빙 (InferenceService) | P1 |
| nim | 25.4.0 | NVIDIA NIM 추론 서비스 (GPU) | P2 |
| nemo | 25.4.0 | NVIDIA NeMo 마이크로서비스 (GPU) | P2 |
### 2-2. 애플리케이션 · UI
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| open-webui | 5.4.0 | 챗 UI (사용자 진입점) | P1 |
| langflow-ide | 0.1.0 | 로우코드 LLM 플로우 IDE | P1 |
| flowise | 6.0.0 | 드래그앤드롭 LLM 워크플로 | P1 |
| ragflow | 0.1.0 | 문서 기반 RAG 엔진 | P1 |
### 2-3. 데이터 · 관측 · MLOps
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| langfuse | 1.0.0-rc.2 | LLM 트레이싱·평가·비용 관측 | P2 |
| qdrant | 1.12.4, 1.18.2 | 벡터 DB (RAG 임베딩 저장) | P1 |
| mlflow | 1.9.0, 2.1.0 | 실험 추적·모델 레지스트리 | P1 |
| kubeflow | kustomize | ML 파이프라인 플랫폼 | P2 |
| model-registry | kustomize | 모델 레지스트리 (kubeflow 통합됨) | P2 |
---
## 3. 데이터분석 스택
### 3-1. 스트리밍 · 수집
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| strimzi-kafka-operator | 0.47.0 | Kafka 오퍼레이터 | P1 |
| kafka-cluster | 1.0.0 | Strimzi 기반 Kafka 클러스터 | P1 |
| kafka-ui | 1.5.1 | Kafka 토픽·컨슈머 모니터링 | P1 |
| flink-kubernetes-operator | 1.13.0 | Flink 오퍼레이터 | P1 |
| flink-cdc-session | 0.1.0 | Flink CDC 세션 클러스터 (PG→Iceberg) | P1 |
| flink-cdc-job | 0.1.0 | CDC 파이프라인 잡 제출 | P1 |
| flink-sql-gateway | 0.1.0 | Flink SQL 게이트웨이 | P2 |
| kafka | 32.4.3 | bitnami Kafka (Strimzi 로 대체, 미사용) | P2 |
### 3-2. 배치 · 오케스트레이션
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| airflow | 1.16.0 | 워크플로 오케스트레이션 | P1 |
| spark-operator | 2.0.2 | Spark 배치 잡 실행 | P1 |
### 3-3. 레이크하우스 · 쿼리
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| lakekeeper | 0.8.1, 0.11.0 | Iceberg REST 카탈로그 | P1 |
| starrocks-operator | 1.11.3 | StarRocks 오퍼레이터 | P1 |
| starrocks | 1.11.3, 1.11.3-4.0.0 | MPP 분석 DB (Shared-Data) | P1 |
### 3-4. BI · 거버넌스 · 분석 환경
| 차트 | 버전 | 용도 | 우선순위 |
|------|------|------|:--------:|
| superset | 0.13.5 | BI 대시보드 | P1 |
| openmetadata | 1.12.1 | 데이터 카탈로그·리니지 | P1 |
| openmetadata-dependencies | 1.12.1 | OpenMetadata 부속 (ES 등) | P1 |
| jupyterlab | 1.0.0 | 노트북 분석 환경 | P1 |
| cloudbeaver | 1.1.4 | 웹 DB 클라이언트 | P1 |
---
## 참고
- 차트별 리소스 티어(Small/Medium/Large): [define-chart-resources.md](define-chart-resources.md)
- SBOM·CVE 게이트 대상: [sbom-pipeline.md](sbom-pipeline.md)
- ApplicationSet 정의가 있는 차트: airflow, flowise, lakekeeper, mlflow, openmetadata, superset, victoria-metrics
- 차트별 CVE 트리아지(최신 버전 CRITICAL/HIGH 전체·Fixable): [issue #19](https://github.com/paasup/dip-catalog/issues/19)
(기준 데이터: [helm-catalog-sbom 워크플로 실행](https://github.com/paasup/dip-catalog/actions/runs/31329384655))