
릴리즈 수명주기의 특정 지점에 차트 개발자가 개입할 수 있도록 제공하는 매커니즘
예시) helm install
helm install foo 실행crd/ 디렉터리의 CRD 설치foo 템플릿 렌더링pre-install 훅 실행을 준비 = 쿠버네티스 훅 리소스 로딩Ready 될 때까지 대기 (CRD 제외)--wait 플래그가 설정된 경우 라이브러리는 모든 리소스가 Ready 상태가 될 때까지 대기, 준비가 될 때까지 post-install 훅을 실행하지 않음post-install 훅을 실행 = 훅 리소스 로딩Ready 될 때까지 대기Job 또는 Pod 가 성공 완료될 때까지 기다린다는 말blocking 작업 이므로 작업이 실행되는 동안 헬름 클라이언트가 일시정지 된다.훅이 생성하는 리소스는 현재 릴리즈의 일부로 추적되거나 관리되지 않는다. 향후 헬름3에 릴리즈 삭제 시 훅 리소스에 대한 가비지 수집 기능이 추가될 수는 있지만 현재는 아니다!
실직적으로, helm uninstall 로 리소스를 제거할 수 없음을 의미한다. 이러한 리소스를 삭제하려면 훅 템플릿 파일에 helm.sh/hook-delete-policy 어노테이션을 추가하거나, Job 리소스의 TTL 필드를 설정해야 한다.
annotations:
"helm.sh/hook": post-install,post-upgrade
annotations:
"helm.sh/hook-weight": "5"
annotations:
"helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded
before-hook-creation : 새 훅이 시작되기 전에 이전 리소스 삭제 (default)hook-succeeded : 훅이 성공적으로 실행된 후에 리소스 삭제hook-failed : 실행 중 훅이 실패한 경우 리소스 삭제helm install my-release my-chart --debug