I feel like cloudnative-pg takes away majority of pain using well known kubernetes operator pattern.
Is this a problem of multi-tenancy in k8s specifically or something else?
Also for us, one reason was operational simplicity. You can write a control plane for managed Postgres in 20K lines of code, including unit tests. This way, if anything breaks at scale, you can quickly figure out the issue without having to dive into dependencies.