Nguyen Hai 7ba42e091d Follow the new PTI for document build
For compliance with the Project Testing Interface as described in:
[1] https://governance.openstack.org/tc/reference/project-testing-interface.html
[2] http://lists.openstack.org/pipermail/openstack-dev/2017-December/125710.html

[doc/requirements.txt] & [test-requirements.txt]
To support documentation generation in new PTI, project should have
list python dependencies needed for documentation in
doc/requirements.txt which are move from test-requirements.txt

[doc/source/contributor/index.rst] & [setup.cfg]
- Remove [pbr] section in setup.cfg [3], and unrelated lines in
contributor/index.rst
[3] http://lists.openstack.org/pipermail/openstack-dev/2018-March/128594.html
- Add sphinxcontrib.apidoc to replace pbr autodoc

[tox.ini]
--ignore D000: pep8 require sphinx (which move to doc/requirements.txt)
to test doc/source files, however, docs already test the doc/source.
Therefore we can ignore the D000 error code.

Depends-On: https://review.openstack.org/#/c/559327/
Change-Id: Iee90f19a5e46978a97035eab7e4b1e0ec68b8684
2018-04-06 14:33:47 +00:00

3.1 KiB

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.

Developer Contribution Guide <code-contribution-guide> Setting Up Your Development Environment <dev-quickstart> Priorities <https://specs.openstack.org/openstack/ironic-specs/#priorities> Specifications <https://specs.openstack.org/openstack/ironic-specs/> Frequently Asked Questions <faq>

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.

Ironic System Architecture <architecture> Provisioning State Machine <states> Developing New Notifications <notifications> OSProfiler Tracing <osprofiler-support> Rolling Upgrades <rolling-upgrades>

These pages contain information for PTLs, cross-project liaisons, and core reviewers.

Releasing Ironic Projects <releasing> Ironic Governance Structure <governance>

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.

Driver Overview <drivers> Writing "vendor_passthru" methods <vendor-passthru> Third party continuous integration testing <third-party-ci>

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.

Configuring Devstack for multitenant network testing <ironic-multitenant-networking>

Testing Boot-from-Volume

Starting with the Pike release, it is also possible to use DevStack for testing booting from Cinder volumes with VMs.

Configuring Devstack for boot-from-volume testing <ironic-boot-from-volume>

Full Ironic Server Python API Reference

api/modules