Install & Upgrade
- helm installInstall chart
- helm upgradeUpgrade release
- helm upgrade --installInstall or upgrade
- helm rollbackRollback release
- helm uninstallRemove release
Repository Commands
- helm repo addAdd repository
- helm repo updateUpdate cache
- helm repo listList repos
- helm repo removeRemove repo
- helm search repoSearch charts
Release Management
- helm listList releases
- helm statusRelease status
- helm historyRelease history
- helm get valuesGet values
- helm get manifestGet manifests
Chart Commands
- helm createCreate chart
- helm packagePackage chart
- helm lintValidate chart
- helm show valuesShow defaults
- helm dependency updateUpdate deps
Common Install Examples
# Install with custom values
helm install my-release bitnami/nginx \
-f values.yaml \
--namespace my-namespace \
--create-namespace
# Install with set values
helm install my-release bitnami/postgresql \
--set auth.postgresPassword=secret \
--set primary.persistence.size=10Gi
# Dry run to see what would be installed
helm install my-release ./my-chart --dry-run --debug
Template Functions
# Values access
{{ .Values.replicaCount }}
{{ .Values.image.repository }}
# Built-in objects
{{ .Release.Name }}
{{ .Release.Namespace }}
{{ .Chart.Name }}
{{ .Chart.Version }}
# Control structures
{{- if .Values.ingress.enabled }}
{{- range .Values.hosts }}
{{- end }}
# Functions
{{ default "nginx" .Values.name }}
{{ quote .Values.name }}
{{ include "mychart.labels" . | nindent 4 }}
Debug & Test
- helm templateRender locally
- helm lintCheck errors
- helm testRun tests
- --dry-runSimulate install
- --debugVerbose output
Common Flags
- -n, --namespaceTarget namespace
- -f, --valuesValues file
- --setSet value
- --versionChart version
- --waitWait for ready
Chart Structure
mychart/
├── Chart.yaml # Chart metadata
├── values.yaml # Default values
├── charts/ # Dependencies
├── templates/ # Template files
│ ├── deployment.yaml
│ ├── service.yaml
│ ├── ingress.yaml
│ ├── _helpers.tpl # Template helpers
│ └── NOTES.txt # Post-install notes
└── .helmignore # Ignore patterns
Upgrade Strategies
- --atomicRollback on fail
- --cleanup-on-failDelete new on fail
- --forceForce update
- --reset-valuesReset to defaults
- --reuse-valuesKeep old values
Named Templates
# _helpers.tpl
{{- define "mychart.labels" -}}
app: {{ .Chart.Name }}
release: {{ .Release.Name }}
{{- end }}
# Usage in templates
metadata:
labels:
{{- include "mychart.labels" .
| nindent 4 }}