ironic-specs/priorities/queens-priorities.rst
John L. Villalovos 2074a39a10 Move traits from "high" to "essential" priority
During the weekly Ironic meeting on 11-Dec-2017 it was decided that
the traits work was an essential priority, since in Rocky release,
nova is planning on replacing the ComputeCapabilitiesFilter with the
traits processing in placement API.

Added mgoddard as a contact as they have agreed to work on the code.

Change-Id: Ibc5e333f7f29ba51c1d63f226ab7703b6c3bdc7f
2017-12-15 12:11:09 -08:00

171 lines
7.6 KiB
ReStructuredText

.. _queens-priorities:
=========================
Queens Project Priorities
=========================
This is a list of development priorities the Ironic team is prioritizing for
Queens development, in order of priority. Note that this is not our complete
backlog for the cycle, we still hope to review and land non-priority items.
The primary contact(s) listed is/are responsible for tracking the status of
that work and herding cats to help get that work done. They are not the only
contributor(s) to this work, and not necessary doing most of the coding!
They are expected to be available on IRC and the ML for questions, and report
status on the whiteboard_ for the weekly IRC sync-up. The number of primary
contacts is limited to 2-3 maximum to simplify communication. We expect at
least one of them to have core privileges to simplify getting changes in.
.. _whiteboard: https://etherpad.openstack.org/p/IronicWhiteBoard
Essential Priorities
~~~~~~~~~~~~~~~~~~~~
+---------------------------------------+-------------------------------------+
| Priority | Primary Contacts |
+=======================================+=====================================+
| `Ironic client version negotiation`_ | TheJulia, dtantsur |
+---------------------------------------+-------------------------------------+
| `External project auth rework`_ | pas-ha, TheJulia |
+---------------------------------------+-------------------------------------+
| `Old ironic CLI deprecation`_ | rloo |
+---------------------------------------+-------------------------------------+
| `Classic drivers deprecation`_ | dtantsur |
+---------------------------------------+-------------------------------------+
| `Reference architecture guide`_ | dtantsur, sambetts |
+---------------------------------------+-------------------------------------+
| `Traits support planning`_ | johnthetubaguy, TheJulia, dtantsur, |
| | mgoddard |
+---------------------------------------+-------------------------------------+
High Priorities
~~~~~~~~~~~~~~~~~~
+---------------------------------------+-------------------------------------+
| Priority | Primary Contacts |
+=======================================+=====================================+
| `Neutron event processing`_ | vdrok, vsaienk0, sambetts |
+---------------------------------------+-------------------------------------+
| `Routed networks support`_ | sambetts, vsaienk0, bfournie |
+---------------------------------------+-------------------------------------+
| `Rescue mode`_ | rloo, stendulker, aparnav |
+---------------------------------------+-------------------------------------+
| `Clean up deploy interfaces`_ | vdrok |
+---------------------------------------+-------------------------------------+
| `Zuul v3 jobs in-tree`_ | sambetts, derekh, jlvillal |
+---------------------------------------+-------------------------------------+
| `Graphical console`_ | pas-ha, vdrok, rpioso |
+---------------------------------------+-------------------------------------+
| `BIOS config framework`_ | dtantsur, yolanda, rpioso |
+---------------------------------------+-------------------------------------+
| `Ansible deploy interface`_ | pas-ha, yuriyz |
+---------------------------------------+-------------------------------------+
Details
~~~~~~~
Ironic client version negotiation
---------------------------------
Currently, we only support using a single API version for the whole life time
of an ironic client instance. We need to support using several versions in the
same client. We also need a way for the client to negotiate a maximum mutually
supported version with a server. Then we need to switch to using this
negotiated version in the OSC CLI by default. Finally, we will use the version
negotiation in the ironic virt driver.
External project auth rework
----------------------------
Work is under way to change how ironic `authenticates with other OpenStack
services <https://bugs.launchpad.net/ironic/+bug/1699547>`_, so that it uses
keystoneauth adapters. This will make it uniform, consistent, straightforward,
and compatible with the latest OpenStack best practices.
Old ironic CLI deprecation
--------------------------
We would like to deprecate the ``ironic`` CLI tool in favour of ``openstack
baremetal`` commands based on OpenStackClient.
Classic drivers deprecation
---------------------------
We would like to deprecate the ability to load classic drivers, as well as
classic drivers themselves, in favour of hardware types. We are providing
a migration guide for the switch, and we are also considering writing
an automated migration tool, though it may be tricky. See
:doc:`../specs/approved/classic-drivers-future` for details.
Reference architecture guide
----------------------------
To help new deployers make the right choices, we need a document describing a
reference architecture for an ironic deployment, especially around
multi-tenant networking and co-existing with VMs.
Neutron event processing
------------------------
Currently ironic has no way to determine when certain asynchronous events
actually finish in neutron, and with what result. Nova, on the contrary, uses
a special neutron driver, which filters out notifications and posts some of
them to a special nova API endpoint. We should do the same.
Routed networks support
-----------------------
Ironic should become aware of L2 segments available to connected networks as
well as which L2 networks are actually available to nodes to correctly pick
subnet (IP address) when doing provisioning/cleaning.
Rescue mode
-----------
This is necessary for users that lose regular access to their machine (e.g.
lost passwords). The :doc:`rescue mode spec
<../specs/approved/implement-rescue-mode>` was merged in Newton, the code is
partially done, let's put some effort into finishing it in Queens.
Clean up deploy interfaces
--------------------------
There is a lot of duplication between the ``iscsi`` and ``direct`` deploy
interface implementations. We need to clean them up to simplify future
maintenance.
Zuul v3 jobs in-tree
--------------------
With the switch to Zuul v3 we can now have our job definitions in our source
tree. Let us switch all jobs during this cycle.
Graphical console
-----------------
We need a way to expose graphical (e.g. VNC) consoles to users from drivers
that support it.
BIOS config framework
---------------------
Some drivers support setting BIOS (UEFI, etc) configuration out-of-band. We
would like to introduce a framework (HTTP and driver API) for drivers to
expose this feature to users.
Ansible deploy interface
------------------------
A deploy interface using ansible was developed out-of-tree and is currently a
part of ironic-staging-drivers. We need to import it into ironic to simplify
advanced use cases, requiring extensive customizations. The :doc:`spec
<../specs/approved/ansible-deploy-driver>` was approved, now we need to clean
up the code and move it in-tree.
Traits support planning
-----------------------
Nova is switching from *capabilities* to *traits* in the coming cycles. We
should make sure we are ready for the switch. The minimum goal for Queens is
to have a specification approved, outlining our plan on traits support.