Support using new-style dynamic drivers

Registered by Dmitry Tantsur on 2017-01-25

Ironic is implementing a new way to define and use drivers. Instead of monolithic drivers with hardcoded interfaces (e.g. pxe_ipmitool), we'll have hardware types that define compatibility with interfaces. Users will be able to pick a hardware type and an implementation for each interface (or just leave the default). E.g. you can set driver to just "ipmi" and then pick a deploy procedure ('iscsi" or "direct") or console implementation ("no-console", "shellinabox", "socat"). See http://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html for details.

Anticipated TripleO changes:
* Update puppet-ironic to support new configuration options (enabled_hardware_type, enable_*_interfaces, default_*_interface).
* Update puppet-tripleo to include ironic::drivers::interfaces for easy configuration.
* Make tripleo-common understand new driver names and new fields.
* Enable default set of hardware types (presumably, IPMI, Drac and iLO) both in under- and overcloud.
* Make "inspector" the default inspection implementation in the undercloud.
* Enable "socat" console implementation both in under- and overcloud to be able to use nova serial console with bare metal nodes.
* Switch CI (or parts of it) to using hardware types.

Blueprint information

Status:
Complete
Approver:
Emilien Macchi
Priority:
Medium
Drafter:
Dmitry Tantsur
Direction:
Approved
Assignee:
Dmitry Tantsur
Definition:
Approved
Series goal:
Proposed for pike
Implementation:
Implemented
Milestone target:
milestone icon pike-2
Started by
Dmitry Tantsur on 2017-03-07
Completed by
Dmitry Tantsur on 2017-06-07

Related branches

Sprints

Whiteboard

Puppet patch: https://review.openstack.org/#/c/427741/

Gerrit topic: https://review.openstack.org/#q,topic:bp/ironic-driver-composition,n,z

Addressed by: https://review.openstack.org/452831
    Include ironic::drivers::interfaces in the ironic-conductor profile

Addressed by: https://review.openstack.org/452837
    Add support for "neutron" Ironic networking plugin

Addressed by: https://review.openstack.org/453247
    Install socat package for Ironic serial console support

Addressed by: https://review.openstack.org/453572
    Allow configuring enabled hardware types for Ironic

Addressed by: https://review.openstack.org/453584
    Add support for enrolling nodes with "ipmi" hardware type

Addressed by: https://review.openstack.org/459182
    Rely on puppet-ironic to install driver dependencies

Addressed by: https://review.openstack.org/459260
    Support configuring enabled hardware types

Addressed by: https://review.openstack.org/464656
    Document hardware types for ironic in the overcloud

Addressed by: https://review.openstack.org/468907
    Switch to "ipmi" hardware type by default for >= Pike

Addressed by: https://review.openstack.org/468910
    Document hardware types for the undercloud and virtualbmc

(?)

Work Items

Dependency tree

* Blueprints in grey have been implemented.

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.