Helm은 쿠버네티스를 쉽게 배포할 수 있도록 만들어주는 패키지 관리 툴이다. Helm 에서 개인 repository를 설정할 수 있는데 여기선 Github을 활용한 방법을 간략히 설명하도록 하겠다. >배포하고자 하는 환경에 Helm이 설치되어 있어야 한다. Github에 저장하고자 하는 레퍼지토리를 생성한다. ![](https://uzilog-upload.s3.ap-northeast-2.amazonaws.com/private/ap-northeast-2%3Ab6c10628-1f45-492c-a9eb-f54020bc8014/1583409223049-image.png) 개발 환경으로 돌아와 배포하고자 하는 폴더를 만든다. ``` shell $ mkdir my-helm-repository && cd my-helm-repository ``` 해당 repository에 저장하고자 하는 차트를 패키지로 만든다. ``` shell $ helm package ~/my-test-app Successfully packaged chart and saved it to: /root/my-helm-repository/my-test-app-1.0.1.tgz ``` helm을 초기화 한다. ``` shell $ helm repo index . ``` helm을 초기화 하고 나면 index.yaml 파일이 생성된 것을 확인할 수 있다. ``` shell $ ls -al -rw-r--r-- 1 root root 276 3월 5 11:39 index.yaml -rw-r--r-- 1 root root 450 3월 5 11:39 my-test-app-1.0.1.tgz ``` `index.yaml`을 확인 하면 아래와 같이 차트 파일들을 관리한다. ``` yaml apiVersion: v1 entries: my-test-app: - created: "2020-03-05T11:39:31.617391702Z" digest: e58c5f742decedbeba6f2827409a7c6168494fb4b8634dc14304274d67646789 name: my-test-app urls: - my-test-app-1.0.1.tgz version: 1.0.1 generated: "2020-03-05T11:39:31.615693426Z" ``` 전부 Github으로 커밋한다. ``` shell $ git init $ git remote add origin https://github.com/Uzihoon/my-helm-repository.git $ git status $ git add * $ git commit -m 'initial commit' $ git push -u origin master ``` Github에 해당 Repository로 돌아와 상단 Setting 버튼을 눌러 설정 화면으로 진입 한뒤, 스크로를 하다보면 아래 그림과 같이 GitHub Page 설정 부분이 나온다. 여기서 Source를 master branch로 하면 해당 repository를 Github Page를 통해 HTTP 요청을 받을 수 있는 상태가 된다. ![](https://uzilog-upload.s3.ap-northeast-2.amazonaws.com/private/ap-northeast-2%3Ab6c10628-1f45-492c-a9eb-f54020bc8014/1583409806184-image.png) 개발환경으로 돌아와 helm repository를 업데이트 한다. ``` shell $ helm repo add YOUR_REPO_NAME YOUR_GITHUB_IO_URL $ helm repo update ``` `helm repo list`를 통해 성공적으로 repository가 생성된 것을 확인할 수 있다. ``` shell $ helm repo list NAME URL stable https://kubernetes-charts.storage.googleapis.com local http://127.0.0.1:8879/charts jenkins-x https://storage.googleapis.com/chartmuseum.jenkins-x.io charts.bitnami.com https://charts.bitnami.com/bitnami charts.jetstack.io https://charts.jetstack.io uzihoon https://uzihoon.github.io/helm-repository/ ```