Argo CD v2.9 Release Candidate

LeoLuz
Argo Project
Published in
4 min readSep 29, 2023

--

We are happy to announce that the Argo CD v2.9 Release Candidate has been published! We have summed up 32 new features, 26 bug fixes, and 22 contributions to improve our documentation.

Photo by "My Life Through A Lens" on Unsplash

We extend our gratitude to the incredible Argo CD community for their invaluable contributions, which helped us to this remarkable milestone. In this post, you will discover some of the exciting new features, selected based on the most highly upvoted proposals and our strong belief in their potential to significantly impact usage.

Dynamically Rebalance Clusters Across Shards

When the Argo CD controller manages multiple remote clusters, it can be overloaded depending on the amount of resources in those clusters. A solution to this problem is to configure Argo CD controllers to run in shard mode. In this case, we are going to have multiple Argo CD controller replicas managing groups of clusters. This allows the Argo CD controller to scale horizontally. However, adding new controller replicas to the shard currently requires a manual process and restarting all existing replicas. Argo CD 2.9 introduces a new dynamic cluster distribution feature. When replicas are added or removed, the sharding algorithm is executed to ensure that the clusters are redistributed. This is added as an alpha feature, and we are eager to collaborate with early adopters to determine how to improve it. Please refer to the latest documentation to learn more about the dynamic cluster rebalancing feature.

Thanks, Ishita Sequeira (Red Hat), for writing the initial proposal and implementing the whole feature!

Ignore ApplicationSet Differences

ApplicationSet generator is a powerful feature that allows the generating of Argo CD Applications dynamically. There are many generators available that cover a wide variety of use cases. However, there are some situations where the final state of an application can not be predicted, and certain fields need to be updated after the Application is generated. This can cause a conflict as the ApplicationSet controller will try to re-sync and revert the changes. In Argo CD 2.9, it is now possible to configure ignore differences in ApplicationSet and preserve the changes made in specific fields. To learn more about the ignore difference feature in the ApplicationSet, please refer to the official documentation.

This was one of the most-voted proposals for this release! Thank you, Michael Crenshaw (Intuit), for all your interaction with the community and for making this feature happen!

Improved Gitlab Support For ApplicationSets

Argo CD 2.9 brings a collection of improvements for using ApplicationSet generators with Gitlab. By using the SCM Provider it is now possible to filter projects by topic, cutting down the costs of retrieving the branches and folder tree of all repos. This is particularly beneficial in large orgs with many projects.

Another performance improvement was added to avoid retrieving shared projects from a specific group. GitLab API will include shared projects (with_shared ) by default which can result in a huge amount of projects returned depending on the organization's size. It is now possible to configure the ApplicationSet resource to exclude shared projects from the search using the new field includeSharedProjects.

Last but not least, it is now possible to configure a self-signed TLS certificate to be used in the Git SCM generator with Gitlab. This is a preferable alternative to setting the insecure field to true. More details are in the official docs.

Huge thanks to Prune Sebastien Thomas (LeCentre) and Ishita Sequeira (Red Hat) for contributing to those great improvements.

Other Notable Changes

Below you can find a few more features that were made in the 2.9 release that we think might interest you:

Where Can I Get the New Release?

For more details and installation instructions, check the release notes. Please try the release candidate and share your feedback. Thanks to all Argo Community contributors and users for their work, feedback, and help in testing the release!

--

--