OpenStack Ironic[1] can do this today, given you had right hardware. Making that hardware "mutli-tenant" is not a trivial project, mostly because the firmware stacks are still very closed, but it can be done. Top of Rack switches are also another area of complexity/pain, but also feasible to overcome with a little engineering.
[1]: OpenStack has its complexities, but the OnMetal project has upstreamed everything feasible we can.
True; I think it is reasonable project to take on if you are willing to staff developers... if you are trying to build a "bare metal" public cloud, having developers on staff is going to be a prerequisite for quite some time going forward.