Helm - Customize Parameters

2026. 1. 7. 17:38·CKA

앞에서 WordPress를 설치할 때는 “기본값 그대로(default values)”로 설치했습니다. 하지만 실제로는 대부분 기본값을 그대로 쓰지 않고 환경에 맞게 값을 바꿔서 설치합니다. Helm에서 이 “값 변경”은 결국 values.yaml의 값을 어떻게 오버라이드(override)하느냐 문제로 귀결됩니다.

강의 예시처럼 WordPress 블로그 이름이 기본으로 User's Blog로 잡혀있는 상황을 생각해봅시다.

  • WordPress Deployment 템플릿(templates/deployment.yaml) 안에서
  • 블로그 이름을 환경변수로 주입하고
  • 그 값은 .Values.xxx 형태로 values.yaml에서 가져옵니다.
  • default values.yaml에 User's Blog가 설정되어 있으니, 설치하면 그 이름으로 뜨는 겁니다.

그럼 “설치할 때” 이 값을 바꾸는 방법은 크게 3가지입니다.


1) --set으로 커맨드라인에서 즉시 오버라이드하기

Helm은 helm install이 한 번에 차트를 가져오고 바로 배포까지 진행되기 때문에, 설치 과정 중간에 values.yaml을 직접 수정할 “시간”이 없습니다. 그래서 가장 간단한 방식이 --set입니다.

예시: 블로그 이름과 유저 이메일을 설치 시점에 변경

helm install my-wp bitnami/wordpress \
  --set wordpressBlogName="Helm Tutorials" \
  --set wordpressEmail="john@example.com"

포인트:

  • --set <key>=<value> 형태로 values.yaml의 “키 경로”를 지정합니다.
  • --set은 여러 번 붙여서 여러 값을 동시에 바꿀 수 있습니다.
  • 기본 values.yaml보다 우선해서 적용됩니다(override).

실무 팁:

  • 단발성 테스트나 “몇 개 값만” 바꿀 때는 --set이 편합니다.
  • 값이 많아지면 커맨드가 길어져서 유지보수가 어려워집니다.

2) 커스텀 values 파일을 만들어 -f/--values로 적용하기 (권장)

--set으로 오버라이드할 값이 많아지면, 보통은 별도 파일로 관리합니다. 강의에서는 customvalues.yaml을 만드는 흐름입니다.

예시: customvalues.yaml

wordpressBlogName: "Helm Tutorials"
wordpressEmail: "john@example.com"

그리고 설치할 때 이 파일을 넘깁니다.

helm install my-wp bitnami/wordpress -f customvalues.yaml
# 또는
helm install my-wp bitnami/wordpress --values customvalues.yaml

동작 방식:

  • 차트의 기본 values.yaml 위에
  • customvalues.yaml이 덮어씌워집니다(override)

실무에서 이 방식이 가장 흔한 이유:

  • Git으로 관리하기 좋고
  • 환경별(dev/stg/prod)로 파일을 분리하기 쉬움
  • 커맨드가 짧아지고 재현성이 올라감

예: 환경별 패턴

helm upgrade --install my-wp bitnami/wordpress -n blog -f values-prod.yaml

3) 차트를 로컬로 받아서 values.yaml 자체를 수정한 뒤 설치하기 (helm pull --untar)

“나는 정말 차트 내부의 values.yaml(또는 템플릿)을 직접 수정하고 싶다”면, 차트를 먼저 내려받아 로컬에서 편집한 뒤 설치할 수 있습니다.

3-1) 차트 다운로드 (압축 형태)

helm pull bitnami/wordpress

이러면 보통 .tgz 형태로 내려받습니다.

3-2) 다운로드와 동시에 압축 해제까지 (--untar)

helm pull bitnami/wordpress --untar

그러면 로컬에 wordpress/ 같은 디렉토리가 생기고 그 안에:

  • Chart.yaml
  • values.yaml
  • templates/
    등 차트 구성요소가 그대로 들어있습니다.

