헬름 차트 구조
헬름 차트는 이름을 최상위 디렉터리의 이름으로 지정하는 것이 좋다.
기술적으로 필수적인 요구사항은 아니지만 헬름 차트의 이름을 훨씬 더 쉽게 식별할 수 있다.
최상위 디렉터리 아래 위치할 수 있는 파일 및 디렉터리는 다음과 같다.
파일/디렉터리 | 정의 | 필수 여부 |
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 는 전역 범위를 나타내며 모든 객체와 이전 표에 정의된 공통 객체를 표시한다.
참고
•
헬름 공식 가이드