의존성

이 부분은 가이드의 일부로서 Chart.yaml에서 선언되는 dependencies에 과한 모범사례를 다룬다.

버전

가능하면 특정 버전을 콕 집어서 사용하기 보다는 버전 범위를 사용하자. 권장되는 기본값은 다음과 같이 패치-수준의 버전 매치(match)를 사용하는 것이다.

version: ~1.2.3

이렇게 하면 1.2.3과 그 릴리스의 다른 패치들도 매치된다. 다시 말하면 ~1.2.3>= 1.2.3, < 1.3.0과 동등하다.

버전 매칭 구문에 대한 자세한 설명은 semver 문서에서 볼 수 있다.

리포지터리 URL

가능하면 https:// 리포지터리 URL 뒤에 http:// URL을 사용하자.

리포지터리가 리포지터리 인덱스 파일에 추가되면, 리포지터리 이름은 URL의 별칭으로 사용될 수 있다. alias:@ 뒤에 리포지터리 이름을 쓰자.

차트에서 파일 URL(file://...)은 고정된 배포 파이프라인에서 만들어지는 "특이한 경우"로 취급된다. 공식 헬름 리포지터리에는 file://을 사용하는 차트가 허용되지 않는다.

OCI 레지스트리에서 호스팅되는 차트에 대한 실험적 기능지원

실험적 OCI 지원을 활성화(enabled)했다면, 리포지터리 URL의 OCI 참조(oci://registry/group/image:tag)를 지정할 수 있다.

OCI 참조를 지정한 경우, 리포지터리 URL이 이미지 태그(oci://nginx:1.10)를 가지고 있으면 version 인자를 생략해도 된다. URL에 태그를 지정하지 않으면, version이 태그로 사용될 것이다. 이것은 OCI URL이 SemVer 제약사항을 지원하지 않지만, 태그된 버전은 지원한다는 것을 뜻한다.

태그와 버전을 둘다 지정했다면, 태그가 우선 적용되며 버전은 무시된다.

조건과 태그

조건과 태그는 _선택적(optional)_인 모든 의존성에 추가되어야 한다.

조건의 권장되는 형식은 다음과 같다.

condition: somechart.enabled

여기서 somechart는 의존성의 차트 이름이다.

여러 서브차트(의존성)들이 선택적 또는 교체가능한 기능을 공동으로 제공하는 경우, 그 차트들은 동일한 태그를 사용해야 한다.

예를 들어, nginxmemcached가 차트 내 메인 앱에 대한 성능 최적화 기능을 공동으로 제공하는 경우, 그리고 그 기능의 활성화시에 둘다 있어야 한다면 둘다 다음과 같은 태그 섹션이 있어야 한다.

tags:
  - webaccelerator

이렇게 하면 사용자는 하나의 태그로 기능을 켜거나 끌 수 있다.