What are Helm and Helm charts?
Helm is the package manager for Kubernetes. It groups the related resources of an application into a Helm chart so they can be installed, configured, upgraded, and rolled back as one unit.
In Kubit, a Pack selects the chart, version, and values to install. Pack Operator applies this definition to Kubernetes resources and keeps the installation status reconciled.
What is Helm?
Installing an application in Kubernetes usually requires resources such as a Deployment, Service, ConfigMap, and Ingress. Helm packages these related manifests so the application can be installed and managed with different settings in several environments.
Helm has three main concepts:
| Concept | Definition |
|---|---|
| Chart | A versioned package containing templates, default values, and installation metadata |
| Repository | A location for storing and publishing charts |
| Release | One installed instance of a chart in a Kubernetes cluster |
A chart can be installed several times under different names and with different settings. Each installation creates an independent release.
What is a Helm chart?
A Helm chart is an installable package for a Kubernetes application, service, or tool. Instead of keeping duplicate manifests, a chart receives the variable parts as values and uses templates to produce the final Kubernetes YAML.
A typical chart contains Chart.yaml for metadata, values.yaml for defaults, a templates/ directory for templates, and an optional charts/ directory for dependencies.
The chart version is not the same as the application version. The chart version describes changes to the package and templates. The application version is usually recorded separately in appVersion or container image values.
How values and templates work
Values are configurable chart inputs such as the container image name, replica count, compute resources, or domain. Helm combines these values with files in templates/ and produces the final Kubernetes manifests.
Defaults come from values.yaml and can be overridden during installation or upgrade. In a Pack, spec.values and spec.vars provide this configuration for a specific installation.
Inspect the rendered output before applying a change. kubit helm-template shows the final manifests, and kubit helm-diff compares them with the current release.
What is a Helm release?
A Helm release is the result of installing a chart with a specific set of values in a cluster. Helm keeps the release revision history so it can be upgraded or rolled back.
In Kubit, each Pack resource corresponds to a Helm release in the same namespace. The Pack name determines the release name, and changing the Pack definition can upgrade the existing release.
Chart repository and version
Charts are downloaded from a Helm repository or an OCI-compatible registry. In a Pack, ClusterPackRepository identifies the repository resource, while spec.chart contains the chart name and version constraint. See Choose the repository scope for repository scope details.
In production, set an explicit version or version range. Enable automatic upgrades only after reviewing the version changes.
How Helm relates to Pack
Helm provides the application packaging and template logic. Pack stores the desired installation state as a Kubernetes resource, and Pack Operator continuously reconciles that state with the cluster.
| Component | Responsibility |
|---|---|
| Helm chart | Defines templates, default values, and application dependencies |
| Pack | Selects the repository, chart, version, and installation values |
| Pack Operator | Renders, validates, installs or upgrades, and records status |
| Kubchi | Provides a panel interface for installation, configuration, and status |
kubit-cli | Inspects Helm output and performs specialized Pack operations |
Most users access this flow through Kubchi > Packs. For panel installation, read Install a Pack in Kubchi. To create or manage the resource directly, see the Pack reference.
Review a chart before installation
Chart templates can create or modify many resources within the granted permissions. Before using an unknown chart or a new version:
- Check the chart publisher and maintainer.
- Read the version changes and default values.
- Review the rendered output and compare it with the current release.
- Do not store sensitive data as plain text in
valuesor Git. - Limit service-account and cluster-level permissions to the minimum required.
Next steps
- Create and manage a Pack resource
- Add Pack capabilities to a Helm chart
- Create migrations between chart versions
- Learn Pack Operator reconciliation
- Inspect Helm output with kubit-cli
- Browse Kubit's ready-made charts