CloudOpsGuide
helm

Helm Charts: The Kubernetes Package Manager Explained

Intermediate
12 minutes
October 2026
CloudOpsGuide Team

Helm Charts: The Kubernetes Package Manager Explained

Helm is the package manager for Kubernetes. Instead of hand-editing a dozen YAML files per app, a chart bundles your manifests as parameterized templates — install it, upgrade it, roll it back as one unit called a release.

Table of Contents

Install Helm

# macOS
brew install helm

# Or grab the binary from github.com/helm/helm/releases
helm version

You need a working kubectl context — Helm uses it to talk to your cluster. Helm 4 is the current major release; check the version-skew policy against your cluster version.

Find and install charts

Artifact Hub (artifacthub.io) is where to search for charts — it aggregates hundreds of repositories with metadata and security info. Two ways to install:

OCI registries (modern, no repo config needed):

helm install my-podinfo \
  oci://ghcr.io/stefanprodan/charts/podinfo \
  --version 6.11.2

Classic chart repositories:

helm repo add bitnami https://charts.bitnami.com/bitnami
helm search repo bitnami
helm install my-redis bitnami/redis

Preview a chart before trusting it: helm show chart oci://... and helm show values.

Releases: Helm's unit of work

helm list                    # what's deployed
helm status my-podinfo       # details + rendered notes
helm history my-podinfo      # every revision

Customize with values

Charts expose values.yaml knobs. Override at install:

helm install my-redis bitnami/redis \
  --set auth.password=changeme \
  --set replica.replicaCount=3

# or a file
helm install my-redis bitnami/redis -f prod-values.yaml

Upgrade, roll back, uninstall

helm upgrade my-redis bitnami/redis --set image.tag=7.4
helm rollback my-redis 1          # back to revision 1
helm uninstall my-podinfo         # removes all resources + history
helm uninstall my-podinfo --keep-history   # allows helm rollback later

Upgrades are diffed and rolled: Helm tracks each revision so rollbacks are a single command — the same mental model as deployments, but for the whole stack.

Writing your own chart

helm create myapp
# myapp/
#   Chart.yaml          # name, version, appVersion
#   values.yaml         # defaults
#   templates/          # deployment.yaml, service.yaml, ...

Templates are Go-templated YAML: {{ .Values.replicaCount }} pulls from values. Iterate with helm template myapp ./myapp (renders without installing) and helm install --dry-run.

Practices that keep you out of trouble

  • Pin chart versions (--version), never float latest.
  • Keep values files in git per environment — ideally managed by GitOps (Argo CD and Flux both natively render Helm).
  • Check what a chart actually creates — helm template is free due diligence.
  • Set resource requests/limits — many charts ship without sane defaults.

Helm turns "apply these 15 files in the right order" into one audited, reversible unit. For anything more than a throwaway Deployment, it's the standard packaging layer.

Related Articles


Last Updated: October 2026 Author: CloudOpsGuide Team Difficulty: Intermediate Estimated Reading Time: 12 minutes