Helm 4 개요

Helm 4 개요

Helm v4의 주요 변화, 기능 개선, 업그레이드 방법을 개괄하는 문서입니다.

출처: 문서

본문

Helm v4는 v3에서 상당한 진화를 이루었습니다. 차트에 대한 하위 호환성을 유지하면서도 주요 변경 사항, 새로운 아키텍처 패턴, 향상된 기능을 도입했습니다.

계획된 Helm 4 릴리스 단계에 대한 자세한 내용은 Path to Helm v4를 참조하세요.

새로운 기능 (What's New)

이 섹션은 주요 변경 사항, 주요 신기능, 기타 개선 사항을 포함해 Helm 4의 새로운 점을 개괄합니다. 완전한 기술 세부 사항은 전체 변경 로그를 참조하세요.

요약 (Summary)

  • 새 기능: Wasm 기반 플러그인, kstatus watcher, OCI digest 지원, 멀티 문서 values, JSON 인자
  • 아키텍처 변경: 플러그인 시스템 완전 재설계, 패키지 구조 개편, CLI 플래그 이름 변경, 버전 관리 패키지로 전환, chart v3 지원, 콘텐츠 기반 캐싱
  • 현대화: slog 마이그레이션, Go 1.24 업데이트, 의존성 정리
  • 보안: 향상된 OCI/레지스트리 지원, TLS 개선

주요 변경 사항 (Breaking Changes)

포스트 렌더러가 플러그인으로 구현됨

포스트 렌더러(post-renderer)가 플러그인으로 구현됩니다. 이 변경으로 더 이상 실행 파일을 helm render --post-renderer 에 직접 전달할 수 없으며, 플러그인 이름을 전달해야 합니다. 기존 포스트 렌더러 워크플로의 업데이트가 필요할 수 있습니다.

레지스트리 로그인이 전체 URL을 받지 않음

helm registry login 명령은 v4에서 도메인 이름으로만 수행해야 합니다. 이미래에 레지스트리의 여러 수준에서 로그인을 범위 지정할 수 있도록 하기 위함입니다.

새 기능 (New Features)

플러그인 시스템 혁신 (Plugin System Overhaul)

Helm 4는 보안 강화와 기능 확장을 위해 선택적인 WebAssembly 기반 런타임을 도입합니다. 기존 플러그인은 계속 동작하지만, 새 런타임은 Helm의 핵심 동작을 플러그인 사용자 정의에 더 많이 노출합니다. Helm 4는 CLI 플러그인, getter 플러그인, 포스트 렌더러 플러그인의 세 가지 플러그인 유형으로 시작하며, 추가 핵심 기능을 사용자 정의하기 위한 새 플러그인 유형을 가능하게 하는 시스템을 갖습니다. HIP-0026 플러그인 시스템Helm 4 예제 플러그인을 참조하세요.

:::tip 기존 플러그인은 이전처럼 동작합니다. 새 WebAssembly 런타임은 선택 사항이지만 보안 강화를 위해 권장됩니다. :::

더 나은 리소스 모니터링

새 kstatus 통합이 배포 상태를 상세히 보여줍니다. 복잡한 애플리케이션으로 테스트해 문제를 더 잘 포착하는지 확인해 보세요.

향상된 OCI 지원

공급망 보안 강화를 위해 digest 로 차트를 설치합니다. 예: helm install myapp oci://registry.example.com/charts/app@sha256:abc123.... 일치하지 않는 digest 의 차트는 설치되지 않습니다.

멀티 문서 Values

복잡한 값을 여러 YAML 파일에 나눠 담습니다. 다양한 환경 구성을 테스트하는 데 완벽합니다.

서버 사이드 적용 (Server-Side Apply)

여러 도구가 같은 리소스를 관리할 때 충돌 해결이 개선됩니다. 운영자나 다른 컨트롤러가 있는 환경에서 테스트하세요.

Helm 4는 새 Chart 릴리스를 설치할 때 기본적으로 서버 사이드 적용을 사용합니다.

업그레이드(또는 롤백)할 때 Helm은 기본적으로 릴리스의 이전 적용 방법을 따릅니다. 이 래칭(latching) 동작은 클라이언트 사이드 적용을 사용한 기존 릴리스의 운영 연속성을 보장하기 위한 것입니다. --server-side 플래그를 명시적으로 설정하면 이 동작을 재정의할 수 있습니다.

따라서 Helm 3에서 만든 모든 릴리스는 Helm 4로 업그레이드한 후 기본적으로 클라이언트 사이드 적용을 사용합니다.

사용자 정의 템플릿 함수

플러그인을 통해 자신만의 함수로 Helm 템플릿을 확장합니다. 조직별 템플릿 요구에 좋습니다.

포스트 렌더러를 플러그인으로

포스트 렌더러는 플러그인으로 구현되어 더 나은 통합과 더 많은 기능을 제공합니다.

안정적인 SDK API

API 주요 변경이 완료되었습니다. 테스트하고, 깨뜨려 보고, 피드백을 주세요! 또한 API는 추가 차트 버전을 가능하게 하여 다가오는 Charts v3의 새 기능 가능성을 열어줍니다.

Charts v3

Charts v3는 초기 개발 단계이며 실험할 수 있습니다. v2 차트는 변경 없이 계속 동작합니다.

Charts v3를 사용하려면:

  1. HELM_EXPERIMENTAL_CHART_V3 환경 변수를 설정하세요.

    export HELM_EXPERIMENTAL_CHART_V3=1
    
  2. v3 API 버전으로 새 차트를 만드세요.

    helm create --chart-api-version=v3 mychart
    

:::warning Charts v3는 실험적입니다. 기능이 최종 릴리스 전에 바뀌거나 제거될 수 있습니다. 테스트와 피드백 용도로만 사용하세요. :::

개선 사항 (Improvements)

성능 (Performance)

더 빠른 의존성 해결과 새 콘텐츠 기반 차트 캐싱.

에러 메시지 (Error Messages)

더 명확하고 도움이 되는 에러 출력.

레지스트리 인증 (Registry Authentication)

프라이빗 레지스트리를 위한 더 나은 OAuth 및 토큰 지원.

CLI 플래그 이름 변경 (CLI Flags renamed)

몇몇 일반적인 CLI 플래그의 이름을 동작을 더 명확히 하도록 변경했습니다. 기존 플래그는 그대로 남지만 deprecated 경고를 출력합니다.

  • --atomic--rollback-on-failure
  • --force--force-replace

이름이 바뀐 CLI 플래그를 사용하는 자동화를 업데이트하세요.

CLI 플래그 deprecated

helm template 의 다음 플래그들은 deprecated 되었으며 Helm 5에서 제거될 예정입니다.

  • --hide-notes
  • --render-subchart-notes

이 플래그들은 템플릿 출력에 노트가 절대 포함되지 않으므로 효과가 없습니다. 하위 호환성을 위해 Helm 4에 남아 있지만 도움말 출력에서는 숨겨집니다.

Helm 4로 업그레이드하기 (Upgrading to Helm 4)

Helm 4를 모두에게 견고하게 만들기 위해 열심히 노력하고 있지만, Helm 4는 완전히 새것입니다. 이를 위해 업그레이드 전에 기존 워크플로로 Helm 4를 테스트할 때 주의해야 할 몇 가지 사항을 아래에 정리했습니다. 항상 그렇듯이 무엇이 잘 동작하는지, 무엇이 깨지는지, 무엇이 더 나을 수 있는지에 대한 모든 피드백을 환영합니다.

높은 우선순위 (High Priority)

  • 기존 차트와 릴리스를 테스트해 v4에서도 여전히 동작하는지 확인하세요.
  • 세 가지 플러그인 유형(CLI, getter, post-renderer)을 모두 테스트하세요.
  • 새 런타임으로 WebAssembly 플러그인 빌드를 시도해 보세요(예제 플러그인 참조).
  • SDK 사용자: 이제 안정화된 API를 테스트하세요. 깨뜨려 보고 피드백을 공유하세요.
  • CI/CD 파이프라인을 테스트하고 이름이 바뀐 CLI 플래그로 인한 스크립트 에러를 고치세요.
  • 포스트 렌더러 통합을 테스트하세요.
  • OCI 워크플로에서 레지스트리 인증과 차트 설치를 테스트하세요.

기타 (Other)

  • 멀티 문서 values, digest 기반 설치, 사용자 정의 템플릿 함수 등 다른 새 기능을 테스트하세요.
  • 크고 복잡한 차트로 Helm 4 성능을 테스트해 워크로드에서 눈에 띄게 더 빠른지 확인하세요.
  • 의도적으로 문제를 일으켜 업데이트된 에러 메시지가 도움이 되는지 확인하세요.

피드백 (Feedback)

  • Helm 핵심 기능을 사용자 정의하기 위해 추가하면 좋을 다른 플러그인 유형은 무엇인가요?
  • API가 추가 차트 버전을 지원한다면, Charts v3에서 원하는 새 기능은 무엇인가요?

피드백 제공 방법 (How to Give Feedback)

문제를 발견했거나 제안이 있나요? 여러분의 의견을 듣고 싶습니다.

GitHub Issues

Helm 리포지토리에서 열려 있는 이슈와 기능 요청 목록을 검토하세요. 기존 항목에 댓글을 추가하거나, 새 이슈와 요청을 만드세요.

커뮤니티 Slack

Kubernetes Slack 채널에 참여하세요.

  • #helm-dev 개발 토론용
  • #helm-users 사용자 지원 및 테스트 피드백용

주간 개발 회의 (Weekly Dev Meetings)

매주 목요일 오전 9:30(PT)에 Zoom에서 유지보수자와의 라이브 토론에 참여하세요.

더 많은 옵션은 Helm 커뮤니티의 커뮤니케이션 세부 사항을 참조하세요.

더 알아보기 (Learn more)