Search

쿠버네티스 Helm Chart 의 구조

생성일
2024/08/13 14:24
Category
Kubernetes
태그
Helm

헬름 차트 구조

헬름 차트는 이름을 최상위 디렉터리의 이름으로 지정하는 것이 좋다.
기술적으로 필수적인 요구사항은 아니지만 헬름 차트의 이름을 훨씬 더 쉽게 식별할 수 있다.
최상위 디렉터리 아래 위치할 수 있는 파일 및 디렉터리는 다음과 같다.
파일/디렉터리
정의
필수 여부
Chart.yaml
헬름 차트에 대한 메타데이터를 포함하고 있는 파일
templatest/
YAML 형식의 쿠버네티스 리소스를 포함하고 있는 디렉터리
예 (Chart.yaml 에 디펜던시가 선언되어 있지 않은 경우)
templatest/NOTES.txt
차트 설치 과정에서 사용 지침을 제공하기 위해 생성되는 파일
아니요
values.yaml
차트의 기본값을 포함하고 있는 파일
아니요 (모든 차트에 해당 파일이 포함되어 있는 것이 모범 사례다.)
.helmignore
헬름 차트 패키징 과정에서 생략해야 하는 파일 및 디렉터리 목록이 포함된 파일
아니요
charts/
헬름 차트가 의존하고 있는 차트가 포함된 디렉터리
헬름의 디펜던시 관리 시스템이 해당 디렉터리를 자동으로 생성하기 때문에 명시적으로 제공할 필요가 없다.
Chart.lock
사전에 적용된 디펜턴시 버전을 저장 하는 데 사용되는 파일
헬름의 디펜던시 관리 시스템이 해당 디렉터리를 자동으로 생성하기 때문에 명시적으로 제공할 필요가 없다.
crds/
templates/ 아래에 위치한 리소스에 앞서 설치될 CRD YAML 리소스가 포함된 디렉터리
아니요
README.md
헬름 차트에 대한 설치 및 사용자 정보가 포함된 파일
아니요 (하지만 모든 차트가 해당 파일을 포함하고 있는 것을 권장 한다.)
LICENSE
차트의 라이선스가 포함된 파일
아니요
values.schema.json
차트의 값 스키마를 JSON 형식으로 포함하고 있는 파일
아니요
객체는 다음과 같다.
객체
정의
.Release.Name
설치를 위해 제공된 릴리스의 이름
.Release.Namespace
릴리스가 설치된 네임스페이스
.Release.Revision
설치 또는 업그레이드의 리비전 번호
.Values
values.yaml 파일의 값 또는 사용자가 제공한 값을 참조하는 데 사용
.Chart.Name, .Chart.Version, .Chart.Appversion 등
Chart.yaml 의 필드를 참조하는 데 사용. Chart.$Filed 컨벤션에 따라 해당 필드를 참조
.Files.Get
차트 디렉터리 내 파일을 가져오기 위해 사용
.Files.AsSecrets
파일을 Base64 인코딩 문자열로 반환하여 차트 디렉터리에 파일로 시크릿 데이터를 생성
.Files.AsConfig
파일의 내용을 YAML 맵으로 반환하여 차트 디렉터리에 파일로 컨피그맵 데이터를 생성
.Capabilities.APIVersions
쿠버네티스 클러스터에서 사용 가능한 API 버전 목록을 반환
.Template.Name
해당 객체가 사용하는 템플릿 파일에 대한 상대 경로를 반환
각 객체 앞에 붙은 점(.) 은 객체의 범위를 나타낸다.
객체의 이름 뒤에 오는 점은 해당 객체로 범위를 제한한다. 예를들어 .Values 범위는 차트의 값만 표시한다.
.Release 범위는 Release 객체의 하위 필드만을 표시한다. 그리고 .scope 는 전역 범위를 나타내며 모든 객체와 이전 표에 정의된 공통 객체를 표시한다.

참고

헬름 공식 가이드