FluxCD’s Flux2 is a powerful GitOps toolkit designed to help manage Kubernetes deployments. It is the successor to Flux, which was monolithic and do-it-all operator. In this documentation, we will explore the design philosophy behind Flux2, focusing on the big picture.
Background
Flux v1 was a monolithic operator that provided all the functionalities required for managing Kubernetes deployments. However, as the community grew and the project evolved, it became clear that a more modular approach was needed. This led to the development of Flux2, which separates the functionalities into specialized controllers, collectively called the GitOps Toolkit.
Flux v2: A New Approach
Flux v2 represents a significant shift in the way Flux operates. Instead of being a monolithic solution, it is now a collection of specialized controllers that can be installed and operated using the flux
command. This approach allows users to pick and choose the functionality they need and extend it to serve their own purposes.
Development and Release Process
FluxCD has been working on the transition from Flux v1 to Flux v2 for some time. In May 2023, they released Flux v2.0.0-rc5, the fifth release candidate for the 2.0.0 release. This version includes many improvements and is the most stable Flux release to date. The team encourages users to upgrade to this latest version, even though it carries the “RC” label.
Community Involvement
FluxCD values community involvement and encourages users to get involved in the development process. They use GitHub’s new project boards to manage the upcoming releases and welcome contributions and feedback.
Documentation and Learning Resources
FluxCD recognizes the importance of clear and concise documentation for users. They have been working on improving the navigating experience of their documentation and welcome feedback and ideas. They also provide various learning resources, including blog posts, tutorials, and videos, to help users get started with Flux2.
Security Considerations
Security is a top priority for FluxCD. They have re-architected and rewritten Flux to reduce the scope and attack surface of the individual sub-projects. They also publish a Software Bill of Materials (SBOM) for each of the individual controllers.
Conclusion
FluxCD’s Flux2 represents a new approach to managing Kubernetes deployments. By separating the functionalities into specialized controllers, it allows users to pick and choose the functionality they need and extend it to serve their own purposes. The team’s focus on community involvement, clear documentation, and security makes Flux2 an attractive choice for organizations looking to adopt GitOps.