From d2bd781a219770ebb1e911ca1acd044da0c2b021 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Mon, 31 Mar 2025 14:59:08 -0700 Subject: [PATCH] redfish: permit ipmitool-socat console for redfish usage We've had a couple asks about enabling ipmitool-socat console usage with the redfish hardware type. This doesn't pickup parameters from driver_info to figure out the IPMI username, password, and hostname/address, which turns out to be a rather invasive change to ipmi handling code and test code as well. Change-Id: I69dfeeec59317871c9f6a206966dd6a9d2ca9e3e --- doc/source/admin/console.rst | 7 ++++++- ironic/drivers/redfish.py | 5 ++++- ...edfish-permit-ipmi-socat-console-9ede51ab0bc9f17d.yaml | 8 ++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) create mode 100644 releasenotes/notes/redfish-permit-ipmi-socat-console-9ede51ab0bc9f17d.yaml diff --git a/doc/source/admin/console.rst b/doc/source/admin/console.rst index 89790122d8..b05c37b741 100644 --- a/doc/source/admin/console.rst +++ b/doc/source/admin/console.rst @@ -213,7 +213,12 @@ Node serial console ------------------- Serial consoles for nodes are implemented using `socat`_. It is supported by -the ``ipmi`` and ``irmc`` hardware types. +the ``ipmi``, ``irmc``, and ``redfish`` hardware types. + +.. NOTE:: + The use of the ``ipmitool-socat`` console interface on any hardware type + requires the ipmi connection parameters to be set into the ``driver_info`` + filed on the node. Serial consoles can be configured in the Bare Metal service as follows: diff --git a/ironic/drivers/redfish.py b/ironic/drivers/redfish.py index e9e4cafecc..0c1d166c9c 100644 --- a/ironic/drivers/redfish.py +++ b/ironic/drivers/redfish.py @@ -15,6 +15,7 @@ from ironic.drivers import generic from ironic.drivers.modules import agent +from ironic.drivers.modules import ipmitool from ironic.drivers.modules import noop from ironic.drivers.modules import noop_mgmt from ironic.drivers.modules.redfish import bios as redfish_bios @@ -78,4 +79,6 @@ class RedfishHardware(generic.GenericHardware): @property def supported_console_interfaces(self): """List of supported console interfaces.""" - return [graphical_console.RedfishGraphicalConsole, noop.NoConsole] + return [graphical_console.RedfishGraphicalConsole, + ipmitool.IPMISocatConsole, + noop.NoConsole] diff --git a/releasenotes/notes/redfish-permit-ipmi-socat-console-9ede51ab0bc9f17d.yaml b/releasenotes/notes/redfish-permit-ipmi-socat-console-9ede51ab0bc9f17d.yaml new file mode 100644 index 0000000000..44279b2535 --- /dev/null +++ b/releasenotes/notes/redfish-permit-ipmi-socat-console-9ede51ab0bc9f17d.yaml @@ -0,0 +1,8 @@ +--- +features: + - | + The ``ipmitool-socat`` console interface is now available for users of the + ``redfish`` hardware type. This was done as an enablement action for + operators to be able to leverage IPMI based Serial-over-Lan connections. + This option requires the IPMI parameters to be configured on the baremetal + node in addition to the ``redfish`` hardware type.