두번째! helm으로 CVAT을 설치해보자!
CVAT deployment on Kubernetes with Helm
Helm은 템플릿 파일들의 집합(이걸 차트라고 함)을 관리하는 쿠버네티스 패키지 매니저 도구이다.
헬름은 차트와 차트압축파일(tgz)를 만들 수 있고 차트 저장소와 연결해 쿠버네티스 클러스터에 차트를 설치하거나 삭제할 수 있다.
https://github.com/helm/charts
snap install helm --classic
helm dependency build

CVAT 공식 Helm은 Helm Chart Repository에 없고, CVAT Github에 Helm Chart가 있어서 해당 깃허브를 클론해야한다.
git clone https://github.com/opencv/cvat.git
여기서 바로 helm chart를 설치하지 않고 다른 dependency Helm Chart를 사용하기 때문에 dependency build를 진행한다.
helm dependency update
또는 dependecny는 Chart.yaml 파일을 통해서 확인할 수 있다.

많은 dependency가 있는데 여기서

helm에서 values.yaml 파일 내 정의된 값들을 기반으로 template 내 정의된 오브젝트를 생성한다.
원본 values.yaml을 수정하지 않고 수정할 값들만 따로 valus-override.yaml 파일에 정의하면 overriding 된다.
이렇게 해도 되고 나는 다른 방식으로 더 쉽게 해보기로 했다.
일단 CVAT UI에 접근해보기 위해서 생성된 파드 중에 
chart-frontend가 cvat ui라는 것을 알 수 있다. 근데 기본 values.yaml로 install하게 되면 접근이 불가능하다 그렇다면 values.yaml을 수정해보자
기존의 helm 차트를 먼저 삭제하자
helm list
helm uninstall <release_name>
helm show values cvat/cvat > cvat-values.yaml
cvat-values.yaml 파일에 해당부분을 찾아서 수정해주자!!
frontend:
service:
type: NodePort
그런 다음 다시 설치
helm install --generate-name -f cvat-values.yaml .
kubectl get all -o wide해서 해당 nodeport의 포트번호를 확인하면!
minikube ip
curl http://<노드-IP>:30783

이렇게 화면을 볼 수 있다!!!