Named Templates
partial 혹은 subtemplate이라고도 불리는데 이게 더 직관적인 듯. template name은 전역이라 중복이 되면 가장 나중에 로드된 것만 쓰이므로 조심.
PARTIALS AND _ FILES
NOTES.txt를 제외하고 templates/ 이하의 파일들은 k8s 파일로 간주됨. 그리도 _로 시작하는 파일도 k8s 파일로 간주되지 않음. 주로 chart subtemplates으로써의 helpers로 사용된다.
DECLARING AND USING TEMPLATES WITH DEFINE AND TEMPLATE
define action으로 template 정의 가능. 그리고 template action으로 사용한다.
{{- define "mychart.labels" }}
labels:
generator: helm
{{- end }}
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ .Release.Name }}-configmap
{{- template "mychart.labels" }}
...
define으로 정의하는 subtemplates는 _helpers.tpl에 주로 정의한다.
SETTING THE SCOPE OF A TEMPLATE
아래와 같이 Built-in objects를 subtemplate에 사용하고
{{/* Generate basic labels */}}
{{- define "mychart.labels" }}
labels:
chart: {{ .Chart.Name }}
{{- end }}
아래와 같이 template action으로 사용하면 기대와 달리 .Chart.Name이 삽입되지 않는다.
{{- template "mychart.labels" }}
scope이 안 맞아서 인데 아래와 같이 scope(.)을 넘겨주면 Built-in objects에 접근이 가능하다.
{{- template "mychart.labels" . }}
THE INCLUDE FUNCTION
template action은 action이라 다른 function과 조합이 불가. template의 function 버전이 include이다. 아래와 같이 nindent와 조합해서 indent를 적용할 수 있음.
apiVersion: v1
kind: ConfigMap
metadata:
...
labels:
{{- include "mychart.app" . | nindent 4 }}
nindent는 indent 전 newline을 넣는 function
LIST
'software engineering > k8s' 카테고리의 다른 글
status Error인 pod 모두 삭제하기 (0) | 2021.03.31 |
---|---|
Helm - Developing Templates - Variables (0) | 2021.02.18 |
Helm - Developing Templates - Flow Control (0) | 2021.02.17 |
Helm - Developing Templates (0) | 2021.02.17 |
Helm - Developing Templates - Template Functions and Pipelines (0) | 2021.02.17 |
댓글