일반적인 관례
이 부분은 모범사례 가이드의 일부로서 일반적인 관례를 설명한다.
차트 이름
차트 이름은 소문자와 숫자여야 한다. 단어는 대시(-)로 구분할 수 있다.
예시:
drupal
nginx-lego
aws-cluster-autoscaler
대문자나 밑줄문자는 차트 이름에 사용할 수 없다. 점도 사용할 수 없다.
버전 번호
가능하다면 어디서든, 헬름은 버전 번호를 표현할 때 SemVer 2를 사용한다. (도커 이미지 태그는 SemVer를 따를 필요가 없고 아쉽지만 규칙에서 예외로 취급된다는 점을 알아두자.)
SemVer 버전을 쿠버네티스 레이블로 저장할 때,
관례적으로 + 문자를 _ 문자로 변경하는데,
+ 기호는 레이블 값으로 허용되지 않기 때문이다.
YAML 형식
YAML 파일은 2칸 (탭이 아니다) 들여쓰기해야 한다.
헬름과 차트 단어의 사용
Helm 과 helm 단어 사용에 관한 관례는 다음과 같다.
- Helm(헬름)은 전체 프로젝트를 가리킨다.
helm은 클라이언트측 명령어를 가리킨다.chart는 첫글자를 대문자로 쓸 필요가 없는데, 고유명사가 아니기 때문이다.- 반면,
Chart.yaml는 첫글자를 대문자로 써야 하는데, 파일명에는 대소문자 구분이 있기 때문이다.
애매할 때는 Helm(대문자 'H', 헬름)을 쓰자.
차트 템플릿과 네임스페이스
차트 템플릿의 metadata 섹션에 namespace 속성을 정의하는 것은 피하자.
렌더링된 템플릿에 적용할 네임스페이스는 --namespace와 같은 플래그를 통해 쿠버네티스 클라이언트를 호출할 때 지정해야 한다.
Helm은 템플릿을 있는 그대로 렌더링하여 쿠버네티스 클라이언트에 전달하는데, 이 클라이언트는 Helm 자체일 수도 있고 다른 프로그램(kubectl, flux, spinnaker 등)일 수도 있다.