Argo CD v2.11 Release Candidate
We are happy to announce that the Argo CD v2.11 Release Candidate has been published! We have summed up over 32 new features, 40 bug fixes, and 49 documentation updates.
As always, please test the release candidate and send us feedback about any bugs or issues you encountered. This is your big opportunity to make your voice heard and help Argo CD become even better.
See who initiated the sync in the history UI
Argo CD has a dedicated screen for showing the history of sync operations for an application, along with an optional “rollback” method that points the cluster resources to a previous Git hash.
This screen is now enhanced with an “initiated by” property that shows the person that started the sync process:
This new feature will be very interesting to teams that have Argo CD applications without the auto-sync option enabled and they want to know which person started a deployment (a very popular pattern for production environments).
The value of the property is coming from the Application Resource where a new “initiatedBy” property was added accepting any string value.
Thanks Robin Lieb (Mercedes Benz) for implementing this feature.
Improved monorepo support with the generate-path annotation
This is arguably the most important feature of this release and a lot of organizations will be interested to see how it improves both the speed and the user experience of Argo CD installations that are based on mono-repos.
The mono-repo pattern is the case where a single Git repository holds all Argo CD applications for all clusters. While this pattern makes things easy for maintenance and central administration, it also presents a lot of challenges for large Argo CD installations.
Argo CD already had several mechanisms in place to avoid performance issues with these patterns. One of the basic features is the manifest-generate-paths annotation which can be placed on an application and gives some hints to Argo CD for which manifests the application is dependent on.
Until the previous Argo CD version this annotation was only honored for Git webhooks. When a Git webhook was detected Argo CD could detect if the files mentioned in the webhook were part of the set mentioned in the annotation and act accordingly.
The new feature in Argo CD v2.11 is that now these annotations are honored in sync operations as well and not just during a webhook event.
Now when Argo CD wants to generate the manifests of an application, it will compare the latest commit to the last cached revision according to the contents of the manifest-generate-paths annotation. If nothing matches, the no sync operation will happen at all.
This is a game-changing feature as it affects the way large monorepos are handled by Argo CD. Performance improvements should be seen as the Argo CD controller will perform less sync operations especially for applications that are not affected by any of the files found in the latest commit.
We hope that you test this feature extensively and let us know of the performance benefits and improvements or any issues that you encounter.
Thanks Alexy Mantha (GoTo) for implementing this feature.
Multi-source application goodness
Creating Argo CD applications from multiple sources was one of the most requested Argo CD features for a long time. This feature allows you to group information from multiple places (for example a public Helm chart plus your local values file) to form a single Argo CD application.
Initial support for defining multi sources was already added in Argo CD version 2.6, but there were several places in the CLI and the UI where an application was assumed to have a single source.
With Argo CD version 2.11, multiple application sources are now supported in several more areas such as the Argo CD CLI app subcommands like add source, remove source, create, edit, set, unset, diff, manifests and history.
This means that you can now manage multiple sources using also the Argo CD CLI (in addition to the CRD).
Thank you Mangaal Angom Meetei and Ishita Sequeira (Red Hat) for implementing these features.
Allow cluster sharding by app information
If you follow the “hub-and-spoke” architecture with Argo CD, there is a capability to employ sharding for different Argo CD application controllers. This allows you to assign specific clusters to specific controllers in order to distribute the load across the different shards.
Until recently the main sharding algorithm was based on cluster information only (hashing their ids). While this approach works in most scenarios, there are several cases where you want to have more control on how sharding works.
In the new Argo CD release there is now support for sharding clusters according to the number of applications they control. This is just the starting point for implementing several different sharding algorithms in Argo CD in the near future for even more flexible configurations.
Thanks Andrew Lee (AWS) for implementing this feature.
Other Notable Changes
Here are some other new changes that made it into the release
- The Apps in any namespace feature has been promoted from beta to stable
- Enable users to run commands related to Argo application in any namespace (By Mangaal Angom Meetei from Red Hat)
- Add ability to auto label clusters for Kubernetes clusterinfo (By Blake Pettersson from Akuity)
- Prune resources in reverse order of syncwave during sync phases (By Siddhesh Ghadi from Red Hat)
- New option to specify an aws profile to use by argocd-server when adding an EKS cluster (By Isaac Gaskin from Circle Fin)
- Enable –app-namespace flag for argocd CLI (By Mangaal Angom Meetei from Red Hat
- Add maxPodLogsToRender setting (By Lukas)
- Add cli commands to add/delete sourceNamespaces from AppProject (By Raghavi Shirur from Red Hat)
- Allow webhook settings to be referenced by external secret (By Arthur Outhenin Chalandre from Ledger)
- Wait until resources are deleted when using argo app wait command (By Michael Morris from Ericsson)
Where Can I Get the New Release?
For more details and installation instructions, check the release notes, and upgrade instructions. Please try the release candidate and share your feedback. A big thanks to all Argo Community contributors and users for their contributions, feedback, and help in testing the release!