Description
Summary
Currently, gitops-engine
only considers resources with no owner references as top-level resources, and hence refuses to delete objects that have any owner references.
I would like to have a configuration and/or sync option to say that only owner references with controller: true
should be respected when determining whether a resource is a top-level resource and can be deleted.
Motivation
I would like to use Argo CD to manage Cluster API clusters, but Cluster API adds owner references with controller: false
to all resources that are part of a cluster but not directly managed by Cluster API (in particular, MachineDeployment
s). This means that Argo CD refuses to delete those resources even though it created them and there are no other controllers managing them.
I believe that that this is the correct behaviour from Cluster API, as those resources do indeed have a dependency on the Cluster
object but Cluster API is not responsible for managing their lifecycle (other than cascade deletion).
Currently, this is a massive blocker for anyone who wants to use Argo CD to manage Cluster API clusters.
Proposal
I would like to see an additional sync option, RespectControllerReferencesOnly=true
, that can be set on an application to enable this behaviour.