# Helm — The Package Manager for Kubernetes > Helm is the package manager for Kubernetes. Helps you manage Kubernetes applications via Helm Charts, which define, install, and upgrade even the most complex Kubernetes apps. The de facto way to distribute production-grade K8s software. ## Install Save the content below to `.claude/skills/` or append to your `CLAUDE.md`: ## Quick Use ```bash # Install brew install helm # macOS curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash ``` Add a repo and install a chart: ```bash helm repo add bitnami https://charts.bitnami.com/bitnami helm repo update # Search helm search repo redis # Install helm install my-redis bitnami/redis # Upgrade helm upgrade my-redis bitnami/redis --set auth.password=secret # Rollback helm rollback my-redis 1 # Uninstall helm uninstall my-redis ``` Create your own chart: ```bash helm create mychart helm lint mychart helm template mychart # Render YAML locally helm install my-release ./mychart helm package mychart # Produce .tgz ``` ## Intro Helm is the package manager for Kubernetes. It helps you manage Kubernetes applications through Helm Charts, which are templated YAML files that describe a related set of Kubernetes resources. Helm 3 removed Tiller (server-side component) making it simpler and more secure. - **Repo**: https://github.com/helm/helm - **Stars**: 29K+ - **Language**: Go - **License**: Apache 2.0 ## What Helm Does - **Charts** — packaged templated Kubernetes manifests - **Values** — override defaults per install - **Templates** — Go template language for dynamic resources - **Releases** — named install instances of a chart - **Rollbacks** — revert to a previous release - **Dependencies** — charts can depend on other charts - **Hooks** — pre-install, post-upgrade lifecycle - **Repositories** — share and discover charts - **OCI registry** — store charts in OCI-compliant registries ## Architecture Helm 3 is a pure client-side tool (no Tiller). `helm install` renders the templates locally, applies manifests to the cluster via the Kubernetes API, and stores release metadata as Kubernetes Secrets. No server-side component with cluster-admin rights. ## Self-Hosting CLI tool — runs on developer workstation or CI. Charts can be hosted anywhere: - **ChartMuseum** — open-source chart repo - **Harbor** — container registry with Helm chart support - **GitHub Pages** — via `helm repo index` - **Any OCI registry** — Docker Hub, GHCR, ECR ## Key Features - Templated manifests - Release tracking - Rollback support - Chart dependencies - Lifecycle hooks - Values hierarchy (CLI > values file > defaults) - Chart testing (helm test) - OCI registry support - Public chart hubs (Artifact Hub) ## Comparison | Tool | Approach | Templating | Rollbacks | |---|---|---|---| | Helm | Template + release | Go templates | Yes | | Kustomize | Overlay + base | No templates | Manual | | Jsonnet | Programmable JSON | Jsonnet | Manual | | Pulumi | Programming lang | Any language | Via state | | Cdk8s | TypeScript/Python | Code | Via state | ## FAQ **Q: Helm vs Kustomize?** A: Helm is great for distributing generic software (customize via values); Kustomize handles per-environment differences (dev/stage/prod overlays). They are often combined: Helm provides defaults, Kustomize applies environment-specific patches. **Q: Templates are too complex?** A: Go templates do have a learning curve. For complex logic, use the Lua-like extensions Helm 3 supports, or switch to Cue/Pulumi/Jsonnet. **Q: v2 vs v3?** A: v3 removed Tiller (the server component), greatly improving security and simplicity. v2 is EOL; new projects must use v3. ## Sources - Docs: https://helm.sh/docs - GitHub: https://github.com/helm/helm - License: Apache 2.0 --- Source: https://tokrepo.com/en/workflows/helm-package-manager-kubernetes-a2aa953c Author: AI Open Source