This is a list of development priorities the Ironic team is prioritizing for Mitaka development, in no particular order.
You may notice this list seems long for a single cycle. Note that much of this work is in flight already and just needs to be completed during the Mitaka cycle; they are not starting from scratch.
|Live upgrades||lucasagomes, lintan|
|Boot interface refactor||jroll|
|Parallel tasks with futurist||dtantsur|
|Node filter API and claims endpoint||jroll, devananda|
|Multiple compute hosts||jroll, devananda|
|Improving testing||jlvillal, krtaylor, lekha|
|Improving docs||jroll, liliars|
May 2016. These were completed in the Mitaka cycle:
Work to refactor much of Ironic’s disk partitioning code into a library (ironic-lib) began in Liberty, getting the library set up and released. The team would like to finish that work in Mitaka by removing the code in Ironic and replacing it with library calls. This enables advanced partitioning in ironic-python-agent via this library, which will be needed for supporting partitioned disk images.
Work began on a feature called “zapping” in Liberty. This came late in the cycle, and the implementation identified some issues with the architecture and name. This is being re-spun as “manual cleaning” in Mitaka. It’s needed to complete the RAID work and for operators to be able to trigger other cleaning tasks manually.
Much of the groundwork was laid down for RAID support in Liberty. To complete this work in Mitaka, we need to integrate it with (manual) cleaning and write ample documentation for operators.
This feature was designed in Liberty, and much of the code was written. The code was not ready in time to land in Liberty. We need to complete this work in Mitaka, along with the Nova side of the work. This is one of our biggest feature asks from users.
This is necessary, especially with frequent releases, to allow our operators to upgrade without downtime. There isn’t much code work left to do here; mostly docs, increasing awareness, and building a culture of coding and reviewing for live upgrades.
This work was completed for most drivers in Liberty. Two drivers (iLO and iRMC) remain to be completed. The code is complete for this and just needs review.
This will help scale our conductor service, as we have a handful of periodic tasks that currently run serially. Additionally, drivers may register periodic tasks that compound this problem.
This lays the groundwork for the work being done in Nova to allow the Ironic driver to utilize multiple compute hosts. The filter API also helps users query nodes much more intelligently, and the claims endpoint will help clients other than Nova schedule to nodes more easily.
This is an effort to allow the Ironic virt driver in Nova scale across many compute hosts. Currently only one compute host is supported. This shrinks the failure domain of the nova-compute service in an Ironic deployment, and also helps schedule Ironic resources more efficiently. Note that this work is in the Nova codebase, but is an Ironic effort.
There are a number of gaps in our testing that we need to close. This includes full tempest, microversion testing, grenade jobs, functional testing, third party CI, and more. These will help us to keep our releases more stable.
We currently don’t have any presence in the official OpenStack documentation, and somewhat related, there is currently no way to update documentation for stable branches. We also need to create a developer’s guide of sorts, to help developers follow our processes more easily and submit better code, as well as help reviewers review code in a consistent manner.