<div dir="ltr">Hi all,<br><br>I've got a few updates to share on the status of functional testing of Ironic.<br><br>Firstly, early last week, Ironic's tempest tests were added to our check and gate pipeline, and non-voting checks were added to devstack and tempest pipelines as well. These tests start the Ironic services in devstack, and then exercise CRUD actions via our python client. The current tempest tests exercise our integration with Keystone, and the integration of our internal components (ir-api, ir-cond, mysql/pgsql, rabbit).<br>
<br>Since the project plans include integration with Glance, Keystone, Nova, and Neutron, we initially enabled all of those in our devstack-gate environment. However, due to the unpredictable nature of Neutron's test suite, our gate was blocked as soon as it was enabled, and on Tuesday I disabled Neutron in our devstack-gate runs.<br>
<br>This is not ideal. Ironic's PXE deployment driver depends on Neutron to control the DHCP BOOT [4] option for nodes, so to do automated functional testing of a PXE deployment, we will need to re-enable Neutron in devstack-gate. We still have work to do before we are ready for end-to-end deploy testing, so I'm hoping Neutron becomes a bit more stable by then. I'm not thrilled about the prospects if it is not.<br>
<br>Our Nova driver [1] hasn't landed yet, and probably needs further refinement before the Nova folks will be ready to land it, but it *is* functional. Late in the week, Lucas and Chris each did an end-to-end deployment with it! <div>
<br></div><div>So, today, we're not functionally testing Nova with an "ironic" virt driver [2] -- even though Nova is enabled and tested by devstack-gate in Ironic's pipeline. This was an oversight in my review of our devstack-gate tests: we're currently gating on Nova using the libvirt driver. It's unrelated to Ironic and I don't believe it should be exercised in Ironic's test suite. Furthermore, we tripped a bug in the libvirt driver by doing file injection with libguestfs. This has, once again, broken Ironic's gate. </div>
<div><br></div><div>I've proposed a temporary solution [3] that will cause libvirt to be tested using configdrive in our pipe, as it is in all other projects except Neutron. A better solution will be to not gate Ironic on the libvirt driver at all.</div>
<div><div><br></div><div>The path forward that I see is:</div><div>- changes to land in devstack and tempest to create a suitable environment for functional testing (eg, creating VMs and enrolling them with Ironic), </div>
<div>- the Nova "ironic" driver to be landed, with adequate unit tests, but no integration tests,</div><div>- we set up an experimental devstack-gate pipe to load that Nova driver and do integration tests between Ironic and Nova, Glance, and Neutron,</div>
<div>- iteratively fix bugs in devstack, ironic, our nova driver, and if necessary, neutron, until this can become part of our gate.</div><div><br></div><div>In the meantime, I don't see a point in those services being enabled and tested in our check or gate pipelines.</div>
<div><br></div><div><br>Regards,<br>Devananda<div><br><br>[1] <a href="https://review.openstack.org/5132">https://review.openstack.org/5132</a><br>[2] <a href="https://review.openstack.org/70348">https://review.openstack.org/70348</a><br>
[3] <a href="https://review.openstack.org/70544">https://review.openstack.org/70544</a><br>[4] <a href="http://docs.openstack.org/api/openstack-network/2.0/content/extra-dhc-opt-ext-update.html">http://docs.openstack.org/api/openstack-network/2.0/content/extra-dhc-opt-ext-update.html</a></div>
</div></div></div>