의존성
이 부분은 가이드의 일부로서 Chart.yaml에서 선언되는 dependencies에 관한 모범사례를 다룬다.
버전
가능하면 특정 버전을 콕 집어서 사용하기 보다는 버전 범위를 사용하자. 권장되는 기본값은 다음과 같이 패치-수준의 버전 매치(match)를 사용하는 것이다.
version: ~1.2.3
이렇게 하면 1.2.3과 그 릴리스의 다른 패치들도 매치된다.
다시 말하면 ~1.2.3은 >= 1.2.3, < 1.3.0과 동등하다.
버전 매칭 구문에 대한 자세한 설명은 semver 문서에서 볼 수 있다.
프리릴리스 버전
앞서 설명한 버전 제약 조건은 프리릴리스 버전에는 적용되지 않는다.
예를 들어 version: ~1.2.3은 version: ~1.2.4와 매치되지만, version: ~1.2.3-1과는 매치되지 않는다.
다음과 같이 하면 프리릴리스뿐 아니라 패치-수준의 매칭도 된다.
version: ~1.2.3-0
리포지터리 URL
가능하면 https:// 리포지터리 URL을 우선으로 사용하고, 그 다음으로 http:// URL을 사용하자.
리포지터리가 리포지터리 인덱스 파일에 추가되면, 리포지터리 이름은 URL의 별칭으로 사용될 수 있다.
alias:나 @ 뒤에 리포지터리 이름을 쓰자.
파일 URL(file://...)은 고정된 배포 파이프라인에서 조립되는 차트를 위한 "특수한 경우"로 간주된다.
다운로더 플러그인을 사용하는 경우, URL 스킴은 해당 플러그인에 따라 달라진다. 차트 사용자는 의존성을 업데이트하거나 빌드하려면 해당 스킴을 지원하는 플러그인을 설치해야 한다.
repository 필드를 비워두면 Helm은 해당 의존성에 대한 관리 작업을 수행할 수 없다. 이 경우 Helm은 의존성이 charts 폴더의 하위 디렉터리에 있고, 디렉터리 이름이 의존성의 name 속성과 같다고 가정한다.
조건과 태그
조건과 태그는 _선택적(optional)_인 모든 의존성에 추가되어야 한다. 기본적으로 condition은 true라는 점에 주의하자.
조건의 권장되는 형식은 다음과 같다.
condition: somechart.enabled
여기서 somechart는 의존성의 차트 이름이다.
여러 서브차트(의존성)들이 선택적 또는 교체가능한 기능을 공동으로 제공하는 경우, 그 차트들은 동일한 태그를 사용해야 한다.
예를 들어, nginx와 memcached가 차트 내 메인 앱에 대한 성능 최적화 기능을
공동으로 제공하는 경우, 그리고 그 기능의 활성화시에 둘다 있어야 한다면
둘다 다음과 같은 태그 섹션이 있어야 한다.
tags:
- webaccelerator
이렇게 하면 사용자는 하나의 태그로 기능을 켜거나 끌 수 있다.