Merge ApplicationSet into Argo CD
Summary
Currently, Argo CD and ApplicationSet have implicit dependencies on each other. The ApplicationSet imports Argo CD code and Argo CD Application CRD validation schema. Argo CD bundles ApplicationSet installation manifests.
Argo CD and ApplicationSet are tightly coupled together but developed in different repositories. This coupling creates some issues for maintainers during release and for end-users as well:
- The Argo CD and ApplicationSet are released at the same time but due to circular dependency we need to release Argo CD release candidate first, then point ApplicationSet to release candidate and release it and then finally update Argo CD manifests with released ApplicationSet manifests
- Users have to deal with two images (and CRDs) that have different version numbers but are tightly coupled with each other. If versions are not matching that behavior is unpredictable.
Going forward we are planning to introduce first-class ApplicationSet support in Argo CD. That will require to introduce ApplicationSet dependency in Argo CD.
Proposal
Given that projects are so coupled already and we plan to have even more tighter integration it is proposed to merge ApplicationSet and Argo CD code.
@crenshaw-dev , @jgwest WDYT?
Based on discussion in contributors meetings, changed the proposal to merge Argo CD and ApplicaitonSet code.