What is Helm?
Also known as: Helm Chart
Helm is a package manager for Kubernetes that uses charts to define, install, and upgrade complex applications as a single, versioned unit.
Helm is a tool for managing Kubernetes applications through packaging, deployment, and lifecycle management. At its core, Helm uses a packaging format called a chart, which is a collection of files that describe a related set of Kubernetes resources. A chart includes template files written in Go template language, default configuration values (values.yaml), and a metadata file (Chart.yaml). When a chart is installed, Helm renders the templates against the supplied values to produce valid Kubernetes YAML manifests, which are then applied to the cluster.
Helm operates with two main components: the Helm client (CLI) and a server-side component called Tiller (in Helm v2) or direct API access (in Helm v3, which removed Tiller). In Helm v3, the client communicates directly with the Kubernetes API server, storing release information in Secrets within the target namespace. A release is an instance of a chart running in a cluster, with its own configuration and revision history. Helm supports rollbacks to previous revisions, dependency management between charts, and repository hosting for distributing charts.
Helm sits above raw Kubernetes manifest files and below full application lifecycle platforms like Operators. It solves the problem of templating and parameterizing Kubernetes YAML, enabling teams to share and reuse application definitions across environments without duplicating large blocks of configuration. Helm is widely adopted in the Kubernetes ecosystem, with the Helm Hub and Artifact Hub serving as centralized repositories for community and vendor charts. It is an official CNCF graduated project, first released in 2015 and now at version 3 after significant architectural changes.
Key facts
- Helm v3 removed the server-side Tiller component for improved security simplicity.
- Charts are versioned and can be stored in repositories like Artifact Hub or private registries.
- Each chart install creates a release tracked in the cluster's namespace as a Secret.
- Helm supports dependency resolution, version constraints, and SemVer-compatible chart versions.
- Templates use Go templating with Sprig function library for advanced logic and loops.
- Helm can manage applications with dozens of Kubernetes resources from a single `helm install` command.
How it works in practice
Related terms
References
More in Containers & Orchestration
ConfigMap
A ConfigMap is a Kubernetes API object used to store non-confidential configuration data in key-value pairs, which pods can consume as environment variables, command-line arguments, or configuration files.
Container
A container is a lightweight, isolated runtime that packages an application with its dependencies using OS-level virtualization, enabling consistent execution across environments.
Container Image
A container image is a lightweight, standalone, executable package that includes everything needed to run a piece of software: code, runtime, system tools, libraries, and settings. It is the unit of distribution in container ecosystems like Docker and Kubernetes.
Container Registry
A container registry is a service that stores and distributes container images, enabling developers to push, pull, and version images across environments.
Container Runtime
A container runtime is the low-level software that creates, starts, and stops containers according to the OCI runtime specification, enabling process isolation and resource management.
Docker
Docker is a platform and toolchain for packaging, distributing, and running applications inside lightweight, portable containers, popularising the technology from 2013 onward.
Ingress Controller
An Ingress Controller is a Kubernetes component that watches Ingress resources and configures a reverse proxy to route external HTTP and HTTPS traffic to services inside the cluster.
Init Container
An init container is a specialized container in a Kubernetes pod that runs to completion before any regular containers start, performing initialization or setup tasks.
Kubernetes
Kubernetes is an open source platform for automating the deployment, scaling, and management of containerized applications across clusters of hosts.
Operator
A Kubernetes Operator is a custom controller that extends the Kubernetes API to automate the management of a specific application, encoding human operational knowledge as code.