Flux - the GitOps family of projects

Flux is a set of continuous and progressive delivery solutions for Kubernetes, and they are open and extensible.

The latest version of Flux brings many new features and made Flux more flexible and versatile.

Get started
Terminal
              
            

Flux in short

Some of the biggest organisations have adopted the Flux family of projects for their GitOps needs.

See who is part of our community and how about joining yourself?

🤝 Flux provides GitOps for both apps and infrastructure Flux and Flagger deploy apps with canaries, feature flags, and A/B rollouts. Flux can also manage any Kubernetes resource. Infrastructure and workload dependency management is built in.
🤖 Just push to Git and Flux does the rest Flux enables application deployment (CD) and (with the help of Flagger) progressive delivery (PD) through automatic reconciliation. Flux can even push back to Git for you with automated container image updates to Git (image scanning and patching).
🔩 Flux works with your existing tools Flux works with your Git providers (GitHub, GitLab, Bitbucket, can even use s3-compatible buckets as a source), all major container registries, and all CI workflow providers.
☸️ Flux works with any Kubernetes and all common Kubernetes tooling Kustomize, Helm, RBAC, and policy-driven validation (OPA, Kyverno, admission controllers) so it simply falls into place.
🤹 Flux does Multi-Tenancy (and “Multi-everything”) Flux uses true Kubernetes RBAC via impersonation and supports multiple Git repositories. Multi-cluster infrastructure and apps work out of the box with Cluster API: Flux can use one Kubernetes cluster to manage apps in either the same or other clusters, spin up additional clusters themselves, and manage clusters including lifecycle and fleets.
📞 Flux alerts and notifies Flux provides health assessments, alerting to external systems, and external events handling. Just “git push”, and get notified on Slack and other chat systems.
💖 Flux has a lovely community that is very easy to work with! We welcome contributors of any kind. The components of Flux are on Kubernetes core controller-runtime, so anyone can contribute and its functionality can be extended very easily.

Flux is a collection of tools for keeping Kubernetes clusters in sync with sources of configuration (like Git repositories), and automating updates to configuration when there is new code to deploy.

Declarative

Describe the entire desired state of your system in Git. This includes apps, configuration, dashboards, monitoring, and everything else.

Automated

Use YAML to enforce conformance to the declared system. You don’t need to run kubectl because all changes are synced automatically.

Auditable

Everything is controlled through pull requests. Your Git history provides a sequence of transactions, allowing you to recover state from any snapshot.

Designed for Kubernetes

Declaratively configurable using Custom Resources, state reports in the object’s status and via Kubernetes Events, and integrations with Kubernetes RBAC

Out-of-the-box integrations

Support for e.g. Kustomize, Helm; GitHub, GitLab, Harbor and custom webhooks; notifications to most team communication platforms; and many more.

Extensible

Easily create a continuous delivery solution with only the components you need, or use the GitOps Toolkit to extend Flux.

If you are new to Flux, you might want to check out some of the following resources to get started.

The Evolution of Flux v2 with Stefan Prodan

Stefan introduces Flux v2, explains why it was reshaped into a composable continuous delivery solution that goes beyond Git sync to accommodate multi-tenancy, infrastructure dependencies and cluster-api fleet management.

The Power of GitOps with Flux v2 & GitOps Toolkit with Leigh Capili

Leigh demos bootstrapping with GitOps Toolkit, app deployment, and monitoring with Prometheus.

Flux v2 for Helm Users with Scott Rigby

Scott covers what to keep in mind as Helm 2 support ends, the benefits of Helm Controller, and how to migrate from Helm Operator to Helm Controller.

Managing Remote Clusters with Flux v2 (CAPI demo) with Leigh Capili

Leigh covers cluster API integration, dependency management & ordering, security model updates, and delegation & multi-tenancy via users.

Flux v2 overview, demo, & review with Viktor Farcic

Stefan introduces Flux v2, explains why it was reshaped into a composable continuous delivery solution that goes beyond Git sync to accommodate multi-tenancy, infrastructure dependencies and cluster-api fleet management.

Flux v2 Deep Dive series with Geert Baeke

In this 5 video series, Geert Baeke takes a deep dive of Flux v2 and the use of GitOps principles with an Intro to Flux v2, Intro to Kustomize, Deploying Manifests, Monitoring & Alerting, and Helm Basics.

GitOps Toolkit

The set of APIs and controllers that make up the runtime for Flux. You can use the GitOps Toolkit to extend Flux, and to build your own systems for continuous delivery.

GitOps Toolkit

Flagger

Kubernetes Operator for the automation of promoting canary deployments using Istio, Linkerd, App Mesh, NGINX, Skipper, Contour, Gloo or Traefik routing for traffic shifting, and Prometheus metrics for canary analysis.

The canary analysis can be extended with webhooks for running system integration/acceptance tests, load tests, or any other custom validation.

Flagger

Flux v1 and Helm Operator

We owe our success and good reputation as GitOps project to Flux and Helm Operator. They are the v1 iteration of our project and currently in maintenance mode.

We strongly advise everyone to familiarise themselves with the latest version of Flux and start the process of migrating.

Flux v1 and Helm Operator
The Flux project aspires to be the vendor-neutral home for GitOps in a Cloud Native world. What we achieved up until today is only possible because of our community.

GitHub Discussions

Join the conversation in GitHub Discussions. Everything Flux related ranging from specifications and feature planning to Show & Tell happens here.

Slack

If you want to talk to the Flux team and community in real-time, join us on Slack. This is a great way to get to know everyone. Get a Slack invite, or go to the #flux channel.

Mailing list

Join our (low-traffic) mailing list to stay up to day on announcements and sporadic discussions.