The Road to Flux v2 - November update
Flux v2 October updates include: new naming convention, details about the 0.2.0 release, details about our focus of governance and community within the Flux project, including some excellent new resources to read, watch and listen too. Read the blog for more information.
Before we get started, what is GitOps?
If you want to see the latest demo of GitOps Toolkit in action, check out this video:
The road to Flux v2
The Flux community has set itself very ambitious goals for version 2 and as it’s a multi-month project, we strive to inform you each month about what has already landed, new possibilities which are available for integration and where you can get involved. Read last month’s update here.
Let’s recap what happened in October - there have been many changes.
Flux v2 - what’s in a name?
In the past few weeks, we have found ourselves talking and explaining our plans for the future of the Flux project a lot more, and the received feedback was that the naming of the project was difficult to get used to, so here’s what we have decided to use in terms of naming:
- Flux v2 now lives in the fluxcd/flux2 repository
- the CLI was renamed to “flux”
- the system namespace is called “flux-system”
- And the website https://fluxcd.io will see consolidation in the next few days too.
The term GitOps Toolkit is a SDK for building Kubernetes controllers that can interact with Flux to extend its functionality.
This was the first decision made using the new Governance process (⬇more on this below).
Flux v1 is in maintenance mode
This means we
- are focusing most of our attention on Flux v2
- will only be working on Flux (and the Helm Operator v1) for critical updates and bug fixes
Flux is still being maintained and supported, it will just take a little bit longer to get around to addressing issues and PRs. Critical bug fixes have our priority. Read more about what this means.
Flux v2 reaches 0.2.0
With 0.2.0 we are celebrating a big milestone. Two out of three of our big areas of workare done:
- read-only functionality of Flux v2 is on par (with v1)
- Helm Controller (v2) is on par with Helm Operator (v1)
- Image updates are 30% working and the current implementation was recently presented in one of the recent Flux Dev meetings
Regarding image updates, the design that replaces Flux v1’s image updates has been implemented. Here are instructions for installing and using it.
Since the last minor release we also added many more features. These are a few of our favourites:
- Remote cluster targeting e.g. cluster-api support (we will add docs for this, but for now refer to the docs in the kustomize and helm controller repos)
- Improvements to the handling of SemVer ranges (pre-releases are now excluded from e.g. 1.0.x ranges)
- Added support for downloading dependency charts for Helm charts from GitRepository and Bucket sources
- Picking the last version for ambiguous SemVer matches for GitRepository tag references, and charts from GitRepository sources (based on the timestamp metadata available in the source systems)
We also wrote a migration guide, so if you are curious and want to test Flux v2 in a Dev environment, please have a look at https://github.com/fluxcd/flux... and give us feedback. (A migration guide for Helm Operator will be published soon as well.)
The Flux project is growing up: our focus on governance and community
📣 We’re happy to announce that we now have an official document to define the governance process for the Flux CNCF project and community.
💖 A lot of care was taken to ensure this reflected the spirit of the Flux community, the priority of users, and intent to broaden contributorship. We also connected with maintainers of other CNCF projects to learn what works well for them and what they may have done differently in terms of governance. With over 100 comments, the maintainers discussed and collaborated on this over a period of several weeks until finally reaching a happy consensus. If you want to see everything that went into this effort, it’s all discoverable in this pull request.
👏 This is a major step forward for the Flux community: it will enable a broader contribution base as there is now a defined process for becoming more involved, and is a step toward CNCF project incubation and eventual graduation.
🚧 This comes with one notable change for Flux contributors: Developer Certificate of Origin (DCO) commit signoff will be required for all new code contributions in the fluxcd GitHub org repos. It’s easy to implement - for details, see our contributors guide.
💬 Defining clear rules for governance and participation demonstrates how Flux has matured in the past four years since its inception: born out of a specific need to automate deployments at Weaveworks it quickly proved useful and moved on to be voted along with Helm as one of the few Cloud Native projects into the ADOPT category of the CNCF User Survey. With hundreds of contributors and an ever-growing number of organizations picking up Flux, it was time to agree on governance rules and further democratize the project.
Philip Laine joins notification-controller maintainers
notification-controller is the event forwarder and notification dispatcher for the GitOps Toolkit controllers (read the specification here).
For a few weeks now, Philip Laine has been helping out with the project and agreed to take on leadership for it too. Here’s a quick message from Philip:
I am a DevOps engineer at a company called Xenit where I mostly work with Kubernetes and related tooling, where Flux is the obvious choice for CD. My first contribution to the notification controller was the GitHub provider. The provider allows the notification controller to update the status of a commit, when an event linked to that commit occurs. This will hopefully allow for deployment feedback that is closer to the code. I am currently looking at bringing to light use cases other than sending messages to Slack. These use cases could for example be triggering other actions inside the cluster when a specific event occurs. Getting involved has been very easy as community meetings and other communication is public. The community and maintainers have been great so far.
In our last Flux Dev meeting Philip also presented his work on the Flux v2 Terraform provider. Reach out to him if you have feedback or want to help. We’re super happy the Flux project is growing like this!
The Flux community is already going out of their way to make sure people learn about what we’re building together. You might want to add these to your hearing/viewing list:
- Michael Bridgen, co-inventor of Flux, was interviewed by the Kubelist Podcast to talk about the history and future of Flux.
- The Power of GitOps with Flux & GitOps Toolkit - Part 1
- Rawkode Live: Introduction to GitOps Toolkit with Stefan Prodan
If you prefer live action, here are some upcoming events:
- 19 Oct: Part 1: The Power of GitOps with Flux v2 + GOTK recording
- 2nd Nov: Part 2: The Power of GitOps with Flux v2 + GOTK recording:
- 5th Nov (17:30 CET): Philip Laine and Stefan Prodan will speak about Flux v2 at Cloud Native Göteborg
GitOps Days EMEA
GitOps Days EMEA 2020 is a 2-day online event on November 12-13, 2020.
Day 1 will cover introductions to GitOps, the business value of GitOps, and use cases.
Day 2 we’ll nerd out and dive into more technical aspects, including workshops for:
- Getting Started with GitOps
- Flux v2 and the Future of Flux
- Helm Operator and Helm Controller Migration
In other news
In recent weeks, we added Prometheus instrumentation for all the toolkit controllers. There is a new Grafana dashboard available that gives you an overview of the cluster reconciliation. The new dashboard displays the readiness status of each kustomization, helm release, git and helm repository along with stats about the duration of each reconciliation run. Here are the docs on how to install the monitoring stack: https://toolkit.fluxcd.io/guides/installation/#monitoring-with-prometheus-and-grafana
<p>You can also check out the new monitoring guide which explains how to set up the monitoring stack. It covers the reconciliation metrics as well now.</p>
Scott Rigby and Daniel Holbach joined as maintainers of the /website and /community repositories. In the upcoming weeks both will help out with the new website and start formalising some of the community plans, e.g. contributor happiness and communications. If you’d like to help out with any of these projects, have questions or concerns, please talk to us on Slack! 🥰
If you like what you read and would like to get involved, here are a few good ways to do that:
- Join our upcoming dev meeting on Nov 5
- Talk to us in the #flux channel on CNCF Slack
- Join the planning discussions
- And if you are completely new to Flux v2, take a look at our Get Started guide and give us feedback
We are looking forward to working with you.