Helm

Helm is the package manager for Kubernetes, enabling you to define, install, and upgrade complex applications using charts. It is a CNCF graduated project.

Overview

Helm uses a packaging format called charts - a collection of files that describe a related set of Kubernetes resources. Charts can be stored in repositories, OCI registries, or local directories.

Key Concepts

ConceptDescription
ChartA Helm package containing Kubernetes resource templates
RepositoryA place where charts are collected and shared
ReleaseAn instance of a chart running in a Kubernetes cluster
ValuesConfiguration options that can be injected into templates

Documentation Index

Getting Started

  • commands - Complete Helm CLI commands reference
  • charts - Chart structure, templates, values, and dependencies
  • library-charts - Creating shared library charts for code reuse

Testing & Quality

  • testing - Chart testing, linting, and validation

Production & Operations

  • production - Multi-cluster, multi-environment deployments
  • oci - OCI registries, provenance, and chart signing
  • troubleshooting - Debugging failed releases and rollback strategies

CI/CD & GitOps

  • gitops - GitOps workflows with ArgoCD and Flux
  • cicd - CI/CD pipeline integration

Quick Reference

# Install a chart
helm install <release-name> <chart>
 
# Upgrade a release
helm upgrade <release-name> <chart>
 
# Rollback to previous revision
helm rollback <release-name>
 
# List all releases
helm list
 
# Get values for a release
helm get values <release-name>
 
# Template locally (dry-run)
helm template <release-name> <chart>
 
# Install with values file
helm install -f values.prod.yaml myapp ./mychart
 
# Upgrade with atomic rollback on failure
helm upgrade --install --atomic myapp ./mychart

Helm 4 vs Helm 3

Helm 4 introduces several breaking changes and new features:

FeatureChange
Post-renderersNow implemented as plugins
Registry loginDomain name only, no URL scheme
Server-side applyDefault for new installs
CLI flags--atomic--rollback-on-failure, --force--force-replace
Plugin systemWebAssembly-based runtime for enhanced security
Multi-document valuesSplit complex values across multiple YAML files

Chart Repository

Charts are available on:

References