Skip to content
LatchkeyLatchkey home

flux create helmrelease: Deploy a Helm Chart

flux create helmrelease creates a HelmRelease that installs and upgrades a Helm chart from a source via Flux.

HelmRelease is how Flux manages Helm charts declaratively. create helmrelease wires a chart to a source and a target namespace.

What it does

flux create helmrelease creates a HelmRelease custom resource that references a chart in a --source (a HelmRepository, GitRepository, or OCIRepository), installs it into --target-namespace, and applies value overrides from --values files. Flux's helm-controller reconciles installs and upgrades.

Common usage

Terminal
flux create helmrelease podinfo \
  --source=HelmRepository/podinfo \
  --chart=podinfo \
  --chart-version=">=6.0.0" \
  --target-namespace=apps \
  --values=./values-prod.yaml \
  --interval=10m

Options

FlagWhat it does
--source <kind/name>Chart source (HelmRepository/GitRepository/OCIRepository)
--chart <name>Chart name or path within the source
--chart-version <range>SemVer range to install
--target-namespace <ns>Namespace to release into
--values <file>Values file override (repeatable)
--interval <dur>Reconcile interval

Common errors in CI

"✗ HelmRelease reconciliation failed: ... chart pull error: ... no chart name found" means the --chart or --source is wrong. "Helm install failed: ... timed out waiting for the condition" means workloads never became Ready. "values don't meet the specifications of the schema" means a values override violates the chart's values.schema.json.

Using this in CI

A runner has no kubeconfig, no cached context, and no interactive auth. Every kubectl invocation in CI needs the context supplied explicitly, and most confusing CI failures here are the command running against the wrong cluster or no cluster at all.

Terminal
# never rely on the ambient context on a runner
kubectl --context "$KUBE_CONTEXT" -n "$NAMESPACE" get pods

# confirm what you are actually connected to before mutating anything
kubectl config current-context
kubectl cluster-info

# fail fast instead of hanging on an unreachable API server
kubectl --request-timeout=30s get nodes

Frequently asked questions

flux create helmrelease: Deploy a Helm Chart?
HelmRelease is how Flux manages Helm charts declaratively. create helmrelease wires a chart to a source and a target namespace.
What it does?
flux create helmrelease creates a HelmRelease custom resource that references a chart in a --source (a HelmRepository, GitRepository, or OCIRepository), installs it into --target-namespace, and applies value overrides from --values files. Flux's helm-controller reconciles installs and upgrades.
Common errors in CI?
"✗ HelmRelease reconciliation failed: ... chart pull error: ... no chart name found" means the --chart or --source is wrong. "Helm install failed: ... timed out waiting for the condition" means workloads never became Ready.

Related guides

References

Run this faster and cheaper on Latchkey managed runners - self-healing included. Start free → 30-day trial · No credit card