@neil it's easy, you just make a bunch of deployments, services, ingresses, roles/rolebindings, and loadbalancers with special annotation depending on which cloud provider you're using (or just ingresses if you're using ingress-nginx), and then you package that up into a helm chart, and you put a bunch of helm charts together into a helmfile and deploy that with gitops using fluxcd, ensuring you keep variables straight between deployment environments

what could go wrong