ironic/releasenotes/notes/dynamic-driver-list-show-ap...

89 lines
3.3 KiB
YAML

---
features:
- |
Adds support for dynamic drivers. Using a dynamic driver in a node's
``driver`` field is now possible. Dynamic drivers are composed of a
``hardware type`` and a number of ``hardware interfaces``.
NOTE: this feature is considered somewhat experimental, as not all classic
drivers have a corresponding dynamic driver, and there is minimal CI
for dynamic drivers at the time of this writing.
Hardware types are enabled via the ``[DEFAULT]/enabled_hardware_types``
configuration option, and hardware interfaces are enabled via the
``[DEFAULT]/enabled_*_interfaces`` configuration option. A default
interface to use when creating or updating nodes can be specified with the
``[DEFAULT]/default_*_interface`` configuration option.
The ironic-conductor process will now fail to start if:
- a default interface implementation for any enabled hardware type cannot
be found.
- a dynamic driver and a classic driver with the same name are both
enabled.
- at least one classic driver *or* one dynamic driver is not enabled.
Hardware types available in this release are:
- ``ipmi`` for IPMI-compatible hardware. This type is enabled by default.
Uses the ``ipmitool`` utility under the hood, similar to existing classic
drivers ``pxe_ipmitool`` and ``agent_ipmitool``. Supports both types of
serial console: via ``shellinabox`` and via ``socat``, both are disabled
by default.
- ``irmc`` for FUJITSU PRIMERGY servers, disabled by default.
This feature has a number of REST API changes, all of which are available
in API version 1.31.
- Adds additional parameters and response fields for GET /v1/drivers and
GET /v1/drivers/<name>.
- Exposes the following fields on the node resource, to allow getting and
setting interfaces for a dynamic driver:
* boot_interface
* console_interface
* deploy_interface
* inspect_interface
* management_interface
* power_interface
* raid_interface
* vendor_interface
- Allows dynamic drivers to be used and returned in the following
API calls, in all versions of the REST API:
* GET /v1/drivers
* GET /v1/drivers/<name>
* GET /v1/drivers/<name>/properties
* GET /v1/drivers/<name>/vendor_passthru/methods
* GET/POST /v1/drivers/<name>/vendor_passthru
* GET/POST /v1/nodes/<id>/vendor_passthru
For more details on the REST API changes, see the `REST API Version History
documentation
<http://docs.openstack.org/developer/ironic/dev/webapi-version-history.html>`_.
This also adds dynamic interface fields to node-related notifications:
* boot_interface
* console_interface
* deploy_interface
* inspect_interface
* management_interface
* power_interface
* raid_interface
* vendor_interface
The affected notifications are:
* baremetal.node.create.*, new payload version 1.1
* baremetal.node.update.*, new payload version 1.1
* baremetal.node.delete.*, new payload version 1.1
* baremetal.node.maintenance.*, new payload version 1.3
* baremetal.node.console.*, new payload version 1.3
* baremetal.node.power_set.*, new payload version 1.3
* baremetal.node.power_state_corrected.*, new payload version 1.3
* baremetal.node.provision_set.*, new payload version 1.3