Helm Commands
Complete reference for Helm CLI commands. Run helm <command> --help for detailed help.
Installation & Upgrades
helm install
Install a chart into Kubernetes.
# Basic install
helm install <release-name> <chart>
# Generate name automatically
helm install myapp bitnami/wordpress
# Install with values file
helm install -f values.prod.yaml myapp ./mychart
# Install with multiple value files (later takes precedence)
helm install -f values.yaml -f values.prod.yaml myapp ./mychart
# Set individual values
helm install --set image.tag=v1.2.3 --set replicaCount=3 myapp ./mychart
# Dry-run (template locally)
helm install --dry-run --debug myapp ./mychart
# Atomic install (rollback on failure)
helm install --atomic myapp ./mychart
# Wait for resources to be ready
helm install --wait --timeout 10m myapp ./mychart
# Skip schema validation
helm install --skip-schema-validation myapp ./mychart
# Install from OCI registry
helm install myapp oci://ghcr.io/org/charts/app --version 1.0.0
# Install from specific digest (most secure)
helm install myapp oci://ghcr.io/org/charts/app@sha256:abc123...helm upgrade
Upgrade a release to a new chart version.
# Basic upgrade
helm upgrade <release-name> <chart>
# Upgrade with install (create if not exists)
helm upgrade --install myapp ./mychart
# Atomic upgrade with rollback on failure
helm upgrade --install --atomic myapp ./mychart
# Force replace (delete and recreate resources)
helm upgrade --force myapp ./mychart
# Recreate pods (deprecated in Helm 3)
helm upgrade --recreate-pods myapp ./mychart
# Upgrade with reset values
helm upgrade --reset-values myapp ./mychart
# Upgrade with timeout and wait
helm upgrade --wait --timeout 5m myapp ./mychart
# Upgrade from OCI with version
helm upgrade myapp oci://ghcr.io/org/charts/app --version 2.0.0helm rollback
Roll back a release to a previous revision.
# Rollback to previous revision
helm rollback <release-name>
# Rollback to specific revision
helm rollback <release-name> 3
# Rollback with timeout
helm rollback --timeout 5m <release-name>
# Rollback with wait
helm rollback --wait <release-name>helm uninstall
Uninstall a release from Kubernetes.
# Basic uninstall
helm uninstall <release-name>
# Keep release history
helm uninstall --keep-history <release-name>
# Wait for resources to be deleted
helm uninstall --wait <release-name>Release Management
helm list
List all releases in a namespace.
# List releases in current namespace
helm list
# List releases in specific namespace
helm list -n mynamespace
# List all releases across namespaces
helm list --all-namespaces
# List with status filter
helm list --filter 'status=deployed'
# Show deleted releases
helm list --uninstalled
# Show all releases including failed/deleted
helm list --all
# Output in JSON/YAML
helm list -o json
helm list -o yaml
# Limit results
helm list --max 20helm status
Display the status of a named release.
helm status <release-name>
helm status <release-name> -n mynamespace
# Show resources (Helm 3.2+)
helm status <release-name> --show-resourceshelm history
Fetch release history.
helm history <release-name>
helm history <release-name> --max 10helm get
Download extended information for a named release.
# All information
helm get all <release-name>
# Values
helm get values <release-name>
helm get values <release-name> --revision 2
# Manifest (rendered templates)
helm get manifest <release-name>
helm get manifest <release-name> --revision 3
# Notes
helm get notes <release-name>
# Hooks
helm get hooks <release-name>
# Metadata
helm get metadata <release-name>Chart Operations
helm create
Create a new chart with the given name.
# Create new chart
helm create mychart
# Create in specific directory
helm create ./charts/myservice
# Create from starter template
helm create mychart --starter commonhelm package
Package a chart directory into a chart archive.
# Package current directory
helm package ./mychart
# Package with version
helm package ./mychart --version 1.2.3
# Sign the package
helm package --sign --key 'My Key' --keyring ~/.gnupg/secring.gpg ./mychart
# Sign with specific algorithm
helm package --sign --key 'My Key' --keyring ~/.gnupg/secring.gpg --sign-algorithm ECDSA ./mycharthelm lint
Examine a chart for possible issues.
# Lint chart
helm lint ./mychart
# Strict linting (including schema validation)
helm lint --strict ./mychart
# Set values during lint
helm lint --set image.tag=v1.0 ./mycharthelm template
Locally render templates.
# Basic template
helm template myrelease ./mychart
# With values file
helm template myrelease -f values.yaml ./mychart
# With set values
helm template myrelease --set image.tag=v1.2.3 ./mychart
# Include hooks
helm template myrelease --include-crds ./mychart
# Show notes
helm template myrelease --show-only templates/NOTES.txt ./mycharthelm diff (requires helm-diff plugin)
Show differences between chart versions.
# Show upgrade diff
helm diff upgrade myapp ./mychart
# Show against specific revision
helm diff upgrade myapp --revision 2 ./mychart
# Show with value changes
helm diff values myapp -f values.prod.yaml ./mychart
# Ignore specific fields
helm diff upgrade myapp --ignore-annotations ./mychartRepository Management
helm repo add
Add a chart repository.
# Add repository
helm repo add bitnami https://charts.bitnami.com
# Add with alias
helm repo add stable https://charts.helm.sh/stable
# Add with username/password
helm repo add internal https://charts.internal.com --username admin --password secret
# Add from OCI registry
helm repo add oci://ghcr.io/org/chartshelm repo update
Update information of available charts locally.
helm repo update
# Update specific repository
helm repo update bitnami
# Update all repositories
helm repo updatehelm repo list
List chart repositories.
helm repo listhelm repo remove
Remove one or more chart repositories.
helm repo remove bitnami
helm repo remove stable localhelm repo index
Generate an index file from a directory of charts.
# Generate index for directory
helm repo index ./charts --url https://charts.example.com
# Merge with existing index
helm repo index ./charts --merge ./charts/index.yamlSearch
helm search
Search for charts.
# Search Artifact Hub
helm search hub wordpress
# Search specific repository
helm search repo bitnami/wordpress
# Search with version constraint
helm search repo nginx --version ">=1.0.0"
# Output in JSON
helm search hub wordpress -o json
# List repository URLs
helm search hub nginx --list-repo-urlDependency Management
helm dependency build
Rebuild the charts/ directory based on Chart.lock.
helm dependency build ./mycharthelm dependency update
Update charts/ based on Chart.yaml.
helm dependency update ./mychart
# Update with specific repository cache
helm dependency update --repository-cache /path/to/cache ./mycharthelm dependency list
List dependencies for a chart.
helm dependency list ./mychartTesting
helm test
Run tests for a release.
# Run all tests
helm test <release-name>
# Run with output
helm test <release-name> --logs
# Keep pods after test
helm test <release-name> --keep-containers
# Run specific test
helm test <release-name> --filter "name=test-connection"Registry Operations
helm registry login
Login to a registry.
# Interactive login
helm registry login ghcr.io
# With credentials
helm registry login -u username ghcr.iohelm registry logout
Logout from a registry.
helm registry logout ghcr.iohelm push
Push a chart to OCI registry.
# Push chart package
helm push mychart-1.0.0.tgz oci://ghcr.io/org/charts
# Push with provenance file
helm push mychart-1.0.0.tgz oci://ghcr.io/org/chartsPlugin Management
helm plugin install
Install Helm plugins.
# Install from URL
helm plugin install https://github.com/dataroots/helm-git
# Install from local plugin directory
helm plugin install ./path/to/plugin
# Install specific version
helm plugin install https://example.com/plugin-1.0.0.tgz --version 1.0.0helm plugin list
List installed plugins.
helm plugin listhelm plugin update
Update plugins.
helm plugin update diff
helm plugin updatehelm plugin uninstall
Uninstall plugins.
helm plugin uninstall diffEnvironment & Configuration
helm env
Print Helm client environment information.
helm envhelm version
Print version information.
helm version
helm version --shorthelm completion
Generate autocompletion scripts.
# Bash
helm completion bash
# Zsh
helm completion zsh
# PowerShell
helm completion powershell
# Fish
helm completion fish
# Update completions in current shell
source <(helm completion bash)Verification
helm verify
Verify that a chart at the given path has been signed and is valid.
# Verify chart
helm verify ./mychart-1.0.0.tgz
# Verify with keyring
helm verify --keyring ~/.gnupg/pubring.gpg ./mychart-1.0.0.tgzhelm plugin verify
Verify that a plugin is signed and valid.
helm plugin verify ./path/to/plugin.tar.gzGlobal Flags
| Flag | Description |
|---|---|
--debug | Enable verbose output |
--kube-context | Set the kube context |
--namespace / -n | Set the namespace |
--kubeconfig | Path to kubeconfig file |
--dry-run | Simulate operations |
--timeout | Set timeout (Go duration format) |
--wait | Wait for resources to be ready |
--no-hooks | Skip running hooks |
--skip-schema-validation | Skip schema validation |
--set | Set values |
--set-file | Set values from file |
--set-string | Set string values |
--values / -f | Set values from file |
Common Patterns
Install-or-Upgrade (Idempotent)
helm upgrade --install myapp ./mychart --wait --atomicDry-Run Before Install
helm template myapp ./mychart -f values.prod.yaml | lessDebug Template Rendering
helm template myapp ./mychart --debug --dry-runView Release History with Timestamps
helm list -o yaml | yq '.[] | {name: .name, revision: .revision, updated: .updated, status: .status}'Cleanup Failed Release
helm uninstall myapp --wait
kubectl delete job -l "helm.sh/release=myapp"