# Spark Operator 버전 갱신 가이드

## 1. git 작업 환경 구성

- 서비스 카탈로그 git 다운로드
```
$ git clone https://github.com/paasup/service-catalog.git
```

- 작업 브랜치로 체크아웃
```
$ git checkout -b update-spark-operator/2.0.2
```

## 2. 차트 업데이트

### 1) 차트 버전 변경
- README-build.md, custom-values.yaml을 제외한 파일 삭제
  ``` sh
  # chart 디렉토리로 이동
  cd ~/service-catalog/charts/spark-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 {} +
  ```


- kubeflow/spark-operator 차트 다운로드
  ``` sh
  # charts 디렉토리로 이동
  cd ~/service-catalog/charts
  
  # helm repo 추가
  helm repo add spark-operator https://kubeflow.github.io/spark-operator
  helm repo update
  
  # helm 차트 
  helm pull spark-operator/spark-operator --version="2.0.2"
  
  # 차트 변경
  tar xzvf spark-operator-*.tgz

  # 필요 없는 파일 삭제
  rm spark-operator-*.tgz
  ```

## 2. 차트 수정 사항

- spark operator controller 권한 부족으로 에러가 발생하여 role 수정
  (**2.0.2 이후 버전에는 수정되어 있음**)
- `./templates/controller/_helpers.tpl` 수정
  ``` yaml
  - apiGroups:
    - extensions
    - networking.k8s.io
    resources:
    - ingresses
    verbs:
    ...
    - list  # 168 line 아래 추가
    - watch # 168 line 아래 추가
  ```

## 3. git push 및 tag 추가
- 갱신작업 진행후 commit
```
$ git add .
$ git commit -m "update spark-operator/2.0.2"
```

- main 브랜치에 체크아웃 후 merge
```
$ git checkout main
$ git merge update-spark-operator/2.0.2
```

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

- git tag 추가 후 push
```
$ git tag spark-operator/2.0.2
$ git push origin spark-operator/2.0.2
```
