With the help of GitOps tool such as Argo CD, we can practice the "pure GitOps way" of deploying everything declaratively. That means, as long as we have a cluster with Argo CD deployed, everything else can be installed using Argo CD, as a top level "installer", by checking declarative definitions in git. This changes people's mindset for operation as we never need to manually run any command from command line to install or deploy something. This is how GitOps is supposed to do.
With the help of GitOps tool such as Argo CD, we can practice the "pure GitOps way" of deploying everything declaratively. That means, as long as we have a cluster with Argo CD deployed, everything else can be installed using Argo CD, as a top level "installer", by checking declarative definitions in git. This changes people's mindset for operation as we never need to manually run any command from command line to install or deploy something. This is how GitOps is supposed to do.
With that, I would suggest we do in that way, such as what has been demonstrated in the reference implementation, where prereqs for a GitOps control plane such as Crossplane can be installed by submitting a CR: https://github.com/cloud-pak-gitops/demo-app-gitops/blob/main/config/crossplane/crossplane-app.yaml. No need manual install from command line any more, neither using helm nor kubectl.