Add the noop management interface to the redfish hardware type

Apparently, we're hitting similar problems on some hardware that caused
us to add noop to ipmi. Maybe we should make it supported on all
hardware types, but right now it would break iLO. To reduce the scope
of this (hopefully backportable) patch, I'm limiting it to Redfish.

Change-Id: Ia44e5d83a7b2ce660be4822e7908dd75908ccbdd
Story: #2007713
Task: #39849
(cherry picked from commit 51eff6010f)
This commit is contained in:
Dmitry Tantsur 2020-05-26 12:56:32 +02:00
parent 5eea00db84
commit 995a246a83
4 changed files with 44 additions and 25 deletions

View File

@ -104,6 +104,41 @@ not compatible with them. There are three ways to deal with this situation:
.. note:: This feature is available starting with ironic 11.1.0 (Rocky
series, API version 1.45).
.. _static-boot-order:
Static boot order configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some hardware is known to misbehave when changing the boot device through the
BMC. To work around it you can use the ``noop`` management interface
implementation with the ``ipmi`` and ``redfish`` hardware types. In this case
the Bare Metal service will not change the boot device for you, leaving
the pre-configured boot order.
For example, in case of the :ref:`pxe-boot`:
#. Via any available means configure the boot order on the node as follows:
#. Boot from PXE/iPXE on the provisioning NIC.
.. warning::
If it is not possible to limit network boot to only provisioning NIC,
make sure that no other DHCP/PXE servers are accessible by the node.
#. Boot from hard drive.
#. Make sure the ``noop`` management interface is enabled, for example:
.. code-block:: ini
[DEFAULT]
enabled_hardware_types = ipmi,redfish
enabled_management_interfaces = ipmitool,redfish,noop
#. Change the node to use the ``noop`` management interface::
openstack baremetal node set <NODE> --management-interface noop
Unsupported drivers
-------------------

View File

@ -171,30 +171,7 @@ protocol version::
Static boot order configuration
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Some hardware is known to misbehave when changing the boot device through the
IPMI protocol. To work around it you can use the ``noop`` management interface
implementation with the ``ipmi`` hardware type. In this case the Bare Metal
service will not change the boot device for you, leaving the pre-configured
boot order.
For example, in case of the :ref:`pxe-boot`:
#. Via any available means configure the boot order on the node as follows:
#. Boot from PXE/iPXE on the provisioning NIC.
.. warning::
If it is not possible to limit network boot to only provisioning NIC,
make sure that no other DHCP/PXE servers are accessible by the node.
#. Boot from hard drive.
#. Make sure the ``noop`` management interface is enabled, see example in
`Enabling the IPMI hardware type`_.
#. Change the node to use the ``noop`` management interface::
openstack baremetal node set <NODE> --management-interface noop
See :ref:`static-boot-order`.
.. TODO(lucasagomes): Write about privilege level
.. TODO(lucasagomes): Write about force boot device

View File

@ -17,6 +17,7 @@ from ironic.drivers import generic
from ironic.drivers.modules import inspector
from ironic.drivers.modules import ipxe
from ironic.drivers.modules import noop
from ironic.drivers.modules import noop_mgmt
from ironic.drivers.modules import pxe
from ironic.drivers.modules.redfish import bios as redfish_bios
from ironic.drivers.modules.redfish import boot as redfish_boot
@ -36,7 +37,7 @@ class RedfishHardware(generic.GenericHardware):
@property
def supported_management_interfaces(self):
"""List of supported management interfaces."""
return [redfish_mgmt.RedfishManagement]
return [redfish_mgmt.RedfishManagement, noop_mgmt.NoopManagement]
@property
def supported_power_interfaces(self):

View File

@ -0,0 +1,6 @@
---
fixes:
- |
To provide a workaround for incorrect boot order problems on some hardware,
the ``redfish`` hardware type now supports the ``noop`` management
interface, similarly to IPMI and SNMP.