2026.1 Ironic work items

This is a summary of work items discussed at the PTG.

Assisted-by: Claude code
Change-Id: I5fe43622c6f03c3caacc1cc6b169f7354b32523e
Signed-off-by: Jay Faulkner <jay@jvf.cc>
This commit is contained in:
Jay Faulkner 2025-10-31 14:51:47 -07:00
parent 2c3d99432a
commit 439aee7058

View file

@ -0,0 +1,315 @@
.. _2026-1-work-items:
=========================
2026.1 Project Work Items
=========================
The OpenStack Ironic virtual Project Team Gathering happened in October 2025.
Ironic developers and operators discussed many different potential features and
other ongoing work for the 2026.1 (Gazpacho) release. These discussions are
memorialized in this document, providing a list of the main priorities for
the next development cycle. For more information please look at the link for
each topic or contact the Ironic team in #openstack-discuss on OFTC or via
openstack-discuss mailing list.
Ironic contributors are busy; they work spanning multiple open source projects,
and have varied downstream responsibilities. We cannot guarantee any or all
planned work will be completed, nor is this a comprehensive list of
everything Ironic team members may do in the next six months.
Each item in the table includes:
- Name of the work item, linked to the description
- Category can be...
- Maintenance: work that must be performed to keep Ironic working
- Bugfix: work to enhance existing code to cover more corner cases and
resolve bugs
- Feature: a new Ironic feature that did not previously exist
- Champions are the people most familiar with the technologies involved,
and are a good resource if you'd like to implement the work item.
- Tracking link is a link to the bug (usually) tracking the work.
.. list-table:: 2026.1 Work Items
:widths: 50 20 20 10
:header-rows: 1
* - Name
- Category
- Tracking
- Champions
* - `Post-eventlet performance improvements`_
- Feature
- https://etherpad.opendev.org/p/ironic-asyncio
- cid, dtantsur, iurygregory
* - `Deferred tasks`_
- Feature
- https://review.opendev.org/c/openstack/ironic-specs/+/954612
- TheJulia, dtantsur, cid
* - `Sushy integration into Ironic`_
- Maintenance
- N/A
- iurygregory
* - `NVMe-over-TCP support`_
- Feature
- https://bugs.launchpad.net/nova/+bug/2126675
- TheJulia, cardoe
* - `Graphical Console Improvements`_
- Feature
- https://review.opendev.org/c/openstack/nova/+/942528
- stevebaker, TheJulia
* - `Trait Based Networking`_
- Feature
- https://specs.openstack.org/openstack/ironic-specs/specs/approved/trait-based-port-scheduling.html
- clif, JayF, TheJulia
* - `VXLAN attachments`_
- Feature
- https://review.opendev.org/c/openstack/ironic-specs/+/959401
- cardoe, TheJulia
* - `Standalone Networking`_
- Feature
- N/A
- alegacy, dtantsur, JayF
* - `API response schema validation, OpenAPI Spec`_
- Maintenance
- `Add OpenAPI support for Ironic via codegenerator <https://launchpad.net/bugs/2086121>`_
- stephenfin, adammcarthur5
* - `Redfish Virtual Media via NFS and SMB`_
- Feature
- https://bugs.launchpad.net/ironic/+bug/2119212
- cid
* - `Hardware health monitoring`_
- Feature
- N/A
- janders, dtantsur
* - `Database charset migration`_
- Maintenance
- https://bugs.launchpad.net/ironic/+bug/2130359
- rpittau
* - `Driver retirements`_
- Maintenance
- N/A
- JayF, janders, iurygregory
Goals Details
=============
Post-eventlet performance improvements
--------------------------------------
In the post-eventlet world, Ironic has the opportunity to implement async/await
patterns to achieve high parallelism for metrics collection and power syncs.
This work will focus on proof of concept implementations for sensor data
collection, paying particular attention to the Redfish session cache. The goal
is to measure performance improvements and determine the appropriate scope for
async implementation within Ironic.
This work will initially focus on the management and power driver interfaces,
as these are the areas where we see the most benefit from parallelism. The team
will use sushy-tools to create test environments with many nodes and measure
performance improvements before and after implementation.
Deferred tasks
--------------
The goal is to eliminate sleep() calls in conductor threads, which are
particularly expensive in the post-eventlet world. Deferred tasks will allow
Ironic to schedule work to be performed later, such as resuming from port
binding, checking BMC readiness, and handling firmware upgrades. This work
overlaps with async/await implementation and the two efforts will be
coordinated.
The initial implementation will not expose a public API, to prevent abuse. The
decision on whether to add an API endpoint will be revisited after the
async/await design is finalized.
Sushy integration into Ironic
-----------------------------
The team is evaluating moving sushy into the ironic repository to reduce
maintenance overhead, simplify releases, and eliminate API surface management
between projects. This change would be similar to the ironic-lib integration.
A mailing list discussion has been initiated to gather community feedback
before proceeding with this change.
We intend to allow sushy imports to still be made even if the module itself may
move into ironic directly.
NVMe-over-TCP support
---------------------
This work will add support for NVMe-over-TCP volume attachments in Ironic,
including:
- Adding NVMe-over-TCP connector support
- Implementing BMC configuration for NVMe boot
- Coordinating with Cinder and Nova on attachment flow improvements
This work will enable operators to use modern storage protocols with bare metal
and is particularly important for operators using storage arrays that primarily
support NVMe-over-TCP.
Graphical Console Improvements
------------------------------
Building on the graphical console work from previous cycles, this work focuses
on:
- Merging remaining integration testing changes
- Exposing the graphical console features for Nova integrated users
- Implementing additional console drivers (e.g., Kubernetes-based)
- Switching browser tooling to use a Firefox extension
This work requires coordination with Nova and deployment projects to ensure
the feature is widely usable.
Trait Based Networking
----------------------
Continuation of work from previous cycles to enable dynamic port and portgroup
attachment based on traits defined in configuration. Current status:
- Port and portgroup model changes mostly complete
- Grammar and parsing for filter expressions done
- Configuration file implementation nearly complete
- Network planning and action generation in progress
- Next steps: executing actions at provision time, dynamic portgroup assembly
This work enables more flexible networking configuration and is a foundation
for other networking improvements.
VXLAN attachments
-----------------
Operators are expressing concern about scaling environments without native
VXLAN support. This work will enable bare metal nodes to connect to VXLAN
networks, working around VLAN scaling limitations. This requires:
- Neutron ML2 plugin support for VXLAN with physical networks
- Ironic support for VXLAN binding
- Coordination with networking-generic-switch for switch configuration
This work is particularly important for large-scale deployments that have
exhausted their VLAN space.
Standalone Networking
---------------------
Networking represents the next step for a truly standalone Ironic, finding
alternatives to OpenStack-integrated scenarios and therefore to Neutron. Over
the last cycle, discussions were traded for code as implementation began.
A working prototype for standalone networking has been written and is expected
to merge during this cycle with support for basically placement of nodes into
VLANs using networking-generic-switch called directly from ironic.
API response schema validation, OpenAPI Spec
--------------------------------------------
Continuation of work from previous cycles. The Ironic team is generating
OpenAPI specification documents from API code and refactoring microversion
handling. This effort will continue with a renewed vigor in the 2026.1 cycle.
Redfish Virtual Media via NFS and SMB
-------------------------------------
Some BMCs do not support HTTPS for virtual media and require NFS or SMB/CIFS
shares. This work will add support for these transport protocols but may not
include ironic management of the actual network file system services.
Hardware health monitoring
--------------------------
Add basic hardware health monitoring based on Redfish System Status fields.
This will collect health status from systems and potentially network adapters,
record status changes in node history, and expose the information via the API.
This work leverages existing power sync loops to collect additional hardware
state information.
This work will also investigate proxying health status to Metal3's
BareMetalHost.Status for Kubernetes-based deployments.
Database charset migration
--------------------------
MySQL's 3-byte UTF-8 charset encoding is deprecated. Ironic needs to migrate
to 4-byte UTF-8 (utf8mb4) encoding. This will require a database migration
and coordination with deployment projects to ensure smooth upgrades.
It's our expectation this will be an OpenStack-wide priority in the coming
cycles, and the ironic team is ready to do our part.
Driver retirements
------------------
The iLO driver will be deprecated and retired due to a dependency on pysnmp as
the versions it is compatible with are not security updated and there are no
volunteers to modernize it. The iRMC driver similarly has a dependency on
pysnmp via the snmp driver, and deprecation of that will proceed unless
Fujitsu or a user of iRMC are able to commit to upstream maintenance.
Both drivers will receive upgrade checks (backported to last release) warning
about deprecation before removal.
Maintenance Tasks
=================
There are some periodic tasks which must be done by project leadership during
the release cycle. These should be followed up on at every scheduled team
meeting to ensure they are being followed.
.. list-table:: 2026.1 Maintenance Tasks
:widths: 20 30 30 20
:header-rows: 1
* - Item
- Document
- Cadence
- Responsible parties
* - Release bugfix branches
- https://docs.openstack.org/ironic/latest/contributor/releasing.html#bugfix-branches
- Two additional releases per cycle, approximately at milestones 1 and 2.
- DPL Release Liaisons
* - Retire expired bugfix branches
- https://docs.openstack.org/ironic/latest/contributor/releasing.html#bugfix-branches
- Bugfix branches older than 9 months must be retired.
- DPL Release Liaisons
* - Bug triage
- https://docs.openstack.org/ironic/latest/contributor/bug-deputy.html
- Triage and respond to bugs, ensure periodic CI is happy.
- Rotating volunteer 'deputy' from meeting
* - Release Deadlines
- https://docs.openstack.org/ironic/latest/contributor/releasing.html
- Ensure we meet various release deadlines and freezes.
- DPL Release Liaisons
Release Schedule
================
Contributors are reminded of our scheduled releases when they are choosing
items to work on.
The dates below are a guide; please view
https://releases.openstack.org/gazpacho/schedule.html for the full schedule
relating to the release and
https://docs.openstack.org/ironic/latest/contributor/releasing.html for Ironic
specific release information.
Bugfix Release 1
----------------
The first bugfix release is scheduled to happen around the last week of
November, 2025.
Bugfix release 2
----------------
The second bugfix release is scheduled to happen around the last week of
January, 2026.
Deadline Week
-------------
There are multiple deadlines/freezes in the final weeks of the release,
please refer to the release schedule for exact dates.
Final 2026.1 (Integrated) Release
---------------------------------
The final releases for Ironic projects in 2026.1 must be cut before
March 26, 2026.