Skip to main content
Helm is a popular CLI tool for packaging, templating, and deploying applications on Kubernetes. It packages Kubernetes manifests into charts (reusable bundles of resources) and lets you inject environment-specific values to generate the YAML manifests required for cluster deployment. This abstraction simplifies complex application lifecycle tasks such as install, upgrade, rollback, and dependency management. Many community-maintained charts are discoverable on Artifact Hub.
The image is a flowchart showing the process of using the Helm CLI tool to incorporate custom variables and charts, creating Kubernetes manifests, which then lead to version updates.

How Helm templating works

Helm’s templating engine uses the Go templating language to produce Kubernetes manifests from templates plus a set of values. Templates contain placeholders (e.g., {{ .Values.name }}) that are populated from a values.yaml file, additional files passed with -f, or inline overrides via --set. Template rendering is typically performed client-side by the Helm CLI, producing the YAML that is either displayed (with helm template) or submitted to the API server (with helm install / helm upgrade).
The image is a diagram showing the "Templating Capabilities" of the "Go Templating Language," highlighting its attributes such as "Reusable," "Dynamic values," along with challenges like "Troubleshooting" and "Awkward."
Helm templates are evaluated client-side by the Helm CLI (unless using a server-side rendering plugin). Values come from values.yaml, from -f files, or from --set on the command line.
If you are new to Helm and want a structured walkthrough, Mumshad Mannambeth’s course “Helm for Beginners” is a commonly recommended resource.

Quick example — templating in Helm

Below is a minimal example showing:
  • a template file in templates/deployment.yaml
  • a values.yaml file
  • commands to render and install the chart
This demonstrates how placeholders are resolved to create a Kubernetes Deployment.
To install (render and submit) a chart into a cluster, give it a release name and optionally pass a values file:
Be careful with templates that manipulate namespaces or CRDs. Helm does not automatically update CRDs, and dependency namespace handling can cause unexpected results unless charts are designed properly.

Pros and cons of using Helm

All in all, Helm excels at packaging and templating for Kubernetes workloads, but you should plan for lifecycle gaps (CRDs, automated upgrades, runtime health checks) by integrating additional tooling or processes where needed.
The image is a comparison chart showing the pros and cons of a topic, with pros listed on a green background and cons on a red-orange background.
Glasskube addresses some of these Helm limitations; this article series explores how it integrates with and extends Helm workflows.

Watch Video