Helm — 종속성

Helm 차트 종속성에 대한 심층 분석

Unsplash의 Ilya P 사진

helm에서 하나의 차트는 다른 차트에 종속될 수 있습니다. 예를 들어 WordPress 애플리케이션이 작동하려면 데이터베이스가 필요합니다. helm에서는 WordPress를 상위 차트의 일부로 배포하고 MySQL 또는 기타 필수 애플리케이션을 상위 차트의 종속성으로 배포할 수 있습니다.

Helm 차트는 종속성을 'charts/'에 저장합니다. 종속성 차트를 상위 차트에 추가하는 두 가지 방법이 있습니다.

  1. Chart.yaml 파일과 helm 내부의 모든 종속성을 나열하면 종속성 을 다운로드하여 'charts/' 디렉토리 에 저장합니다 .
  2. 'charts/' 디렉토리 내 종속성 차트를 수동으로 채웁니다 .

Chart.yaml 파일 에 종속성을 나열하기 전에 기본적으로 Chart.yaml 파일은 다음과 같습니다.

# Chart.yaml
apiVersion: v2
name: webserver
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"

dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"

# Chart.yaml
apiVersion: v2
name: webserver
description: A Helm chart for Kubernetes
type: application
version: 0.1.0
appVersion: "1.16.0"
dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"

helm dependency update [CHART] 
>> helm dependency update ~/webserver

Chart.lock파일에는 즉각적인 종속성 및 해당 종속성 등의 정확한 버전이 나열됩니다 .

버전 범위

차트의 정확한 버전을 정의하는 대신 버전 범위를 정의할 수 있습니다. Helm을 사용하면 다양한 방법으로 버전 범위를 정의할 수 있습니다.

다음 명령을 사용하여 사용 가능한 모든 버전의 차트를 볼 수 있습니다.

 helm search repo [CHART] --versions
>> helm search repo  mysql  --versions

version: 1.2 - 1.4.5에 해당하는>= 1.2 <= 1.4.5

dependencies:
- name: mysql
  version: 9.0.0 - 9.9.9
  repository: "https://charts.bitnami.com/bitnami"

● 기본 비교
버전을 정의하기 위해 기본 비교 연산자를 사용할 수도 있습니다.

version: "= 9.4.1" 
 
version: "!= 9.4.1"
version: "> 9.4.1"
version: "< 9.4.1"
version: ">= 9.4.1"
version: "<= 9.4.1"
version: ">= 9.4.1 and < 10.0.0"

^1.2.3  is equivalent to >= 1.2.3, < 2.0.0
^1.2.x  is equivalent to >= 1.2.0, < 2.0.0   # x as a placeholder
^2.3    is equivalent to >= 2.3, < 3
^2.x    is equivalent to >= 2.0.0, < 3       # x as a placeholder
^0      is equivalent to >= 0.0.0, < 1.0.0

~1.3.2  is equivalent to >= 1.3.2, < 1.4.0
~3.4    is equivalent to >= 3.4, < 3.5
~3      is equivalent to >= 3, < 4

사용자의 필요에 따라 종속성을 활성화하거나 비활성화할 수 있습니다. 종속성이 비활성화되면 해도 설치 중에 해당 종속성이 무시됩니다.

이를 달성하는 몇 가지 방법이 있습니다. 조건 필드 또는 태그 필드를 사용합니다.

●조건 사용
parentChart/Charts.yaml 파일 내에서 종속성을 정의하면서 조건 필드를 정의할 수 있습니다 .

# parentChart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: "https://charts.bitnami.com/bitnami"
  condition: mysql.enabled

# parentchart/values.yaml
...
...
mysql:
  enabled: false

●태그 사용
Charts.yaml 파일 에 정의된 여러 종속성이 있다고 가정 합니다. 필요에 따라 활성화 또는 비활성화하려면 다음과 유사한 작업을 수행해야 합니다.

# parentchart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: https://charts.bitnami.com/bitnami
  condition: mysql.enabled
- name: mongodb
  version: 13.3.0
  repository: https://charts.bitnami.com/bitnami
  condition: mongodb.enabled

# parentchart/values.yaml
....
....
mysql:
  enabled: true
mongodb
  enabled: false

먼저 부모의 values.yaml 파일 에서 태그 를 정의하는 방법을 살펴보겠습니다 .

# parentchart/values.yaml
...
...
tags:
  enabled: false

