The New “Argo Flux” Provides a Single Tool Chain for Weaveworks Continuous Deployment and Fleet-Scale Automated Workflows Using GitOps.
Today Weaveworks announces a partnership with Intuit to create Argo Flux, a major open source project to drive GitOps application delivery for Kubernetes via an industry-wide community. Argo Flux combines the Argo CD project led by Intuit with the Flux CD project driven by Weaveworks, two well known open source tools with strong community support. AWS also joins Argo Flux as an active contributor and BlackRock as a first enterprise user. AWS has endorsed and supported GitOps tooling through Argo in EKS and EKSctl as well as in Flagger for AWS App Mesh. A starting point for this new collaboration is the GitOps Engine (more below).
Argo Flux – Kubernetes automation with GitOps
Flux CD and Argo CD have paved the way as the top open source projects for GitOps solutions. GitOps is the simplest way to deploy and manage Kubernetes applications. In a GitOps model, users describe the applications and services they want. Orchestration agents then drive the running clusters to a correct application state and if the system drifts from the correct state, alerts are fired. This is in contrast to manual or bespoke scripted and ad hoc UI-based management. Those may lead to incorrect system states and cannot scale to fleet automation.
The Flux CD and the Argo CD teams at Weaveworks and Intuit are excited to join forces to serve the needs of our communities better. Argo Flux will provide GitOps for an intuitive approach to Kubernetes deployments that promotes automation and declarative application management. Community members of the newly joined Argo Flux community will also benefit from the new team’s goal to provide:
- A single and best-in-class tool-chain for GitOps
- A global-scale reference architecture for GitOps
- Double the engineering resources to address issues and feature requests
- Argo Flux UI dashboard
- Workflows and events that leverage the beneficial features of Argo CD and Flux CD
The Amazon EKS team sees Kubernetes-native continuous and progressive deployment as a critical area that customers need to master to be successful. We’ve long had customers asking what our recommended approach is for automating the deployment of containerized applications and infrastructure. Until now, we haven’t had a single recommended approach, which is why we’re so excited to see two great application delivery solutions joining forces to develop best-of-breed GitOps tooling.” — Bob Wise, GM of the EKS team at Amazon
Meet the GitOps Engine
The GitOps Engine is the first step in our common journey and is where the two teams have started building the best possible GitOps solution together. Argo CD and Flux CD already have similar sets of functionality. The GitOps Engine aims to share common components as well as backwards-compatibility support for both Argo CD and Flux CD. The GitOps Engine will be responsible for the following functionality:
- Access to Git repositories
- Kubernetes resource cache
- Manifest Generation
- Resources reconciliation
- Sync Planning
If you are exploring GitOps, Flux CD, or Argo CD for the first time, or you’re interested in our new direction, please try out the GitOps Engine and give feedback. We also thank BlackRock’s early involvement as a user of the GitOps Engine.
“There are two paths to consider when starting any project. The first path is to build it all by our self ‘on an island’ and the second is to build in the open as part of a community. We’ve found through our experience in open source and specifically with the Argo project and Argo Events, the community collaboration approach to solving common challenges yields more well-rounded and diverse solutions. We are very excited to collaborate with Weaveworks, Intuit and AWS on Argo Flux to help build a best-in-breed continuous deployment solution.”
— Mike Bowen, Director, Alladin Product Group (APG), BlackRock’s engineering organization
Future steps for the Argo Flux project
Joining efforts is exciting for both teams and also for the community. We can collaborate on and solve existing issues more quickly. On the Flux side, this means that we can:
- Make syncing more efficient. Instead of polling, Flux will use Kubernetes Informers to get information from the cluster.
- Users will see a reduction in cluster API calls and etcd traffic
- Syncing frequency can increase
- Provide advanced syncing features such as pre-post sync hooks and sync waves
- Improve overall performance and efficiency
On the Argo CD side, this means that we can:
- Provide verification of GPG commit signatures on the repositories it uses for syncing applications to clusters: issue #2492
- Add the ability to monitor a docker image repo for the publication of new images that match a given pattern, such as a regex or semver: issue #1648
- Provide manifest generation using .flux.yaml files.
Argo CD is in the process of joining the CNCF. The future Argo Flux project will then be a joint CNCF project. An additional future step in discussion is a move toward “Argo Flagger.” This collaboration would align Weave Flagger with Argo Rollouts to provide a progressive delivery mechanism that directs traffic to a deployed application for controlled rollouts.