Flux v2 Introduction - fluxcd/flux2

Flux v2 is a GitOps tool for keeping Kubernetes clusters in sync with configuration sources and automating updates. It is a Cloud Native Computing Foundation (CNCF) graduated project and is designed with a modular architecture, using specialized controllers known as the GitOps Toolkit. This allows users to install and operate Flux v2 with only the functionality they need, and to extend it for their own purposes.

Flux v2 is written in Go and is built on top of the Kubernetes API Extension System. It uses Git as a source of truth for cluster configuration, and supports Helm, Kustomize, and YAML for defining and managing resources. It also includes Prometheus metrics for monitoring and has native support for Alpine Linux and Docker.

The main components of Flux v2 are:

  • Flux: the main CLI for installing and managing Flux
  • GitOps Toolkit: a collection of specialized controllers for different GitOps tasks
  • Helm Controller: for managing Helm releases
  • Kustomize Controller: for managing Kustomize configurations
  • Image Automation Controller: for automating image updates
  • Notification Controller: for sending notifications
  • Source Controller: for managing source code repositories

Flux v2 is designed to be easy to install and use. The recommended way to install Flux is using the flux command, which can be installed using Homebrew on macOS with the command brew install fluxcd/tap/flux.

Flux v2 is currently in release candidate phase and the latest version, v2.0.0-rc5, includes many fixes and improvements. It is recommended to upgrade to this version for the most stable Flux release to date.

For more information on Flux v2, including documentation, design philosophy, and a FAQ on migrating from Flux v1, please see the Flux documentation at https://fluxcd.io/flux/guides.

Sources: