Skip to main content
K8sCalc

kubernetes

FluxCD HelmRelease Generator

Generate FluxCD HelmRelease and HelmRepository CRDs for GitOps-driven Helm chart deployments. Compatible with Flux v2.

FluxCD GitOps with HelmRelease

FluxCD reconciles your cluster state from Git. HelmRelease is the CRD for managing Helm chart deployments via Flux.

GitOps Flow

Git commit (new chart version or values change)
    ↓
Flux source controller detects change
    ↓
Flux helm controller reconciles HelmRelease
    ↓
helm upgrade --install runs in cluster
    ↓
Cluster state matches Git

Install Flux

bash
flux bootstrap github \
  --owner=my-org \
  --repository=my-fleet \
  --branch=main \
  --path=clusters/production

Check HelmRelease Status

bash
flux get helmreleases -n default
flux describe helmrelease my-app -n default
kubectl describe helmrelease my-app -n default  # shows events

Force Reconciliation

bash
flux reconcile helmrelease my-app -n default

Image Automation (auto-update image tags in Git)

bash
flux create image repository my-app \
  --image=ghcr.io/my-org/my-app \
  --interval=5m

Frequently Asked Questions

What is the difference between FluxCD and ArgoCD?

Both are GitOps controllers that sync Kubernetes state from Git. FluxCD is more modular — separate controllers for sources (Git, Helm, OCI), kustomize, and Helm. ArgoCD has a built-in UI and a more monolithic architecture. FluxCD is often preferred for multi-tenancy and automation; ArgoCD for teams that want a dashboard. For a detailed comparison see the ArgoCD vs Flux page.

What does the reconcile interval do?

Flux checks the HelmRepository and HelmRelease every interval (e.g. 10m). If it detects a change in the chart version or values, it applies the update. Shorter intervals (1m) give faster GitOps convergence but increase API server load. 10m is a reasonable default for most environments.

How do I pin to a specific chart version in FluxCD?

Set spec.chart.spec.version to an exact version like '1.2.3'. If you use a semver range like '>=1.0.0 <2.0.0', Flux will automatically upgrade within that range when new chart versions are published. For production, always pin to exact versions and use automated PR creation (Flux image automation) to control upgrades.

Can FluxCD handle secret values in HelmRelease?

Yes — use spec.valuesFrom to reference a Secret or ConfigMap: valuesFrom: [{kind: Secret, name: my-app-secrets}]. The Secret can be managed by External Secrets or Sealed Secrets. Never put plain secret values directly in the HelmRelease YAML that gets committed to Git.

Related Guides