# StarRocks 버전 갱신 가이드
StarRocks Helm Chart의 버전의 갱신할 경우 작업의 시작은 항상 main에서 이루어져야 한다.

## 1. git 작업 환경 구성
- 서비스 카탈로그 git 다운로드
```
$ git clone https://github.com/paasup/dip-catalog.git
```

- 작업 브랜치로 체크아웃
```
$ git checkout -b update-starrocks/1.11.3
```

## 2. 차트 갱신
- BUILD-README.md, CUSTOM-README.md, custom-values.yaml을 제외한 파일 삭제
  ``` sh
  # chart 디렉토리로 이동
  cd ~/dip-catalog/charts/starrocks
  
  # 파일 삭제 전 삭제할 파일 목록 확인
  find . -mindepth 1 \( -name "CUSTOM-README.md" -o -name "BUILD-README.md"  -o -name "custom-values.yaml" \) -prune -o -print
  
  # 파일 삭제
  find . -mindepth 1 \( -name "CUSTOM-README.md" -o -name "BUILD-README.md"  -o -name "custom-values.yaml" \) -prune -o -exec rm -rf {} +
  ```

- starrocks 차트 다운로드
  ``` sh
  # charts 디렉토리로 이동
  cd ~/dip-catalog/charts
  
  # helm repo 추가
  helm repo add starrocks https://starrocks.github.io/starrocks-kubernetes-operator
  helm repo update
  
  # helm 차트 조회
  helm search repo starrocks/starrocks
  
  # helm 차트 다운로드
  helm pull starrocks/starrocks --version=1.11.3
  
  # 차트 압축 해제
  tar xzvf starrocks-*.tgz
  
  # 필요 없는 파일 삭제
  rm starrocks-*.tgz
  ```
## 3. Starrocks 버전 설정
- Starrocks의 app version은 해당 버전의 latest 버전이다. ex) `3.5-latest`, `4.0-latest`
- `Chart.yaml`, `values.yaml`에 차트 업데이트 시기를 기준으로 해당 최신 버전이 어느 버전인지를 수정한다.
- `Chart.yaml`
``` yaml
apiVersion: v2
appVersion: 3.5.11  # 3.5-latest에서 수정
```

- `values.yaml`
``` yaml
starrocksCluster:
  componentValues:
    image:
      tag: "3.5.11" # 3.5-latest에서 수정
```

## 3. github에 tag 추가
- 갱신작업 진행후 commit
```
$ git add .
$ git commit -m "update-starrocks/1.11.3"
```

- main 브랜치에 체크아웃 후 merge
```
$ git checkout main
$ git merge update-starrocks/1.11.3
```

- git에 push 후 작업 브랜치 삭제
```
$ git push -u origin main
$ git branch -d update-starrocks/1.11.3
```

- git tag 추가 후 push
```
$ git tag starrocks/1.11.3
$ git push origin starrocks/1.11.3