본문 바로가기
K8S

_helpers.tpl란?

by Rainbound-IT 2025. 9. 18.
반응형

 

  • Helm Chart 템플릿 파일 중 하나예요.
  • 보통 charts/<차트명>/templates/_helpers.tpl 경로에 있습니다.
  • 여기에는 템플릿 함수(helpers) 가 정의돼 있어서, Chart의 여러 템플릿(deployment.yaml, service.yaml, ingress.yaml 등)에서 반복되는 부분을 재사용할 수 있게 해줍니다.
  • 예: 리소스 이름 규칙(fullname, name, chart)이나 label 공통 정의 등을 여기서 함수로 정의하고 다른 곳에서 호출합니다.
# _helpers.tpl
{{- define "mychart.fullname" -}}
{{- printf "%s-%s" .Release.Name .Chart.Name | trunc 63 | trimSuffix "-" -}}
{{- end }}

# deployment.yaml
metadata:
  name: {{ include "mychart.fullname" . }}

이렇게 하면, chart 이름/릴리스 이름이 바뀌어도 규칙적으로 이름이 붙습니다.


비슷한 것들

Helm에서는 _helpers.tpl 외에도 비슷한 역할을 하는 것들이 있어요:

  1. 기본 제공 함수
    • Helm 자체적으로 제공하는 템플릿 함수들 (default, printf, trunc, upper, toYaml 등).
    • Go 템플릿 기반이라서 Go의 템플릿 기능과 Helm이 추가한 함수 둘 다 활용 가능.
  2. _helpers.tpl 여러 개
    • 꼭 한 파일일 필요는 없어요.
    • templates/_helpers.tpl, templates/_labels.tpl, templates/_names.tpl 식으로 나눠서 관리할 수도 있습니다.
    • Helm은 templates/ 폴더 내 _(언더스코어)로 시작하는 파일은 직접 리소스로 배포하지 않고 helper 정의만 읽습니다.
  3. Values.yaml
    • _helpers.tpl이 재사용 가능한 함수 모음이라면,
    • values.yaml은 재사용 가능한 값/설정 모음이에요.
    • 둘을 조합해서 “값 정의 → helper 함수 → 실제 리소스 적용” 흐름을 만듭니다.
  4. Library Charts
    • Helm 3부터는 Library Chart라는 개념이 있어서,
    • 공통 helper 함수나 템플릿을 독립 Chart로 만들어 두고 여러 Chart에서 import해서 쓸 수도 있습니다.
    • 예: bitnami/common 라이브러리 차트를 다른 차트들이 불러와서 이름 규칙, label 규칙을 공유.

정리

  • _helpers.tpl = Helm Chart에서 재사용 가능한 템플릿 함수 모음.
  • 비슷한 것:
    • Helm 기본 제공 함수
    • 여러 개의 _*.tpl 파일
    • values.yaml
    • Helm Library Chart
반응형

댓글