Kubit logoKubit

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:

ConceptDefinition
ChartA versioned package containing templates, default values, and installation metadata
RepositoryA location for storing and publishing charts
ReleaseOne 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.

ComponentResponsibility
Helm chartDefines templates, default values, and application dependencies
PackSelects the repository, chart, version, and installation values
Pack OperatorRenders, validates, installs or upgrades, and records status
KubchiProvides a panel interface for installation, configuration, and status
kubit-cliInspects 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:

  1. Check the chart publisher and maintainer.
  2. Read the version changes and default values.
  3. Review the rendered output and compare it with the current release.
  4. Do not store sensitive data as plain text in values or Git.
  5. Limit service-account and cluster-level permissions to the minimum required.

Next steps

Further reading

Helm and Helm charts in Kubernetes | Documentations | Kubit