Core modules: External-dns, Cert-manager, Nginx-ingress, ArgoCD, ExternalSecrets should be provisioned by Terraform along with the k8s cluster.
Other k8s addons could be provisioned by ArgoCD itself using configurable apps-of-the apps approach passing git urls' for addon locations. This prevents additional Terraform reconcilation loop for addons and workloads.
5.1. Adding new git repo url with workloads should trigger TF reconcilation.
More flexible module structure. We should avoid using remote states. Utilize outputs and pass it to next modules using reconciler itself(possible side-effects should be investigated).
6.1. Modules should have dependency graphs (some concept behind it could be found in terraspace implementation: https://terraspace.cloud/docs/dependencies/)
User management should be done using Cloud User Accounts instead of external integrations(too complex to implement)
7.1. IAM policies and roles and should be more configurable and possibly handled by separate module.
We have been used cluster.dev in several production infrastructures and some outputs after 3-4 month of usage: