Open alexmt opened 3 years ago
HI Alex, May I confirm that the AppSource CRD is namespace-scoped ?
@sbose78 yes, that is correct
@alexmt In which namespace would the argocd-source-cm
resource be defined? I assume it would be defined in the AppSource controller namespace, rather than in the same namespace as the AppSource(s)
? (If it WERE in the same namespace as the AppSource, then tenants would likely have write access to ConfigMap
s in that namespace, and would be able to alter it to point at whichever project they wanted)
Hello @jgwest I've been working on the first MVC @alexmt described, and in my opinion I think the config should be and is being created within the RBAC configured argocd namespace that only admins have access to.
Summary
Existing ApplicationSet CRD provides allows managing multiple Argo CD applications in a centralized way. This works very well when one team is responsible for managing a set of apps and wants to reduce the amount of manual work to maintain a list of Argo CD apps up to date.
Motivation
We still have another use case: multiple teams use Argo CD as a service and want to independently manage applications. It is proposed to introduce AppSource CRD that simplifies managing Argo CD apps in a decentralized way.
Proposal
Create an
AppSource
CRD that should be installed into the managed cluster and can be used by developers with target cluster access to create Argo CD applications.CRD
AppSource
is CRD that should be installed into the managed cluster and contains only the application source field. Example:Controller
The AppSource CRD controller should be watching for AppSource instances in namespaces and should normal Argo CD Applications using Argo CD API. The controller administrator should configure the following settings:
The controller and CRD should be implemented as a https://github.com/argoproj-labs project.
Nice To Have Features
If the first MVC gets good feedback then the following features can be implemented: