Doesn’t seem like a problem unless the gitops controller is managing repositories too.
This isn’t a cyclic dependency, and doesn’t affect failure modes. If the git server fails, the gitops controller fails or waits.
It’s a bit more of a problem if the cluster IaC itself is managed using this git instance, but that’s easy enough to solve with backups or not doing that.
Since this is a home lab, none of this is problematic. Feel free to condense everything - even the backup controller. Just make sure you have a way to access data and manually intervene if it shits the bed.
I do all of this with kubernetes. For VM workloads, I use kubevirt (which is libvirt controlled by kubernetes). It runs extremely well, is lightweight, and it’s very consistent to operate.
At one point I had a lot more layers to this. As I became more competent and aware use the ecosystem, it all flattened into bare metal kubernetes.