# flink-kubernetes-operator 버전 갱신 가이드
Flink Kubernetes Operator Helm Chart의 버전을 갱신할 경우 작업의 시작은 항상 main에서 이루어져야 한다.

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

- 작업 브랜치로 체크아웃
```
$ git checkout -b update-flink-kubernetes-operator/1.13.0
```

## 2. helm chart 업데이트
- BUILD-README.md, CUSTOM-README.md, custom-values.yaml을 제외한 파일 삭제
  ``` sh
  # chart 디렉토리로 이동
  cd ~/dip-catalog/manifests/helm/flink-kubernetes-operator
  
  # 파일 삭제 전 삭제할 파일 목록 확인
  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 {} +
  ```

- flink-kubernetes-operator 차트 다운로드
  ``` sh
  # manifests/helm 디렉토리로 이동
  cd ~/dip-catalog/manifests/helm
  
  # helm repo 추가
  helm repo add flink-operator-repo https://downloads.apache.org/flink/flink-kubernetes-operator-1.13.0
  helm repo update
  
  # helm 차트 조회
  helm search repo flink-operator-repo/flink-kubernetes-operator

  # helm 차트 다운로드
  helm pull flink-operator-repo/flink-kubernetes-operator
  
  # 차트 압축 해제
  tar xzvf flink-kubernetes-operator-*.tgz
  
  # 필요 없는 파일 삭제
  rm flink-kubernetes-operator-*.tgz
  ```

## 3. git push
- 갱신작업 진행후 commit
```
$ git add .
$ git commit -m "update flink-kubernetes-operator/1.13.0"
```

- main 브랜치에 체크아웃 후 merge
```
$ git checkout main
$ git merge update-flink-kubernetes-operator/1.13.0
```

- git에 push 후 작업 브랜치 삭제
```
$ git push -u origin main
$ git branch -d update-flink-kubernetes-operator/1.13.0
```

## 4. 차트 버전 정보

- flink-kubernetes-operator/1.13.0
  - Apache Flink Kubernetes Operator를 통한 Flink 클러스터 관리 및 배포
  - Kubernetes 네이티브 방식으로 Flink 애플리케이션 라이프사이클 관리
  - FlinkDeployment, FlinkSessionJob 등 CRD를 통한 선언적 배포 지원
  - 서비스 배포를 위하여 custom-values.yaml에 정의하였다.
  - 차트의 빌드 방법과 배포 방법을 BUILD-README.md, CUSTOM-README.md 문서에 작성하였다.
  - Webhook을 통한 리소스 검증 및 변환 기능 제공
