Flux Documentation

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

Flux is a tool 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.

Flux is built from the ground up to use Kubernetes' API extension system, and to integrate with Prometheus and other core components of the Kubernetes ecosystem. In version 2, Flux supports multi-tenancy and support for syncing an arbitrary number of Git repositories, among other long-requested features.

Flux is constructed with the GitOps Toolkit, a set of composable APIs and specialized tools for building Continuous Delivery on top of Kubernetes.

Who is Flux for?

Flux helps

  • cluster operators who automate provision and configuration of clusters;
  • platform engineers who build continuous delivery for developer teams;
  • app developers who rely on continuous delivery to get their code live.

The GitOps Toolkit is for platform engineers who want to make their own continuous delivery system, and have requirements not covered by Flux.

What can I do with Flux?

Flux is based on a set of Kubernetes API extensions (“custom resources”), which control how git repositories and other sources of configuration are applied into the cluster (“synced”). For example, you create a GitRepository object to mirror configuration from a Git repository, then a Kustomization object to sync that configuration.

Flux works with Kubernetes' role-based access control (RBAC), so you can lock down what any particular sync can change. It can send notifications to Slack and other like systems when configuration is synced and ready, and receive webhooks to tell it when to sync.

The flux command-line tool is a convenient way to bootstrap the system in a cluster, and to access the custom resources that make up the API.

overview

Where do I start?

If you should need help, please refer to our Support page.

More detail on what’s in Flux

Features:

  • Source configuration from Git and Helm repositories, and S3-compatible buckets (e.g., Minio)
  • Kustomize and Helm support
  • Event-triggered and periodic reconciliation
  • Integration with Kubernetes RBAC
  • Health assessment (clusters and workloads)
  • Dependency management (infrastructure and workloads)
  • Alerting to external systems (webhook senders)
  • External events handling (webhook receivers)
  • Automated container image updates to Git (image scanning and patching)
  • Policy-driven validation (OPA, Kyverno, admission controllers)
  • Seamless integration with Git providers (GitHub, GitLab, Bitbucket)
  • Interoperability with workflow providers (GitHub Actions, Tekton, Argo)
  • Interoperability with Cluster API (CAPI) providers

Community

Need help or want to contribute? Please see the links below. The Flux project is always looking for new contributors and there are a multitude of ways to get involved.

Events

Check out our events calendar, both with upcoming talks you can attend or past events videos you can watch.

We look forward to seeing you with us!


Core Concepts

Core Concepts of Flux and the GitOps Toolkit.

Get Started with Flux

Get Started with Flux and the GitOps Toolkit.

Installation

Flux install, bootstrap, upgrade and uninstall documentation.

User Guides

Flux and the GitOps Toolkit user guides.

Use Cases

Flux and the GitOps Toolkit use cases.

Migration

Migration guides for Flux v1 and Helm Operator users.

GitOps Toolkit components

The GitOps Toolkit documentation.

Toolkit Dev Guides

The GitOps Toolkit development documentation.

Flux CLI

The Flux Command-Line Interface documentation.

Frequently asked questions

Flux and the GitOps Toolkit frequently asked questions.

Contributing

Last modified 2021-08-16 : Point to calendar instead (56d2fda)