Helm Cheatsheet
A comprehensive quick reference for Helm commands, configuration, and troubleshooting. Keep this cheatsheet handy for daily Helm chart operations.
Basic Commands
Chart Management
Advanced
Debugging
Quick Navigation
Basics
Helm Information
helm version
Check Helm version
helm version
helm env
Show Helm environment variables
helm env
helm help
Show Helm help
helm help
helm <command> --help
Show help for a specific command
helm install --help
Release Management
helm list
List all releases in current namespace
helm list
helm list --all-namespaces
List releases across all namespaces
helm list -A
helm list --all
List all releases including failed and pending
helm list --all
helm status <release>
Show release status
helm status my-release
helm history <release>
Show release history
helm history my-release
helm get all <release>
Get all information about a release
helm get all my-release
helm get values <release>
Get values for a release
helm get values my-release
helm get manifest <release>
Get manifests for a release
helm get manifest my-release
helm get notes <release>
Get notes for a release
helm get notes my-release
Repositories
helm repo add <name> <url>
Add a Helm repository
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo list
List added repositories
helm repo list
helm repo update
Update repositories
helm repo update
helm repo remove <name>
Remove a repository
helm repo remove bitnami
helm search repo <keyword>
Search repositories for charts
helm search repo nginx
helm search repo <chart> --versions
Search with all versions
helm search repo nginx --versions
helm search hub <keyword>
Search Artifact Hub
helm search hub nginx
Install & Upgrade
helm install <release> <chart>
Install a chart
helm install my-release bitnami/nginx
helm install <release> <chart> --namespace <ns> --create-namespace
Install in a namespace, creating if needed
helm install my-release ./my-chart -n production --create-namespace
helm install <release> <chart> -f values.yaml
Install with custom values
helm install my-release ./my-chart -f values-prod.yaml
helm install <release> <chart> --set key=value
Install with individual values
helm install my-release ./my-chart --set replicaCount=5
helm install <release> <chart> --dry-run --debug
Preview installation without installing
helm install my-release ./my-chart --dry-run --debug
helm install <release> <chart> --wait --timeout 10m
Wait for resources to be ready
helm install my-release ./my-chart --wait --timeout 10m
helm install <release> <chart> --atomic
Rollback on failure
helm install my-release ./my-chart --atomic
helm install <release> <chart> --generate-name
Auto-generate release name
helm install ./my-chart --generate-name
Upgrade
helm upgrade <release> <chart>
Upgrade a release
helm upgrade my-release ./my-chart
helm upgrade --install <release> <chart>
Install if not exists, upgrade if exists
helm upgrade --install my-release ./my-chart
helm upgrade <release> <chart> --atomic --wait
Upgrade with automatic rollback and wait
helm upgrade my-release ./my-chart --atomic --wait --timeout 15m
helm upgrade <release> <chart> --history-max 20
Limit release history
helm upgrade my-release ./my-chart --history-max 20
Rollback & Uninstall
helm rollback <release>
Rollback to previous revision
helm rollback my-release
helm rollback <release> <revision>
Rollback to specific revision
helm rollback my-release 2
helm rollback <release> <revision> --force
Force rollback (recreate resources)
helm rollback my-release 2 --force
helm rollback <release> <revision> --cleanup-on-fail
Clean up on failure
helm rollback my-release 2 --cleanup-on-fail
helm uninstall <release>
Uninstall a release
helm uninstall my-release
helm uninstall <release> --keep-history
Uninstall but keep history
helm uninstall my-release --keep-history
helm uninstall <release> --no-hooks
Uninstall without running hooks
helm uninstall my-release --no-hooks
Chart Development
helm create <chart>
Create a new chart
helm create my-chart
helm lint <chart>
Lint a chart
helm lint ./my-chart
helm lint <chart> --strict
Strict linting
helm lint ./my-chart --strict
helm template <release> <chart>
Render templates locally
helm template my-release ./my-chart
helm template <release> <chart> --debug
Render with debug output
helm template my-release ./my-chart --debug
helm template <release> <chart> --show-only templates/deployment.yaml
Render specific template
helm template my-release ./my-chart --show-only templates/deployment.yaml
helm package <chart>
Package a chart
helm package ./my-chart
helm package <chart> --version 1.2.3
Package with specific version
helm package ./my-chart --version 1.2.3
helm package <chart> --sign --key "Your Name"
Package and sign chart
helm package ./my-chart --sign --key "Your Name"
helm verify <chart>
Verify a signed chart
helm verify my-chart-1.0.0.tgz
helm show chart <chart>
Show chart metadata
helm show chart ./my-chart
helm show values <chart>
Show chart values
helm show values ./my-chart
helm show all <chart>
Show all chart information
helm show all ./my-chart
Dependencies
helm dependency list <chart>
List chart dependencies
helm dependency list ./my-chart
helm dependency update <chart>
Update dependencies
helm dependency update ./my-chart
helm dependency build <chart>
Build dependencies from Chart.lock
helm dependency build ./my-chart
OCI Registry
helm registry login <registry>
Login to OCI registry
helm registry login ghcr.io
helm registry logout <registry>
Logout from OCI registry
helm registry logout ghcr.io
helm push <chart> oci://<registry>/<repo>
Push chart to OCI registry
helm push my-chart-1.0.0.tgz oci://ghcr.io/username/helm
helm pull oci://<registry>/<repo>/<chart>
Pull chart from OCI registry
helm pull oci://ghcr.io/username/helm/my-chart --version 1.0.0
helm install <release> oci://<registry>/<repo>/<chart>
Install from OCI registry
helm install my-release oci://ghcr.io/username/helm/my-chart --version 1.0.0
Debugging
helm install <release> <chart> --dry-run --debug
Dry run with debug output
helm install my-release ./my-chart --dry-run --debug
helm upgrade <release> <chart> --dry-run --debug
Upgrade dry run with debug
helm upgrade my-release ./my-chart --dry-run --debug
helm template <release> <chart> --debug
Template with debug output
helm template my-release ./my-chart --debug
helm template <release> <chart> --show-only <template>
Show only specific template
helm template my-release ./my-chart --show-only templates/deployment.yaml
helm lint <chart> --debug
Lint with debug output
helm lint ./my-chart --debug
kubectl get secrets -n <ns> | grep sh.helm.release
Check Helm release secrets
kubectl get secrets -n default | grep sh.helm.release
kubectl logs -n <ns> <pod>
Check pod logs for runtime issues
kubectl logs -n default my-app-pod
kubectl describe pod <pod>
Check pod events for issues
kubectl describe pod my-app-pod
Configuration
helm env
Show Helm environment variables
helm env
export HELM_HOME=/path/to/helm-home
Set custom Helm home directory
export HELM_HOME=/opt/helm
export KUBECONFIG=/path/to/kubeconfig
Set custom kubeconfig
export KUBECONFIG=~/.kube/config
export HELM_NAMESPACE=production
Set default namespace
export HELM_NAMESPACE=production
helm install <release> <chart> --kube-context <context>
Use specific kube context
helm install my-release ./my-chart --kube-context production
helm install <release> <chart> --kubeconfig <path>
Use specific kubeconfig file
helm install my-release ./my-chart --kubeconfig ~/.kube/config
Advanced
helm get all <release> --revision <n>
Get all info for a specific revision
helm get all my-release --revision 2
helm get values <release> --all
Get all values including defaults
helm get values my-release --all
helm get manifest <release> --revision <n>
Get manifest for specific revision
helm get manifest my-release --revision 2
helm upgrade <release> <chart> --reset-values
Reset values to chart defaults
helm upgrade my-release ./my-chart --reset-values
helm upgrade <release> <chart> --reuse-values
Reuse last release's values
helm upgrade my-release ./my-chart --reuse-values
helm install <release> <chart> --set-file key=path
Set value from file
helm install my-release ./my-chart --set-file config=config.json
helm install <release> <chart> --set-string key=value
Force string value
helm install my-release ./my-chart --set-string version=1.0.0
helm install <release> <chart> --values file1.yaml --values file2.yaml
Use multiple values files
helm install my-release ./my-chart -f base.yaml -f prod.yaml
helm list --filter <pattern>
Filter releases by pattern
helm list --filter "my*"
helm list --deployed
List only deployed releases
helm list --deployed
helm list --failed
List only failed releases
helm list --failed
helm list --pending
List only pending releases
helm list --pending
helm list --output json
Output in JSON format
helm list --output json
helm list --output yaml
Output in YAML format
helm list --output yaml
Frequently Asked Questions
What is the difference between helm install and helm upgrade?
helm install creates a new release. helm upgrade updates an existing release. Use helm upgrade --install to install if not exists or upgrade if exists. How do I check what a Helm chart will deploy without installing?
Use
helm template <release> <chart> to render templates locally, or helm install <release> <chart> --dry-run --debug to simulate installation. How do I rollback a failed Helm release?
Use
helm rollback <release> <revision> to revert to a previous revision. Use --force if immutable fields are an issue. How do I view the values used by a Helm release?
Use
helm get values <release> to see user-supplied values. Use helm get values <release> --all to see all values including defaults. How do I uninstall a Helm release but keep history?
Use
helm uninstall <release> --keep-history to remove resources but preserve release history for auditing. How do I install a chart in a specific namespace?
Use
helm install <release> <chart> --namespace <ns> --create-namespace to install in a specific namespace, creating it if needed. How do I debug template rendering issues?
Use
helm template <release> <chart> --debug to see rendered output. Use --show-only to isolate specific templates. How do I push a chart to an OCI registry?
Use
helm registry login <registry> then helm push <chart> oci://<registry>/<repo> to push charts to OCI registries.
Related Topics
Keep this cheatsheet handy for quick reference during daily Helm operations. Bookmark it for easy access.