소개
Helmsman은 Helm Charts를 코드로 관리하여 쿠버네티스 애플리케이션 배포를 자동화하는 도구입니다. Praqma에서 시작하여 현재 mkubaczyk이 유지 관리하고 있으며, 선언적 TOML 또는 YAML 파일을 통해 원하는 상태를 정의하고 Helm 릴리스를 계획, 검토, 적용할 수 있습니다. 이 도구는 쿠버네티스 클러스터에서 Helm 차트의 배포 및 관리를 코드화하여 버전 관리와 재현 가능성을 높입니다.
상세정보
선언적 원하는 상태 관리
Helmsman은 TOML 또는 YAML 형식의 원하는 상태 파일(DSF)을 사용하여 쿠버네티스 애플리케이션의 원하는 상태를 정의합니다. 이 파일은 애플리케이션 배포의 단일 진실 소스가 되어 버전 관리가 가능합니다.
플랜 및 적용 분리
사용자는 helmsman -f example.toml 명령으로 변경을 계획만 볼 수 있고, helmsman --apply -f example.toml 명령으로 계획과 실행을 함께 수행할 수 있습니다. 이는 배포 전에 변경 사항을 검토할 수 있게 해줍니다.
디버깅 및 드라이런 지원
--debug 플래그를 통해 상세한 로그를 확인할 수 있으며, --dry-run 옵션을 적용하여 실제 클러스터에 영향을 주지 않고 시뮬레이션을 실행할 수 있습니다.
타겟팅된 실행
--target artifactory와 같은 옵션을 사용하여 특정 애플리케이션 또는 릴리스에만 작업을 제한할 수 있어 복잡한 멀티테넌트 환경에서도 정밀한 관리가 가능합니다.
멀티네임스페이스 및 의존성 관리
Helmsman은 여러 네임스페이스에 걸친 릴리스를 관리할 수 있으며, 릴리스의 우선순위를 정의하여 의존성이 있는 차트의 배포 순서를 제어할 수 있습니다. 동일한 우선순위를 가진 릴리스는 병렬로 실행될 수 있습니다.
보호된 네임스페이스 및 릴리스
사용자는 특정 네임스페이스 또는 릴리스를 보호하여 실수로 인한 변경을 방지할 수 있으며, 배포 실패 시 부분적인 성공을 롤백하지 않고 실패한 차트만 수정하여 재시도할 수 있습니다.
다운로드·설치 방법
Helmsman은 바이너리, Docker 이미지, 패키지 관리자 등을 통해 설치할 수 있습니다. 바이너리로 설치하려면 먼저 kubectl, helm (v3.x 또는 v4.x), helm-diff 플러그인이 필요합니다. 이후 릴리스 페이지에서 원하는 버전의 바이너리를 다운받아 /usr/local/bin과 같은 경로에 배치할 수 있습니다.
Docker 이미지를 사용하는 경우 ghcr.io/mkubaczyk/helmsman에서 이미지를 pull할 수 있으며, Helm 3 또는 4 버전에 따라 -helm3 또는 -helm4 태그를 사용할 수 있습니다.
또한 Homebrew (brew install helmsman), Archlinux AUR (helmsman-bin 또는 helmsman-git), asdf-vm 플러그인 등을 통해 설치할 수 있습니다.
기본 사용법/명령어
Helmsman을 사용하는 기본 워크플로우는 원하는 상태 파일을 준비하고, 계획을 검토한 후 적용하는 순서입니다. 먼저 example.toml 또는 example.yaml과 같은 선언적 파일을 생성합니다.
변경 사항을 적용하지 않고 계획을 보려면 다음 명령을 실행합니다:
helmsman -f example.toml
계획을 보고 실제 클러스터에 적용하려면 다음 명령을 사용합니다:
helmsman --apply -f example.toml
배포 과정에서 상세한 로그를 확인하려면 --debug 플래그를 추가합니다:
helmsman --debug --apply -f example.toml
실제 적용 없이 시뮬레이션만 실행하려면 --dry-run 옵션을 사용합니다:
helmsman --debug --dry-run -f example.toml
특정 애플리케이션에만 작업을 제한하려면 --target 옵션을 추가합니다:
helmsman --debug --dry-run --target artifactory -f example.toml
이런 경우에 유용합니다
Helmsman은 쿠버네티스 클러스터에서 Helm 차트의 배포를 코드화하여 버전 관리하고 싶은 개발자 및 DevOps 엔지니어에게 유용합니다. 특히 멀티테넌트 클러스터에서 여러 네임스페이스에 걸친 애플리케이션 릴리스를 관리하거나, 배포 전 변경 사항을 검토하고 싶은 팀에게 적합합니다. 또한 배포 실패 시 전체 롤백 없이 부분적인 성공을 유지하면서 문제를 해결하고 싶은 경우에도 도움이 됩니다.
화면으로 보는 주요 기능
헬름스맨 로고

파란색 원 안에 노란색 모자를 쓴 캐릭터와 휠이 있는 로고와 함께 'Helmsman'이라는 파란색 글자가 표시되어 있다.
시스템 요구사항
별도의 시스템 요구사항이 등록되지 않았습니다.


