Open OpenGuidou opened 1 week ago
Sounds good. How would we handle possible duplication of configurations across the namespaces, e.g. if there are different notifications secrets for sending data to multiple places, or same place but different role/permission?
I would propose to keep the global configuration where it stands, and then apply the project-level configuration as overrides. If conflicts occur, I would raise a warning in the resource sync status. WDYT ?
That can work I think.
Summary
Some of the configuration shouldn't be centrally managed, as different user groups (linked to projects) may want to define them on their own.
Motivation
We should make the distinction between some central configuration, only accessible to the ArgoCD instance maintainers, and some configuration that can be distributed to the users. In a multi-tenant organization, each of those groups should be able to managed their part of the configuration. With the Application in any namespace feature, it's now possible to not open the in-cluster ArgoCD namespace to some of its users, and let them use their own namespace.
We should extend that to some configuration that would only affect their project, such as:
It's implicitly requiring those elements to be able to be bound to a specific project.
I'm excluding here RBAC as it's already being discussed here: #8324
Edit: Notifications support is already implemented:
Proposal
--application-namespaces
in the application controller, applicationset controller and notifications controller..spec.sourceNamespaces
in the AppProject to allow to source configuration as well.argocd.argoproj.io/cm-type=
with different values according to their usage. Values could benotifications
andplugin-generator