차트 템플릿 가이드(Chart Template Guide)
차트 템플릿 가이드(Chart Template Guide)
이 가이드는 Helm의 차트 템플릿을 소개하면서 템플릿 언어를 중점적으로 다뤄요. 템플릿은 Kubernetes가 이해할 수 있는 YAML 형식의 리소스 설명인 매니페스트 파일을 생성해요. 템플릿이 어떻게 구조화되는지, 어떻게 쓰는지, Go 템플릿을 작성하고 디버깅하는 방법을 살펴볼게요.
이 가이드는 다음 개념에 집중해요.
- Helm 템플릿 언어
- values 사용하기
- 템플릿 작업을 위한 기법
다른 가이드들이 입문 자료·예시·모범 사례를 제공한다면, 이 가이드는 Helm 템플릿 언어의 세부 사항을 배우는 데 초점을 맞춰요.
Getting Started
차트 템플릿에 대한 빠른 가이드예요. 템플릿 파일을 만들고 렌더링하는 기본부터 시작해요. 정의 파일의 구조와 템플릿이 어떻게 매니페스트를 만드는지 확인할 수 있어요.
Built-in Objects
템플릿에서 사용할 수 있는 내장 객체에 대해 다뤄요. Release, Chart, Values, Capabilities, Template 등 차트 템플릿에서 바로 쓸 수 있는 기본 값들이 있어요.
Values Files
--values(-f) 플래그를 사용하는 방법을 설명해요. values.yaml 파일을 정의하고, 사용자 제공 값으로 덮어쓰고, 기본값을 정하는 방식을 다뤄요. 템플릿은 .Values 객체로 values 파일의 값에 접근해요.
Template Functions and Pipelines
템플릿에서 함수를 사용하는 방법을 보여줘요. quote, default, upper, indent, nindent 같은 함수와 파이프라인(|) 문법으로 값을 변환하고 형식화하는 방법을 다뤄요. Go 템플릿은 파이프(item) 문법을 지원해서 함수를 체이닝할 수 있어요.
Template Function List
Helm에서 사용할 수 있는 템플릿 함수 목록이에요. 문자열·수학·리스트·딕셔너리 조작 함수, 날짜 함수, 인코딩 함수 등을 모아둔 목록이에요.
Flow Control
템플릿 안의 흐름 구조를 간단히 살펴봐요. if/else, with, range 같은 조건·반복 구문을 다뤄요. 이 구조들로 값에 따라 렌더링 내용을 다르게 하거나 리스트를 반복할 수 있어요.
Variables
템플릿에서 변수를 사용하는 방법을 다뤄요. $로 시작하는 변수 선언과 할당으로 값을 저장하고 재사용하는 방식을 보여줘요.
Named Templates
명명된 템플릿(named templates)을 정의하는 방법이에요. define과 template/include 지시문으로 재사용 가능한 템플릿 블록을 만들고, 부분(partial) 템플릿을 구성하는 방법을 다뤄요.
Accessing Files Inside Templates
템플릿에서 파일에 접근하는 방법이에요. .Files 객체로 차트 안의 파일 내용을 읽어 템플릿에 포함할 수 있어요.
Creating a NOTES.txt File
차트 사용자에게 지시 사항을 제공하는 방법이에요. NOTES.txt 파일을 만들어 설치 후 사용자에게 안내 메시지를 보여주는 방식을 다뤄요.
Subcharts and Global Values
서브차트와 전역 값에 상호작용하는 방법이에요. 서브차트의 값 스코프와 global 값을 공유하는 방식을 다뤄요.
The .helmignore File
.helmignore 파일은 차트에 포함하고 싶지 않은 파일을 지정하는 데 써요. .gitignore처럼 차트 패키징에서 제외할 파일·패턴을 정의해요.
Debugging Templates
배포에 실패하는 차트를 해결하는 방법이에요. helm template와 helm lint 같은 도구로 템플릿을 렌더링해보고 오류를 찾는 방식을 다뤄요.
더 알아보기
- Getting Started: https://helm.sh/docs/chart_template_guide/getting_started/
- Charts 가이드: https://helm.sh/docs/topics/charts/
- Using Helm: https://helm.sh/docs/intro/using_helm/