3-3) values.yaml 편집 후, 로컬 경로로 설치

# values.yaml 수정 후
helm install my-wp ./wordpress

포인트:

  • helm install <release> <chart>에서 <chart>는
    • 원격 repo의 bitnami/wordpress일 수도 있고
    • 로컬 디렉토리 경로 ./wordpress일 수도 있습니다.

실무 팁(중요):

  • 공개 차트를 “로컬로 풀어서 직접 수정”하면, 이후 차트 업데이트가 나올 때 업그레이드 추적이 어려워질 수 있습니다.
  • 그래서 가능한 한:
    • (우선) -f values.yaml로 커스터마이징하고
    • (정말 필요할 때만) 로컬로 풀어서 템플릿까지 수정하는 방식을 권장합니다.

커스터마이징 방식 선택 기준 요약

  • 값이 1~3개고 빠르게 테스트: --set
  • 값이 여러 개고 재현성/환경 분리 필요: -f customvalues.yaml (가장 권장)
  • 차트 구조/템플릿 자체를 바꿔야 함: helm pull --untar 후 로컬 설치

바로 써먹는 예시 커맨드 모음

# 1) --set 오버라이드
helm install my-wp bitnami/wordpress \
  --set wordpressBlogName="Helm Tutorials" \
  --set wordpressEmail="john@example.com"

# 2) custom values 파일 사용
helm install my-wp bitnami/wordpress -f customvalues.yaml

# 3) 차트를 로컬로 받아 수정 후 설치
helm pull bitnami/wordpress --untar
# (wordpress/values.yaml 수정)
helm install my-wp ./wordpress

'CKA' 카테고리의 다른 글

Helm - 정리  (1) 2026.01.07
Helm - Lifecycle Management(Upgrade/Rollback)  (0) 2026.01.07
Helm - CLI  (0) 2026.01.07
Helm - Charts  (0) 2026.01.07
Helm - Components  (0) 2026.01.07
'CKA' 카테고리의 다른 글
  • Helm - 정리
  • Helm - Lifecycle Management(Upgrade/Rollback)
  • Helm - CLI
  • Helm - Charts
5jyan5
5jyan5
  • 5jyan5
    jyan
    5jyan5
  • 전체
    오늘
    어제
    • 분류 전체보기 (242)
      • 김영한의 스프링 핵심 원리(기본편) (8)
      • 김영한의 스프링 핵심 원리 - 고급편 (11)
      • 김영한의 스프링 MVC 1편 (1)
      • 김영한의 스프링 DB 1편 (3)
      • 김영한의 스프링 MVC 2편 (3)
      • 김영한의 ORM 표준 JPA 프로그래밍(기본편) (9)
      • 김영한의 스프링 부트와 JPA 활용2 (2)
      • 김영한의 실전 자바 - 중급 1편 (1)
      • 김영한의 실전 자바 - 고급 1편 (9)
      • 김영한의 실전 자바 - 고급 2편 (9)
      • Readable Code: 읽기 좋은 코드를 작성.. (2)
      • 김영한의 실전 자바 - 고급 3편 (9)
      • CKA (118)
      • 개발 (37)
      • 경제 (4)
      • 리뷰 (1)
      • 정보 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      jdk 동적 프록시
      gesingleresult
      빈 후처리기
      jpq
      Target
      Thread
      락
      cglib
      typequery
      JPQL
      log trace
      @args
      @discriminatorcolumn
      조회 성능 최적화
      양방향 맵핑
      hibernate5module
      김영한
      requset scope
      프록시 팩토리
      reentarantlock
      페치 조인
      고급
      단방향 맵핑
      WAS
      스레드
      프록시
      @within
      자바
      @discriminatorvalue
      버퍼
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.2
    5jyan5
    Helm - Customize Parameters
    상단으로

    티스토리툴바