# MLflow Helm Chart

MLflow는 머신러닝 실험 추적, 모델 패키징, 배포를 위한 오픈소스 플랫폼이다.

- **Chart version**: 1.9.0
- **App version**: 3.11.1
- **Upstream**: [community-charts/helm-charts](https://github.com/community-charts/helm-charts)
- **PaaSup 커스텀 이미지**: `paasup/mlflow:v3.11.1-oidc` (mlflow-oidc-auth v7.0.3 포함)

> 실제 배포 방법 및 custom-values.yaml 설명은 [CUSTOM-README.md](CUSTOM-README.md)를 참고한다.

---

## 주요 파라미터

### 이미지

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `image.repository` | MLflow 이미지 저장소 | `paasup/mlflow` |
| `image.tag` | 이미지 태그 | `v3.11.1-oidc` |
| `image.pullPolicy` | 이미지 pull 정책 | `IfNotPresent` |
| `initImages.dbchecker.tag` | DB 연결 확인 init 컨테이너 태그 | `1.37` |
| `initImages.mlflowDbMigration.repository` | DB 마이그레이션 init 컨테이너 이미지 | `paasup/mlflow` |
| `initImages.iniFileInitializer.tag` | ini 파일 초기화 init 컨테이너 태그 | `1.37` |
| `replicaCount` | Pod 복제 수 | `1` |

---

### 백엔드 스토어

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `backendStore.databaseMigration` | 시작 시 DB 마이그레이션 실행 여부 | `false` |
| `backendStore.databaseConnectionCheck` | DB 연결 확인 init 컨테이너 활성화 | `false` |
| `backendStore.postgres.enabled` | 외부 PostgreSQL 사용 여부 | `false` |
| `backendStore.mysql.enabled` | 외부 MySQL 사용 여부 | `false` |
| `postgresql.enabled` | 내장 Bitnami PostgreSQL 배포 여부 | `false` |
| `postgresql.auth.database` | PostgreSQL 데이터베이스 이름 | `mlflow` |

---

### Artifact 스토리지

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `artifactRoot.proxiedArtifactStorage` | MLflow 서버를 통한 프록시 아티팩트 접근 활성화 | `false` |
| `artifactRoot.defaultArtifactsDestination` | 기본 아티팩트 저장 경로 | `./mlartifacts` |
| `artifactRoot.s3.enabled` | S3 아티팩트 스토리지 사용 여부 | `false` |
| `artifactRoot.s3.bucket` | S3 버킷 이름 | `""` |
| `artifactRoot.s3.awsAccessKeyId` | S3 액세스 키 | `""` |
| `artifactRoot.s3.awsSecretAccessKey` | S3 시크릿 키 | `""` |
| `artifactRoot.azureBlob.enabled` | Azure Blob Storage 사용 여부 | `false` |
| `artifactRoot.gcs.enabled` | Google Cloud Storage 사용 여부 | `false` |

---

### 인증

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `auth.enabled` | MLflow 기본 인증 활성화 | `false` |
| `auth.adminUsername` | 기본 관리자 계정명 | `admin` |
| `auth.adminPassword` | 기본 관리자 비밀번호 | `password` |
| `extraArgs.appName` | MLflow 앱 플러그인 이름 (`oidc-auth` 설정 시 OIDC 활성화) | `""` |
| `extraArgs.uvicornOpts` | uvicorn 추가 옵션 | `""` |
| `extraArgs.allowedHosts` | 허용할 호스트명 | `""` |

---

### 로깅

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `log.enabled` | MLflow gunicorn 로깅 활성화 | `true` |
| `log.level` | 로그 레벨 | `info` |

> `extraArgs.uvicornOpts` 사용 시 `log.enabled: false` 필수 (gunicorn/uvicorn 충돌 방지)

---

### 네트워크

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `service.type` | 서비스 타입 | `ClusterIP` |
| `service.port` | 서비스 포트 | `80` |
| `ingress.enabled` | Ingress 활성화 여부 | `false` |
| `ingress.className` | Ingress class 이름 | `""` |
| `ingress.hosts` | Ingress 호스트 목록 | `[]` |
| `ingress.tls` | TLS 설정 목록 | `[]` |

---

### 리소스

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `resources.limits.cpu` | CPU 상한 | `""` |
| `resources.limits.memory` | 메모리 상한 | `""` |
| `resources.requests.cpu` | CPU 요청량 | `""` |
| `resources.requests.memory` | 메모리 요청량 | `""` |

---

### 확장

| 파라미터 | 설명 | 기본값 |
|---------|------|--------|
| `extraEnvVars` | 추가 환경변수 맵 (`KEY: VALUE` 형식) | `{}` |
| `extraSecretNamesForEnvFrom` | 환경변수로 주입할 Secret 이름 목록 | `[]` |
| `extraVolumes` | 추가 볼륨 목록 | `[]` |
| `extraVolumeMounts` | 추가 볼륨 마운트 목록 | `[]` |
| `extraArgs` | MLflow 서버 추가 인수 맵 | `{}` |
