helm upgrade 명령
helm upgrade 명령
helm upgrade는 기존 릴리스를 새 차트 버전으로 업그레이드하고, 값(values)을 덮어쓰는 명령이에요. upgrade 인자는 릴리스와 차트여야 해요. 차트 인자는 차트 레퍼런스(example/mariadb), 차트 디렉토리 경로, 패키징된 차트, 또는 완전한 URL일 수 있어요. 차트 레퍼런스에서는 --version 플래그가 설정되지 않으면 최신 버전이 지정돼요.
값 덮어쓰기
차트의 값을 덮어쓰려면 --values 플래그에 파일을 넘기거나, --set 플래그로 명령줄에서 구성 전달을 써요. 문자열 값을 강제하려면 --set-string을, 값이 명령줄에 담기엔 너무 길거나 동적으로 생성될 때는 --set-file로 파일에서 개별 값을 설정할 수 있고, --set-json으로 JSON 값(스칼라/객체/배열)을 설정할 수 있어요.
--values/-f 플래그는 여러 번 지정할 수 있고, 마지막(가장 오른쪽) 파일이 우선이에요.
$ helm upgrade -f myvalues.yaml -f override.yaml redis ./redis
myvalues.yaml과 override.yaml 둘 다 Test라는 키를 가지면 override.yaml의 값이 우선해요.
--set 플래그도 여러 번 지정할 수 있고, 마지막(가장 오른쪽) set이 우선이에요.
$ helm upgrade --set foo=bar --set foo=newbar redis ./redis
--reuse-values 플래그로 기존 릴리스의 값을 업데이트할 수도 있어요. RELEASE와 CHART 인자는 원래 파라미터로 설정하고, 기존 값은 --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전략
더 알아보기
- helm install 명령: https://helm.sh/docs/helm/helm_install/
- helm rollback 명령: https://helm.sh/docs/helm/helm_rollback/
- Using Helm: https://helm.sh/docs/intro/using_helm/