Merge "Align iRMC driver with Ironic's default boot_mode" into stable/xena

This commit is contained in:
Zuul 2023-10-26 15:00:35 +00:00 committed by Gerrit Code Review
commit febf9d895d
3 changed files with 31 additions and 7 deletions

View File

@ -123,11 +123,6 @@ Configuration via ``driver_info``
the iRMC with administrator privileges.
- ``driver_info/irmc_password`` property to be ``password`` for
irmc_username.
- ``properties/capabilities`` property to be ``boot_mode:uefi`` if
UEFI boot is required.
- ``properties/capabilities`` property to be ``secure_boot:true`` if
UEFI Secure Boot is required. Please refer to `UEFI Secure Boot Support`_
for more information.
* If ``port`` in ``[irmc]`` section of ``/etc/ironic/ironic.conf`` or
``driver_info/irmc_port`` is set to 443, ``driver_info/irmc_verify_ca``
@ -201,6 +196,22 @@ Configuration via ``driver_info``
will be ignored. If you want to set passwords, please update
python-scciclient to some newer version (>= 0.11.3).
Configuration via ``properties``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Each node is configured for ``irmc`` hardware type by setting the following
ironic node object's properties:
- ``properties/capabilities`` property to be ``boot_mode:uefi`` if
UEFI boot is required, or ``boot_mode:bios`` if Legacy BIOS is required.
If this is not set, ``default_boot_mode`` at ``[default]`` section in
``ironic.conf`` will be used.
- ``properties/capabilities`` property to be ``secure_boot:true`` if
UEFI Secure Boot is required. Please refer to `UEFI Secure Boot Support`_
for more information.
Configuration via ``ironic.conf``
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -27,9 +27,9 @@ from ironic.conductor import task_manager
from ironic.conductor import utils as manager_utils
from ironic import conf
from ironic.drivers import base
from ironic.drivers.modules import boot_mode_utils
from ironic.drivers.modules import ipmitool
from ironic.drivers.modules.irmc import common as irmc_common
from ironic.drivers import utils as driver_utils
irmc = importutils.try_import('scciclient.irmc')
@ -255,7 +255,7 @@ class IRMCManagement(ipmitool.IPMIManagement):
"Invalid boot device %s specified.") % device)
uefi_mode = (
driver_utils.get_node_capability(task.node, 'boot_mode') == 'uefi')
boot_mode_utils.get_boot_mode(task.node) == 'uefi')
# disable 60 secs timer
timeout_disable = "0x00 0x08 0x03 0x08"

View File

@ -0,0 +1,13 @@
---
fixes:
- |
Modify iRMC driver to use ironic.conf [deploy] default_boot_mode to determine
default boot_mode.
upgrades:
The default value of ``[deploy] default_boot_mode`` is ``bios`` so existing
iRMC nodes without an explicitly set ``capabilities`` ``boot_mode`` will not
change from boot mode ``bios``.
However, changing ``[deploy] default_boot_mode`` will now have an effect on
existing nodes, and explicitly setting ``capabilities`` ``boot_mode``
on existing nodes without any ``boot_mode`` set is recommended.