# mlflow 버전 갱신 가이드

> **카탈로그 업데이트 방식**: 기존 버전 디렉토리는 유지하고, 신규 버전 디렉토리를 새로 생성한다.
> `manifests/helm/mlflow/<new-version>/` 디렉토리를 직접 추가하는 방식으로 관리한다.

## 1. git 작업 환경 구성

- dip-catalog git 다운로드
```sh
git clone https://github.com/paasup/dip-catalog.git
```

- 작업 브랜치로 체크아웃
```sh
git checkout -b update-mlflow/<new-version>
```

## 2. helm chart 업데이트

### 1) 기존 버전 디렉토리 복사

신규 버전 디렉토리를 기존 버전에서 복사하여 시작한다.
`BUILD-README.md`, `CUSTOM-README.md`, `custom-values.yaml`, `README.md`가 함께 복사된다.

```sh
cd ~/dip-catalog/manifests/helm/mlflow

# 기존 버전에서 신규 버전 디렉토리 복사
cp -r 1.9.0 <new-version>
```

### 2) 업스트림 차트 파일 업데이트

신규 버전 디렉토리에서 업스트림 차트 파일만 교체한다.
`BUILD-README.md`, `CUSTOM-README.md`, `custom-values.yaml`, `README.md`는 유지한다.

```sh
cd ~/dip-catalog/manifests/helm/mlflow

# helm repo 추가
helm repo add community-charts https://community-charts.github.io/helm-charts
helm repo update

# 신규 버전 차트 다운로드 후 압축 해제
helm pull community-charts/mlflow --version="<new-version>"
tar xzvf mlflow-<new-version>.tgz -C <new-version> --strip-components=1

# 불필요한 파일 삭제
rm mlflow-<new-version>.tgz
```

## 3. git push 및 tag 추가

- 갱신 작업 진행 후 commit
```sh
git add .
git commit -m "update mlflow/1.9.0"
```

- main 브랜치에 체크아웃 후 merge
```sh
git checkout main
git merge update-mlflow/1.9.0
```

- git에 push 후 작업 브랜치 삭제
```sh
git push -u origin main
git branch -d update-mlflow/1.9.0
```

- git tag 추가 후 push
```sh
git tag mlflow/1.9.0
git push origin mlflow/1.9.0
```

## 4. 차트 버전 정보

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