본문 바로가기
software engineering/k8s

Helm - Developing Templates - Template Functions and Pipelines

by _블로그 2021. 2. 17.

https://v2.helm.sh/docs/chart_template_guide/#template-functions-and-pipelines

 

v2 기준

 

Go template language 의 문법에 기초한 Template. 아래와 같이 quote function을 사용 가능.

apiVersion: v1
kind: ConfigMap
metadata:
  name: {{ .Release.Name }}-configmap
data:
  myvalue: "Hello World"
  drink: {{ quote .Values.favorite.drink }}
  food: {{ quote .Values.favorite.food }}

Go의 functions 외에도 Sprig template library의 대부분의 functions을 지원한다. 이에 덧붙여 include와 required function을 지원.

PIPELINES

UNIX의 그것과 같은 컨셉. 아래와 같이 여러 function을 조합할 수 있음.

{{ .Values.favorite.food | upper | quote }}

USING THE DEFAULT FUNCTION

가장 빈번히 쓰이는 function이 default. 특정 값이 없을 경우 이 function arg로 들어간 값으로 설정하는 funciton. 아래의 경우 drink 값이 없으면 "tea"로 설정한다.

drink: {{ .Values.favorite.drink | default "tea" | quote }}

OPERATORS ARE FUNCTIONS

boolean을 리턴하는 functions로 간주되는 operators(eq, ne, lt, gt, and, or, not)가 제공됨.

{{/* include the body of this if statement when the variable .Values.fooString exists and is set to "foo" */}}
{{ if and .Values.fooString (eq .Values.fooString "foo") }}
    {{ ... }}
{{ end }}

.Values.fooString 값이 존재하고 "foo"와 동일하면 if statement 안의 body를 수행하는 snippet

 

LIST

댓글