한눈에 요약
- 쿠버네티스에서 사실상 표준으로 쓰이는 패키지 관리 도구다. 매번 손으로 쓰던 YAML 매니페스트를, 값만 바꿔 재사용할 수 있는 템플릿으로 만든다.
- 그 템플릿 묶음을 **차트(Chart)**라고 부른다.
- K3s가 차트를 클러스터 안에서 자동 설치·갱신하는 컨트롤러를 품고 있어 이 위키에 등장한다.
K3s의 Helm 컨트롤러
Helm 자체를 쓰는 데 K3s가 요구하는 별도 설정은 없다. kubeconfig 경로만 제대로 잡으면 된다 32.
특이한 건 그다음이다. K3s에는 HelmChart CRD를 감시하는 Helm 컨트롤러가 들어 있다. 자동 배포 애드온 매니페스트와 짝지으면, 디스크에 파일 하나 놓는 것만으로 차트 설치가 자동화된다 32.
HelmChart 리소스는 helm 명령에 주던 옵션 대부분을 필드로 받는다. 차트 이름과 저장소(spec.chart·spec.repo), 대상 네임스페이스(spec.targetNamespace), 값 덮어쓰기(spec.set·spec.valuesContent), 인증 정보 시크릿 참조(spec.authSecret) 같은 식이다 32.
자격 증명처럼 민감한 값은
spec.valuesSecrets로 외부 시크릿에서 읽어 오는 편이 낫다. 차트가existingSecret패턴을 지원하지 않을 때 쓰라고 문서는 안내한다. 참조하는 시크릿은HelmChart와 같은 네임스페이스에 있어야 한다 32.
기본 탑재 부품을 손대는 법
Traefik처럼 차트로 배포되는 기본 부품은 HelmChartConfig로 값을 덮어쓴다. 이름과 네임스페이스를 원래 HelmChart와 맞추면, 추가 값 파일을 하나 더 넘긴 것처럼 동작한다 32.
값이 여러 곳에서 겹칠 때의 우선순위는 정해져 있다. 약한 쪽부터 차트 기본값 → HelmChart의 valuesContent → valuesSecrets → HelmChartConfig의 valuesContent → valuesSecrets → HelmChart의 set 순이다. 즉 set이 제일 세다 32.