I would like to discuss the road ahead for the nova.virt.ironic driver and formulate a plan that we can all agree on to deprecating the nova.virt.baremetal driver at the end of Juno. I hope we can find a solution which makes this process pain-free for both Nova's and Ironic's developer community.
Current state, as of April 2nd, that bears calling out: * the nova.virt.ironic driver currently lives in the openstack/ironic project. * configuring nova with "compute_driver=ironic.nova.virt.ironic.IronicDriver" works. (and it's in devstack) * functional and integration testing of ironic, including using tempest with this driver, is nearly complete. Let's assume it will be done by the Summit. * Ironic is going to gate on these tests ASAP. * Nova is *not* going to gate on these tests in Juno, because integrated projects can't gate on incubated projects. * Ironic will be added to the global gate when it graduates (presumably at the start of "K").
So...
When does it make sense for us to propose the nova.virt.ironic driver to Nova?
Moving the driver into Nova's tree, while Ironic gates on it but Nova does not, seems destined to cause significant pain for developers.
Regardless of which tree the nova.virt.ironic code is in, how do we manage asymmetric gating during Juno, while Ironic depends on an internal API that Nova can change at any time?
Lastly, will Nova ever accept a non-libvirt driver into it's gate, even if it's an integrated OpenStack project and the testing is done upstream?