Install Helm
# macOS
brew install helm
# Linux
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
Add repository
helm repo add stable https://charts.helm.sh/stable
Update repositories
helm repo update
List repositories
helm repo list
Search charts
helm search repo nginx
Search hub
helm search hub wordpress
Install chart
helm install my-release stable/nginx
Install with custom values
helm install my-release stable/nginx -f values.yaml
Install with CLI values
helm install my-release stable/nginx --set service.type=NodePort
Install specific version
helm install my-release stable/nginx --version 1.2.3
Install to namespace
helm install my-release stable/nginx -n production
List releases
helm list
List all namespaces
helm list -A
Get release info
helm get all my-release
Get values
helm get values my-release
Get manifest
helm get manifest my-release
Upgrade release
helm upgrade my-release stable/nginx
Upgrade with values
helm upgrade my-release stable/nginx -f values.yaml
Install or upgrade
helm upgrade --install my-release stable/nginx
Rollback release
helm rollback my-release 1
Show history
helm history my-release
Uninstall release
helm uninstall my-release
Test release
helm test my-release
Create new chart
helm create mychart
Lint chart
helm lint ./mychart
Package chart
helm package ./mychart
Template preview
helm template my-release ./mychart
Dry run install
helm install my-release ./mychart --dry-run --debug
Show chart info
helm show chart stable/nginx
Show chart values
helm show values stable/nginx
Show all chart info
helm show all stable/nginx
Pull chart
helm pull stable/nginx
Pull and extract
helm pull stable/nginx --untar
Basic chart structure
mychart/
├── Chart.yaml # Chart metadata
├── values.yaml # Default values
├── charts/ # Dependencies
└── templates/ # Kubernetes manifests
├── deployment.yaml
├── service.yaml
├── _helpers.tpl
└── NOTES.txt
Chart.yaml example
apiVersion: v2
name: mychart
description: A Helm chart for my app
type: application
version: 0.1.0
appVersion: "1.0"
values.yaml example
replicaCount: 2
image:
repository: nginx
tag: "1.21"
pullPolicy: IfNotPresent
service:
type: ClusterIP
port: 80
List plugins
helm plugin list
Install plugin
helm plugin install https://github.com/databus23/helm-diff