YJWANG

Helm Chart 만들기 - 1 본문

60.Cloud/80.Kubernetes

Helm Chart 만들기 - 1

왕영주 2021. 2. 16. 13:26

Refer to


https://helm.sh/docs/chart_template_guide/

구성


Helm Chart를 만드는 가이드가 위 공식 문서에 잘 나와있다. Helm에서 지정한 Value가 없어도 당연히 아주 간단히 사용할 수있다.

우선 아래 명령어를 통해 Dir를 생성한다.

# helm create mychart

그럼 아래와 같은 Directory가 Sample 파일들과 같이 생성되는데 우선 Templates 내에 있는 파일들은 설명하지 않고 지나가려한다.

[root@ha01-master-1 helm]# tree mychart/
mychart/
├── Chart.yaml
├── charts
├── templates
└── values.yaml
대상 설명
Chart.yaml 해당 Helm Chart에대한 설명이 기록된다.
charts 해당 chart와 관련된 chart들이 위치하는 Dir이다.
templates 해당 chart를 install할 때 kubernetes에 배포되는 yaml들이 위치한다.
values template에서 사용될 values의 default 값이 지정된 파일로 override 할 수 있다.

이제 Sample로 templates Dir 아래에 sample configmap yaml을 하나 생성한다.

[root@ha01-master-1 mychart]# cat templates/configmap.yaml 
---
apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
  namespace: default
data:
  myvalue: "Hello World"

위에 name을 보면 {{ .Release.Name }}으로 지정된 부분이 있는데 우선 {{ , }}는 value를 뜻하며 시작 .는 최 상단의 value를 뜻한다.
values.yaml 파일에서 직접 지정한 value가 아닌 helm 내에서 미리 지정된 value도 존재하는데 .Release.Name이 이러한 예시이다.

Helm 문서에서는 built-in objects로 표현된다.

즉 최상단 Value 하위에 있는 Release Value 하단의 Name 값을 가져오는 것이다. 여기서 해당 Name은 Chart install 시 지정하는 Release Nmae이다.

확인을 위해 yjwang-test1로 chart를 install 해보자. 아래와 같이 지정한 release name으로 configmap의 name이 binding돼 생성됨을 볼 수 있다.

[root@ha01-master-1 mychart]# helm install yjwang-test ./
NAME: yjwang-test
LAST DEPLOYED: Tue Feb 16 04:13:06 2021
NAMESPACE: default
STATUS: deployed
REVISION: 1
TEST SUITE: None

[root@ha01-master-1 mychart]# helm ls
NAME           NAMESPACE    REVISION    UPDATED                                    STATUS      CHART            APP VERSION
yjwang-test    default      1           2021-02-16 04:13:06.711845422 +0000 UTC    deployed    mychart-0.1.0    1.16.0     

[root@ha01-master-1 mychart]# kubectl get configmaps 
NAME                    DATA   AGE
kube-root-ca.crt        1      7d20h
yjwang-test-configmap   1      7s

만약 위와 같이 바로 설치하지 않고 binding 되는 값을 직접 확인해보고싶다면 아래와 같이 하면 볼 수 있다.

[root@ha01-master-1 mychart]# helm install --dry-run yjwang-test ./
반응형