Developer’s Guide¶
Getting Started¶
If you are new to ironic, this section contains information that should help you get started as a developer working on the project or contributing to the project.
The following pages describe the architecture of the Bare Metal service and may be helpful to anyone working on or with the service, but are written primarily for developers.
These pages contain information for PTLs, cross-project liaisons, and core reviewers.
Writing Drivers¶
Ironic’s community includes many hardware vendors who contribute drivers that enable more advanced functionality when Ironic is used in conjunction with that hardware. To do this, the Ironic developer community is committed to standardizing on a Python Driver API that meets the common needs of all hardware vendors, and evolving this API without breaking backwards compatibility. However, it is sometimes necessary for driver authors to implement functionality - and expose it through the REST API - that can not be done through any existing API.
To facilitate that, we also provide the means for API calls to be “passed through” ironic and directly to the driver. Some guidelines on how to implement this are provided below. Driver authors are strongly encouraged to talk with the developer community about any implementation using this functionality.
Testing Network Integration¶
In order to test the integration between the Bare Metal and Networking services, support has been added to devstack to mimic an external physical switch. Here we include a recommended configuration for devstack to bring up this environment.
Testing Boot-from-Volume¶
Starting with the Pike release, it is also possible to use DevStack for testing booting from Cinder volumes with VMs.
Full Ironic Server Python API Reference¶
Understanding the Ironic’s CI¶
It’s important to understand the role of each job in the CI, how to add new jobs and how to debug failures that may arise. To facilitate that, we have created the documentation below.
Our policy for stable branches¶
Stable branches that are on Extended Maintenance and haven’t received
backports in a while, can be tagged as Unmaintained
, after discussions
within the ironic community. If such a decision is taken, an email will
be sent to the OpenStack mailing list.
What does Unmaintained
mean? The branch still exists, but the ironic
upstream community will not actively backport patches from maintained
branches. Fixes can still be merged, though, if pushed into review by
operators or other downstream developers. It also means that branchless
projects (e.g.: ironic-tempest-plugin), may not have configurations that are
compatible with those branches.
As of 09 March 2020, the list of Unmaintained
branches includes:
Ocata (Last commit - Jun 28, 2019)
Pike (Last commit - Oct 2, 2019)