Skip to main content
Cloud DevOps Solutions
Get a quote Talk to an engineer

Flux GitOps

Flux is a CNCF graduated GitOps project that continuously reconciles Kubernetes cluster state with sources such as Git repositories. It is made of composable controllers and has no built-in UI, so it is driven through Git, the CLI and kubectl.

Flux is a GitOps project for Kubernetes. It runs inside the cluster, watches sources such as Git repositories, and continuously reconciles the cluster to match what those sources declare. It is a CNCF graduated project.

How it works

Flux v2 is built as a set of controllers, each owning custom resources. The source controller handles GitRepository, OCIRepository, HelmRepository and Bucket resources. The kustomize controller applies a Kustomization. The helm controller manages HelmRelease resources. The notification controller handles alerts and incoming events, and optional image automation controllers track new image versions and can update Git.

Reconciliation means making the live state match the declared state. Flux checks the source at an interval and produces a new artifact when something changes. By default a Kustomization is reconciled every five minutes, and manual edits in the cluster are reverted, so changes belong in Git.

Flux has no UI in its core. You work with Git, the flux CLI and kubectl, for example kubectl get fluxcd -A to list its resources.

A practical example

apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: app-config
  namespace: flux-system
spec:
  interval: 1m
  url: https://github.com/example/app-config
  ref:
    branch: main
---
apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: app
  namespace: flux-system
spec:
  interval: 10m
  path: ./deploy/production
  prune: true
  sourceRef:
    kind: GitRepository
    name: app-config

The first resource defines where the configuration lives, the second says which path to apply. With prune: true, objects removed from Git are removed from the cluster.

Common mistakes

  • Editing resources with kubectl and expecting the change to stay. Flux will revert it.
  • Using prune: true without understanding which objects the Kustomization owns.
  • Putting plain secrets in Git. Use encryption such as Sealed Secrets or an external secrets operator.
  • One large Kustomization for everything, which makes failures harder to isolate.

When to use it and when not to

Flux suits teams that want a composable, Kubernetes-native GitOps toolkit and are comfortable working through Git and the CLI. If you want a graphical application view as a primary interface, compare it with ArgoCD; our ArgoCD vs Flux comparison covers the trade-offs. For a single small cluster with infrequent changes, a plain pipeline may be simpler. See also GitOps and our GitOps services.

See also

Last updated: 2026-10-11

Need help with Flux GitOps?

Our certified engineers can handle the implementation for you.