티스토리 뷰

반응형

helm 차트 생성

  • helm create <chart-name>
  • template, test, values.yaml, Chart.yaml, README.md 등 파일들이 chart-name 디렉토리에 생성된다.

 

helm 차트에 대한 조회

  • helm show <조회하고 싶은 대상>
  • 해당 차트에 대한 리소스를 조회할 수 있다. 근데, 사실 직접 파일 찾아서 cat으로 조회하는 것과 큰 차이가 없어서 별로 사용하지 않는다고 한다.
  • cat 과의 차이라면 cat은 주석을 포함해 보여주지만, show를 사용하면 주석은 포함되지 않고 보여준다고 함.

 

helm template에 values 넣어서 출력해보기

  • helm template <chart-name> <chart-directory>
  • helm chart 설치 전에 values가 들어간 상태로 결과를 출력해보고 싶을 때 사용한다. 설치 전, values가 제대로 들어가는지 확인하는 용도로 많이 사용된다고 한다. 콘솔에 출력됨.

 

helm install 을 통해 배포가 되면 그걸 release 되었다고 한다.

 

release 대상으로 조회하는 명령어들이 존재한다.

  • show 와 비슷하게 각 나눠진 파일들에 대한 데이터들을 조회할 수 있다. 다른 점이라면 get 명령어를 사용하고 release 이름을 사용해야 한다.

release 한 차트에 대해 적용된 values 만 보고 싶은 경우

  • helm get values <release-name>

 

template 에서는 {{ .Values.value }} 를 통해 values 값을 가져올 수 있다.

  • go lang의 template 문법이라고 함.

 

Values, Chart, Template, Release 등을 지원해서 사용할 수 있다.

  • Values 의 값을 가져올 때만 소문자고, 나머진 대문자를 사용한다. 뭐 어차피 이거 틀리면 컴파일 오류 나오니깐, 그 때 고쳐도 된다.

 

차트 배포시에 기본적으로 values 를 물고 간다고 함.

  • 즉, helm install <chart-name> . -f values.yaml 을 안해줘도 되고, helm install <chart-name> . 만 해줘도 된다. 단, values 라는 이름을 사용한다는 전제 하에.

 

다양한 환경의 values를 사용하고 있다면, default 속성은 values 에 명시하고, 환경마다 변경하고 싶은 속성만 해당 환경 values yaml에 명시하면 된다.

  • prod 환경에서만 적용해야 할 속성만 따로 values-prod.yaml 을 통해 명시하면 먼저 values.yaml 을 적용하고 그 위에 values-prod.yaml 로 overriding 한다.
  • 이렇게 하고 싶은 경우엔 -f values-prod.yaml 을 명시해줘야만 한다.

 

제일 후순위로 overriding 되는 것은 -set 옵션이다. -set 옵션을 통해 속성 값을 명시해주면 제일 마지막에 overriding 되어서 (거의) 무조건 적용된다고 보면 될 듯?

 

 

helm 생성 시, templates 디렉토리에는 _helpers.tpl 이라는 파일이 있다. 이 파일은 사용자 정의 키워드를 생성하는데 사용된다.

기존에 정의되어져 있는 키워드는 Chart, Values, Template 이 있었다. 이러한 키워드는 template resources(yaml)에서 go lang의 template 문법을 사용해 활용할 수 있다.

  • 예를 들어, {{ .Values.replicaCount }}, {{ .Chart.Name }} 같이 활용해서 값을 가져와 사용할 수 있다.

이런 미리 정의되어 있는 것 말고, 사용자가 helm chart에서 자주 사용되어질 만한 것들을 정의해놓아 사용하고자 한다면 _helpers.tpl에 정의해 사용할 수 있다.

  • 정의하는 법은 나중에 알아보도록 하고, 사용하는 것을 주의해야하는데 기본적으로 정의된 것을 사용하는 것과 방법이 조금 다르다.
  • {{ include "정의한 키워드" . }} 으로 사용할 수 있다. 여기서 맨 마지막에 comma(.)이 있는데 scope을 정하는 의미로 사용된다. 따로 scope을 정할 수도 있지만, 거의 일반적으로 comma를 사용한다. 없으면 오류가 나니, 잊지말고 넣어주도록 하자.
320x100
반응형
댓글
반응형
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함