Well, if I can add my 10¢….I have worked with both setups (Single ArgoCD managing multiple apps and one-ArgoCD per env), supporting teams of different sizes, and my takeaways are:
• Managing a single or multiple ArgoCDs does not make much difference as long as you adopt recommended practices, such as EVERYTHING in code (including app of apps)… no exception, central authentication, proper RBAC, Alerting, etc;
• From a Developer perspective, based on my experience, they do not care much in the apps is being managed by a single or multiple Argos, as long as the authentication is unified and the interface is the same, it should be fine. Also, once they receive the notification, open the app is just a matter of open the link the follows along with the notification on Slack/Teams/etc, which takes them to the right cluster;
• App-of-Apps is very handy indeed and has helped to abstract a lot of complexities. Onboard a new app is just a matter of updating a single yaml file and ArgoCD does the rest. The effort is the same no matter if we are talking about one or multiple clusters;
• When comes to application management, most of platforms I’ve implemented makes use of central (umbrella) Helm charts that ArgoCD pulls and combine with the values.yaml that are stored along with the application code. This approach allows the charts to be maintained/evolved by Platform Team and the Product Teams have the autonomy for adjusting the settings as per their needs based via values.yaml. The key of success here is making sure that we have an accurate documentation that runs side-by-side with the central charts evolvement. Also, regular demo sessions presenting new features and use cases turned out to be a game changer for most teams I have led (RTFM doesn’t work for most cases).