Skip to content

Helm Cheat Sheet

Comprehensive Helm command reference for CKAD exam.


Repository Management

# Add repository
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo add stable https://charts.helm.sh/stable

# Update repositories
helm repo update

# List repositories
helm repo list

# Remove repository
helm repo remove bitnami

# Search repository
helm search repo nginx
helm search repo bitnami/nginx --versions

Chart Operations

# Search hub
helm search hub wordpress

# Show chart info
helm show chart bitnami/nginx
helm show values bitnami/nginx
helm show readme bitnami/nginx
helm show all bitnami/nginx

# Download chart
helm pull bitnami/nginx
helm pull bitnami/nginx --untar
helm pull bitnami/nginx --version 13.2.0

Installation

# Install chart
helm install myrelease bitnami/nginx

# Install with custom values
helm install myrelease bitnami/nginx -f values.yaml
helm install myrelease bitnami/nginx --set replicaCount=3
helm install myrelease bitnami/nginx --set service.type=NodePort

# Install in namespace
helm install myrelease bitnami/nginx -n mynamespace
helm install myrelease bitnami/nginx -n mynamespace --create-namespace

# Install with specific version
helm install myrelease bitnami/nginx --version 13.2.0

# Dry run
helm install myrelease bitnami/nginx --dry-run

# Generate name
helm install bitnami/nginx --generate-name

# Wait for ready
helm install myrelease bitnami/nginx --wait --timeout 5m

Upgrade & Rollback

# Upgrade release
helm upgrade myrelease bitnami/nginx
helm upgrade myrelease bitnami/nginx -f values.yaml
helm upgrade myrelease bitnami/nginx --set replicaCount=5

# Install or upgrade
helm upgrade --install myrelease bitnami/nginx

# Rollback
helm rollback myrelease
helm rollback myrelease 1
helm rollback myrelease 2

# History
helm history myrelease

Release Management

# List releases
helm list
helm list -A
helm list -n mynamespace
helm list --all

# Get release info
helm get all myrelease
helm get values myrelease
helm get manifest myrelease
helm get notes myrelease
helm get hooks myrelease

# Release status
helm status myrelease

# Uninstall
helm uninstall myrelease
helm uninstall myrelease -n mynamespace
helm uninstall myrelease --keep-history

Chart Development

# Create new chart
helm create mychart

# Lint chart
helm lint mychart

# Template rendering
helm template myrelease mychart
helm template myrelease mychart -f values.yaml
helm template myrelease mychart --debug

# Package chart
helm package mychart
helm package mychart --version 1.0.0

# Dependency management
helm dependency update mychart
helm dependency build mychart
helm dependency list mychart

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
│   └── tests/
└── .helmignore         # Files to ignore

Template Functions

# Values reference
{{ .Values.replicaCount }}
{{ .Release.Name }}
{{ .Release.Namespace }}
{{ .Chart.Name }}
{{ .Chart.Version }}

# Default values
{{ .Values.image.tag | default "latest" }}

# Quote strings
{{ .Values.name | quote }}

# Conditionals
{{- if .Values.ingress.enabled }}
...
{{- end }}

# Loops
{{- range .Values.hosts }}
- {{ . }}
{{- end }}

# Include template
{{- include "mychart.fullname" . }}

Common Values Override

# values.yaml
replicaCount: 3

image:
  repository: nginx
  tag: "1.25"
  pullPolicy: IfNotPresent

service:
  type: ClusterIP
  port: 80

ingress:
  enabled: true
  hosts:
    - host: myapp.example.com
      paths:
        - path: /
          pathType: Prefix

resources:
  limits:
    cpu: 200m
    memory: 256Mi
  requests:
    cpu: 100m
    memory: 128Mi

← Back to Home