Not sure what features oVirt has, since I never used it and was never curious enough to look beyond what it is in a few minutes. But if all else fails, you could try OpenNebula (it’s also built on top of KVM with libvirt). We used it in my company in the past. It was quite quirky (if you weren’t careful, you could delete a VM you did not want to, but we found a workaround by clicking the VM itself and not do a quick action from the selection menu) and it had too many features that didn’t help us in particular, like cost control, but for a DIY private cloud, it basically competes with OpenStack (to some degree) and it’s easier to implement. But depending on the size of your cluster, it could take a little to migrate everything; it was easy for us to migrate from OpenNebula to Proxmox, we could have automated it, but it only took 1 person, ie me, just under a week to recreate the VM configs and move the disk image files to the new locations (which were on the same NASes).
I still have nightmares with OpenNebula, but now that I think about it, I probably didn’t give it a fair chance back then (and neither did my colleagues), not to mention it had lots of updates since. Our implementation was also kinda bad, since the Orchestrator was running on a virtualization host, instead of a separate server (and if the host would ever go down, it would take the orchestrator with it, however, the VMs on the other hosts would keep running and even be accessed via Virt-Man).