Update the doc regarding the removal of calssic drivers
This patch updates the remaining doc that relates to the removal of classic drivers. Change-Id: I82b1ee18ea90bfdf8ab9b24e610fb5db766068a0
This commit is contained in:
parent
60977594d2
commit
a60233ccf4
@ -1,10 +1,11 @@
|
|||||||
Upgrading to Hardware Types
|
Upgrading to Hardware Types
|
||||||
===========================
|
===========================
|
||||||
|
|
||||||
In the future, the Bare Metal service will stop supporting *classic drivers*
|
Starting with the Rocky release, the Bare Metal service does not support
|
||||||
and will only support *hardware types*. Please see
|
*classic drivers* any more. If you still use *classic drivers*, please
|
||||||
:doc:`/install/enabling-drivers` for the detailed explanation of the
|
upgrade to *hardware types* immediately. Please see
|
||||||
difference between these two types of drivers.
|
:doc:`/install/enabling-drivers` for details on
|
||||||
|
*hardware types* and *hardware interfaces*.
|
||||||
|
|
||||||
Planning the upgrade
|
Planning the upgrade
|
||||||
--------------------
|
--------------------
|
||||||
|
@ -29,10 +29,6 @@ the following command against that API end point::
|
|||||||
|
|
||||||
openstack baremetal driver list
|
openstack baremetal driver list
|
||||||
|
|
||||||
.. note::
|
|
||||||
This listing also includes *classic drivers* which are deprecated and
|
|
||||||
are not covered by this guide.
|
|
||||||
|
|
||||||
Writing a hardware type
|
Writing a hardware type
|
||||||
-----------------------
|
-----------------------
|
||||||
|
|
||||||
|
@ -5,24 +5,16 @@ Introduction
|
|||||||
------------
|
------------
|
||||||
|
|
||||||
The Bare Metal service delegates actual hardware management to **drivers**.
|
The Bare Metal service delegates actual hardware management to **drivers**.
|
||||||
Starting with the Ocata release, two types of drivers are supported:
|
*Drivers*, also called *hardware types*, consist of *hardware interfaces*:
|
||||||
*classic drivers* and the newer *hardware types* (for example, generic
|
sets of functionality dealing with some aspect of bare metal provisioning
|
||||||
``redfish`` and ``ipmi`` or vendor-specific ``ilo`` and ``irmc``).
|
in a vendor-specific way. There are generic **hardware types** (eg.
|
||||||
|
``redfish`` and ``ipmi``), and vendor-specific ones (eg. ``ilo`` and
|
||||||
|
``irmc``).
|
||||||
|
|
||||||
Drivers, in turn, consist of *hardware interfaces*: sets of functionality
|
.. note::
|
||||||
dealing with some aspect of bare metal provisioning in a vendor-specific way.
|
Starting with the Rocky release, the terminologies *driver*,
|
||||||
*Classic drivers* have all *hardware interfaces* hardcoded, while *hardware
|
*dynamic driver*, and *hardware type* have the same meaning
|
||||||
types* only declare which *hardware interfaces* they are compatible with.
|
in the scope of Bare Metal service.
|
||||||
|
|
||||||
Please refer to the `driver composition reform specification`_
|
|
||||||
for technical details behind *hardware types*.
|
|
||||||
|
|
||||||
.. TODO(dtantsur): write devdocs on the driver composition and stop linking
|
|
||||||
to the specification.
|
|
||||||
|
|
||||||
From API user's point of view, both *classic drivers* and *hardware types* can
|
|
||||||
be assigned to the ``driver`` field of a node. However, they are configured
|
|
||||||
differently.
|
|
||||||
|
|
||||||
.. _enable-hardware-types:
|
.. _enable-hardware-types:
|
||||||
|
|
||||||
@ -130,9 +122,8 @@ management
|
|||||||
Using ``ipmitool`` requires :doc:`configure-ipmi`. See
|
Using ``ipmitool`` requires :doc:`configure-ipmi`. See
|
||||||
:doc:`/admin/drivers` for the required configuration of each driver.
|
:doc:`/admin/drivers` for the required configuration of each driver.
|
||||||
network
|
network
|
||||||
connects/disconnects bare metal nodes to/from virtual networks. This is
|
connects/disconnects bare metal nodes to/from virtual networks.
|
||||||
the only interface that is also pluggable for classic drivers. See
|
See :doc:`configure-tenant-networks` for more details.
|
||||||
:doc:`configure-tenant-networks` for more details.
|
|
||||||
power
|
power
|
||||||
runs power actions on nodes. Similar to the management interface, it is
|
runs power actions on nodes. Similar to the management interface, it is
|
||||||
usually vendor-specific, and its name often matches the name of the
|
usually vendor-specific, and its name often matches the name of the
|
||||||
@ -300,6 +291,5 @@ existing nodes.
|
|||||||
support the provided default implementation, its users will have to always
|
support the provided default implementation, its users will have to always
|
||||||
provide an explicit value for this interface when creating a node.
|
provide an explicit value for this interface when creating a node.
|
||||||
|
|
||||||
.. _driver composition reform specification: https://specs.openstack.org/openstack/ironic-specs/specs/approved/driver-composition-reform.html
|
|
||||||
.. _setup.cfg: https://git.openstack.org/cgit/openstack/ironic/tree/setup.cfg
|
.. _setup.cfg: https://git.openstack.org/cgit/openstack/ironic/tree/setup.cfg
|
||||||
.. _ironic-inspector: https://docs.openstack.org/ironic-inspector/latest/
|
.. _ironic-inspector: https://docs.openstack.org/ironic-inspector/latest/
|
||||||
|
@ -30,9 +30,7 @@ Choosing a driver
|
|||||||
|
|
||||||
When enrolling a node, the most important information to supply is *driver*.
|
When enrolling a node, the most important information to supply is *driver*.
|
||||||
See :doc:`enabling-drivers` for a detailed explanation of bare metal drivers,
|
See :doc:`enabling-drivers` for a detailed explanation of bare metal drivers,
|
||||||
hardware types and interfaces. Starting with the Pike release, we recommend
|
hardware types and interfaces. The ``driver list`` command can be used
|
||||||
the use of *hardware types* instead of *classic drivers*, since classic drivers
|
|
||||||
may be deprecated in the near future. The ``driver list`` command can be used
|
|
||||||
to list all drivers enabled on all hosts:
|
to list all drivers enabled on all hosts:
|
||||||
|
|
||||||
.. code-block:: console
|
.. code-block:: console
|
||||||
@ -44,19 +42,6 @@ to list all drivers enabled on all hosts:
|
|||||||
| ipmi | localhost.localdomain |
|
| ipmi | localhost.localdomain |
|
||||||
+---------------------+-----------------------+
|
+---------------------+-----------------------+
|
||||||
|
|
||||||
Starting with API version 1.31 (and ``python-ironicclient`` 1.13), you can
|
|
||||||
also list only classic drivers or only hardware types via the ``--type``
|
|
||||||
argument:
|
|
||||||
|
|
||||||
.. code-block:: console
|
|
||||||
|
|
||||||
openstack baremetal --os-baremetal-api-version 1.31 driver list --type dynamic
|
|
||||||
+---------------------+-----------------------+
|
|
||||||
| Supported driver(s) | Active host(s) |
|
|
||||||
+---------------------+-----------------------+
|
|
||||||
| ipmi | localhost.localdomain |
|
|
||||||
+---------------------+-----------------------+
|
|
||||||
|
|
||||||
The specific driver to use should be picked based on actual hardware
|
The specific driver to use should be picked based on actual hardware
|
||||||
capabilities and expected features. See :doc:`/admin/drivers` for more hints
|
capabilities and expected features. See :doc:`/admin/drivers` for more hints
|
||||||
on that.
|
on that.
|
||||||
@ -179,9 +164,7 @@ and may be combined if desired.
|
|||||||
pick which hardware interface to use with nodes that use hardware types.
|
pick which hardware interface to use with nodes that use hardware types.
|
||||||
Each interface is represented by a node field called ``<IFACE>_interface``
|
Each interface is represented by a node field called ``<IFACE>_interface``
|
||||||
where ``<IFACE>`` in the interface type, e.g. ``boot``. See
|
where ``<IFACE>`` in the interface type, e.g. ``boot``. See
|
||||||
:doc:`enabling-drivers` for details on hardware interfaces and
|
:doc:`enabling-drivers` for details on hardware interfaces.
|
||||||
:doc:`/admin/upgrade-to-hardware-types` for the matching between classic
|
|
||||||
drivers and hardware types.
|
|
||||||
|
|
||||||
An interface can be set either separately:
|
An interface can be set either separately:
|
||||||
|
|
||||||
@ -202,10 +185,6 @@ and may be combined if desired.
|
|||||||
If no value is provided for some interfaces, `Defaults for hardware
|
If no value is provided for some interfaces, `Defaults for hardware
|
||||||
interfaces`_ are used instead.
|
interfaces`_ are used instead.
|
||||||
|
|
||||||
It's an error to try changing this field for a node with a *classic driver*,
|
|
||||||
and setting node's driver to classic one causes these fields to be set
|
|
||||||
to ``None`` automatically.
|
|
||||||
|
|
||||||
#. Update the node ``driver_info`` with the required driver properties, so that
|
#. Update the node ``driver_info`` with the required driver properties, so that
|
||||||
the Bare Metal service can manage the node:
|
the Bare Metal service can manage the node:
|
||||||
|
|
||||||
@ -575,8 +554,6 @@ UUID interchangeably:
|
|||||||
Defaults for hardware interfaces
|
Defaults for hardware interfaces
|
||||||
--------------------------------
|
--------------------------------
|
||||||
|
|
||||||
For *classic drivers* all hardware interface implementations (except for the
|
|
||||||
*network interface*) are hardcoded and cannot be changed.
|
|
||||||
For *hardware types*, users can request one of enabled implementations when
|
For *hardware types*, users can request one of enabled implementations when
|
||||||
creating or updating a node as explained in `Creating a node`_.
|
creating or updating a node as explained in `Creating a node`_.
|
||||||
|
|
||||||
|
@ -179,8 +179,8 @@ the same.
|
|||||||
boot of a node.
|
boot of a node.
|
||||||
|
|
||||||
#. The ironic node's deploy interface caches the instance image (in case of
|
#. The ironic node's deploy interface caches the instance image (in case of
|
||||||
``iscsi`` deploy interface or most ``pxe_*`` classic drivers), and kernel
|
``iscsi`` deploy interface), and kernel and ramdisk if needed (it is
|
||||||
and ramdisk if needed (it is needed in case of netboot for example).
|
needed in case of netboot for example).
|
||||||
|
|
||||||
#. The ironic node's power interface instructs the node to power on.
|
#. The ironic node's power interface instructs the node to power on.
|
||||||
|
|
||||||
@ -268,7 +268,6 @@ This process is how :ref:`iscsi-deploy` works.
|
|||||||
|
|
||||||
.. seqdiag::
|
.. seqdiag::
|
||||||
:scale: 75
|
:scale: 75
|
||||||
:alt: pxe_ipmi
|
|
||||||
|
|
||||||
diagram {
|
diagram {
|
||||||
Nova; API; Conductor; Neutron; HTTPStore; "TFTP/HTTPd"; Node;
|
Nova; API; Conductor; Neutron; HTTPStore; "TFTP/HTTPd"; Node;
|
||||||
@ -327,7 +326,6 @@ This process is how :ref:`direct-deploy` works.
|
|||||||
|
|
||||||
.. seqdiag::
|
.. seqdiag::
|
||||||
:scale: 75
|
:scale: 75
|
||||||
:alt: pxe_ipmi_agent
|
|
||||||
|
|
||||||
diagram {
|
diagram {
|
||||||
Nova; API; Conductor; Neutron; HTTPStore; "TFTP/HTTPd"; Node;
|
Nova; API; Conductor; Neutron; HTTPStore; "TFTP/HTTPd"; Node;
|
||||||
|
Loading…
Reference in New Issue
Block a user