# parentchart/Charts.yaml
dependencies:
- name: mysql
  version: "9.3.4"
  repository: https://charts.bitnami.com/bitnami
- name: mongodb
  version: 13.3.0
  repository: https://charts.bitnami.com/bitnami
  tags: 
    - enabled

종속 항목 나열

주어진 차트에 대한 모든 종속성을 나열할 수 있습니다.

helm dependency list  [CHART]
>> helm dependency list  ~/webserver/
--------------------------------------------------------------
NAME    VERSION REPOSITORY                              STATUS 
mysql   9.3.4   https://charts.bitnami.com/bitnami      ok     
mongodb 2.0.3   https://charts.bitnami.com/bitnami      missing

이 글이 도움이 되셨 다면 팔로우 및 박수 버튼을 누르는 것을 잊지 마세요 . 이런 글을 더 많이 쓸 수 있도록 도와주세요. 감사합니다

Helm 차트의 모든 기사 -

Helm — 실행 중
Helm — 고급 명령
Helm — 첫 번째 차트 만들기
Helm — 템플릿 작업, 함수 및 파이프라인
Helm — 흐름 제어
Helm — 변수
Helm — 명명된 템플릿
Helm — 종속성

레벨업 코딩

우리 커뮤니티의 일원이 되어 주셔서 감사합니다! 가기 전에:

  • 이야기에 박수치고 작가 팔로우
  • 레벨업 코딩 출판물 에서 더 많은 콘텐츠 보기
  • 팔로우: 트위터 | 링크드인 | 뉴스 레터

Suggested posts

취하기의 아이의 첫 번째 책

취하기의 아이의 첫 번째 책

(경고- 이것은 유쾌하게 전복하려는 풍자입니다. 절대 어린이용이 아닙니다.) 당신은 엄마와 아빠가 부엌에 숨어서 그 냄새나는 담배를 피우는 것을 본 적이 있습니다. 그들은 당신에게 말합니다.

Work Week에서의 학습은 생각보다 중요합니다.

Work Week에서의 학습은 생각보다 중요합니다.

우리는 종종 우리에게 좋다고 알고 있는 것을 구현하는 데 어려움을 겪고 있습니다. 중요한 다른 사람에게 우리가 그들을 사랑한다고 말하는 것부터 해적처럼 이야기하는 것을 기억하는 것까지, 그들이 이미 그런 일을 하고 있기 때문에 하루, 일주일 또는 한 달의 이벤트가 필요하지 않다고 주장하는 사람들이 항상 있을 것입니다.

Related posts

지구를 구하고 돈을 버는 방법

지구를 구하고 돈을 버는 방법

페트병, 유리병, 알루미늄캔, 그린에너지 패키지를 무심코 버린 적이 몇 번이나 되셨나요? 재활용에 대한 대가로 무언가를 얻을 수 있기를 몇 번이나 바랐습니까? 당신이 대부분의 사람들과 같다면 대답은 아마도 여러 번일 것입니다. 재활용은 종종 번거로움, 자질구레한 일 또는 즉각적이거나 실질적인 혜택을 가져오지 않는 의무로 간주됩니다.

안전한 작업 환경 조성

안전한 작업 환경 조성

“그는 내가 위험에 처했을 때 나를 지켜줄 것입니다. 그가 나를 그의 천막 안에 숨길 것이다.

조던 닐리의 살인과 "애국적" 인종차별의 문제

미국은 인종차별적 행동을 좋은 미국인이 되는 것과 동일시하지 않는 필수적인 조치를 취할 수 있습니까?

조던 닐리의 살인과 "애국적" 인종차별의 문제

[방아쇠 경고: 이 에세이에는 Jordan Neely의 살인자를 칭찬하는 사람들의 스크린 샷이 포함되어 있습니다.] 법 집행관은 마침내 그리고 아마도 마지못해 죽을 때까지 Jordan Neely를 질식시킨 사람인 Daniel Penny를 살인 혐의로 기소했습니다.

FY24의 탄소 제거 자금 조달

경로 전반에 걸친 Carbon180의 세출 요청 내역

FY24의 탄소 제거 자금 조달

Alyson Lee, 공무 관리 고문 연방 정부의 연간 예산 책정 과정은 이산화탄소 제거(CDR) 기금 마련을 위한 노력의 핵심입니다. 매년 Carbon180은 내년의 자금 흐름을 안내하기 위해 다양한 의회 사무소에 요청을 제출합니다.