If a cluster needs the same charts installed every time it is created, manually running Helm commands becomes repetitive. A Helm controller watches a Kubernetes configuration object and carries out the chart installation or update it describes.

The K3s Helm Controller uses HelmChart resources for this job. K3s is a lightweight Kubernetes distribution, and its documented Helm integration provides a convenient way to manage packaged cluster components. Choose it when that integration fits your K3s setup. Evaluate Flux or Argo CD when you need a broader workflow that deploys applications from Git across teams or clusters; their Helm behavior differs, as explained below.

The original article at this historical address was not recovered. This guide describes the current K3s project rather than claiming the old Rancher examples still apply.

Choose which tool will install and update each chart

List the chart source, version, namespace, values, credentials and controller responsible for each release. Decide how updates are approved and what should happen if an administrator changes a resource by hand. Reconciliation may reverse that manual change, so an emergency procedure must include the declared source.

K3s Helm Controller can suit chart management in the K3s operating model. Flux's Helm controller manages HelmRelease resources with its own reconciliation and remediation configuration. Argo CD can render Helm charts but owns application synchronization rather than acting as the Helm CLI's release manager. These are materially different lifecycle models.

Test controller behavior

  1. Install a harmless chart in an isolated namespace with a pinned source and a small configuration change.
  2. Make the source temporarily unavailable and inspect retry behavior and status reporting.
  3. Introduce an invalid configuration, then restore the previous declaration and confirm recovery.
  4. Observe what deletion does to the release and its persistent resources. Establish the retention policy before managing stateful applications.

Keep permissions proportional

Review whether a controller can install cluster-scoped resources and who may submit its custom resources. A namespace-scoped declaration is not sufficient isolation if its controller uses broad credentials. Keep repository authentication and application secrets out of public manifests.

A controller reduces repetitive operations only after its recovery behavior is understood. Use the GitOps comparison for the broader delivery workflow and the Helm upgrade guide when changing the Helm execution environment.

Sources & further reading

  1. K3s Helm Controller source
  2. K3s Helm integration
  3. Flux HelmRelease behavior
  4. Argo CD Helm behavior

Spotted something that needs another look?

Help improve this page →