Github avatar

GyeongSu Han's Github Pages

Helm chart에서 with 문법

Aug 08, 2020 · kubernetes

Helm chart를 직접 구성할 때 여러 컨트롤 플로우가 있는데, 그 중 with이라는 문법이 신기해서 기억에 남는다.

다른 언어로 비교하면 this문법과 비슷하다고 생각하는데, if condition의 기능을 하면서도 this를 변경하는 기능이라고 생각할 수 있다.

test:
  a: 1
  b: 2

와 같이 있다고 할 때 다음과 같이 사용할 수 있다.

{{- with .Values.test }}
  a: {{ .a | default "a" | quote }}
  b: {{ .b | default "b" | quote }}
{{- end }}

helm chart에서 .this라고 볼 수 있는데, with을 사용하면 기존의 .을 새로운 값으로 덮어쓸 수 있다. 그래서 해당 문법을 사용할 때 기존에 있던 값중에 필요한 값이 있다면 해당 값을 저장해 둔 후 사용하는 것이 좋다.

{{ $Release := .Release }}
{{- with .Value.test }}
  test: {{ .a | default $Release.Name | quote }}
{{- end }}

참고: 공식문서