helm upgrade 명령

helm upgrade 명령

helm upgrade는 기존 릴리스를 새 차트 버전으로 업그레이드하고, 값(values)을 덮어쓰는 명령이에요. upgrade 인자는 릴리스와 차트여야 해요. 차트 인자는 차트 레퍼런스(example/mariadb), 차트 디렉토리 경로, 패키징된 차트, 또는 완전한 URL일 수 있어요. 차트 레퍼런스에서는 --version 플래그가 설정되지 않으면 최신 버전이 지정돼요.

출처: https://helm.sh/docs/helm/helm_upgrade/

값 덮어쓰기

차트의 값을 덮어쓰려면 --values 플래그에 파일을 넘기거나, --set 플래그로 명령줄에서 구성 전달을 써요. 문자열 값을 강제하려면 --set-string을, 값이 명령줄에 담기엔 너무 길거나 동적으로 생성될 때는 --set-file로 파일에서 개별 값을 설정할 수 있고, --set-json으로 JSON 값(스칼라/객체/배열)을 설정할 수 있어요.

--values/-f 플래그는 여러 번 지정할 수 있고, 마지막(가장 오른쪽) 파일이 우선이에요.

$ helm upgrade -f myvalues.yaml -f override.yaml redis ./redis

myvalues.yamloverride.yaml 둘 다 Test라는 키를 가지면 override.yaml의 값이 우선해요.

--set 플래그도 여러 번 지정할 수 있고, 마지막(가장 오른쪽) set이 우선이에요.

$ helm upgrade --set foo=bar --set foo=newbar redis ./redis

--reuse-values 플래그로 기존 릴리스의 값을 업데이트할 수도 있어요. RELEASECHART 인자는 원래 파라미터로 설정하고, 기존 값은 --values/-f 또는 --set으로 설정한 값과 병합돼요. 새 값이 우선이에요.

--dry-run 플래그는 생성된 모든 차트 매니페스트(민감한 값을 담을 수 있는 Secrets 포함)를 출력해요. Kubernetes Secrets를 숨기려면 --hide-secret 플래그를 쓰세요. 이 플래그들을 언제 어떻게 쓰는지 신중히 고려해야 해요.

helm upgrade [RELEASE] [CHART] [flags]

주요 옵션

helm upgrade의 대표적인 옵션들을 정리할게요.

  • --cleanup-on-fail — 업그레이드 실패 시 이 업그레이드에서 만든 새 리소스 삭제 허용
  • --create-namespace--install이 설정되었을 때 릴리스 네임스페이스가 없으면 생성
  • --dependency-update — 차트 설치 전에 의존성이 없으면 업데이트
  • --dry-run string[="unset"] — 변경 사항을 유지하지 않고 작업 시뮬레이션. "none"(기본), "client", "server" 중 하나. --dry-run=none은 정상 실행, client는 클라이언트에서만 시뮬레이션, server는 서버에서 시뮬레이션.
  • --force-replace — 교체로 리소스 업데이트 강제
  • --history-max int — 릴리스당 저장하는 최대 리비전 수 제한. 0은 무제한(기본 10)
  • -i, --install — 같은 이름의 릴리스가 없으면 install 실행
  • --no-hooks — pre/post upgrade 훅 비활성화
  • -o, --output format — 출력 형식 지정. table, json, yaml 허용(기본 table)
  • --reset-values — 차트에 내장된 값으로 값 리셋
  • --reuse-values — 마지막 릴리스의 값을 재사용하고 --set/-f로 오버라이드 병합
  • --rollback-on-failure — 실패 시 이전 성공 릴리스로 롤백
  • --set stringArray — 명령줄에서 값 설정 (쉼표로 여러 값 구분: key1=val1,key2=val2)
  • --set-string stringArray — STRING 값으로 설정
  • --set-file stringArray — 파일에서 값 설정
  • --set-json stringArray — JSON 값으로 설정
  • --timeout duration — 개별 Kubernetes 작업(훅용 Jobs 등) 대기 시간(기본 5m0s)
  • --verify — 사용 전 패키지 검증
  • --version string — 사용할 차트 버전 지정. 특정 태그(1.1.1)나 유효한 범위(^2.0.0) 가능. 미지정 시 최신 버전
  • -f, --values strings — YAML 파일 또는 URL에서 값 지정 (여러 번 가능)
  • --wait — 리소스가 준비될 때까지 대기(최대 --timeout). watcher, hookOnly, legacy 전략

더 알아보기