When nodes use out-of-band management interfaces (Redfish, iDRAC
Redfish, iLO, iRMC), the BMC address is already known and configured
in Ironic. This change adds an 'agent_skip_bmc_detect' flag to the
lookup API response config that tells the agent to skip BMC address
detection via ipmitool.
This reduces deployment time and avoids unnecessary ipmitool calls
during hardware inventory collection.
The flag is automatically set based on the node's management_interface
and is included in the config section of the lookup response.
Assisted-By: Claude Sonnet 4.5
Change-Id: I6a432db3eb238894e0ed2676243ce69ec300a9eb
Signed-off-by: Riccardo Pittau <elfosardo@gmail.com>
... because ironic-inspector has been retired.
Change-Id: Id5568cbac8f559821dffd004ab9b6db3e4f4bca6
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
Our most basic images require 2500mb of ram, minimum, for fake nodes.
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: I0939f6fbb8dfd91c4e3f20b3a785e6acc9feb9bb
There is no way to migrate inspection data automatically.
This script documents one of the ways how to copy data
between two Swift buckets.
Change-Id: I4a86faab5e7abef17064e3c716dc17b6a2f21f39
Signed-off-by: Jakub Jelinek <jakub.jelinek@cern.ch>
Assisted-by: Claude 4.5 Sonnet (Anthropic AI)
The iRMC hardware type for Fujitsu PRIMERGY servers has been
unmaintained for an extended period.
This change marks the iRMC hardware type and all associated
interfaces (bios, boot, inspect, management, power, raid, and
vendor) as unsupported. All configuration options in the [irmc]
section have been marked as deprecated for removal. The
documentation has been updated with a prominent warning about
the deprecation.
Users of the iRMC hardware type should begin planning migration to
alternative hardware types. The driver and all associated code will
be removed in a future Ironic release.
Change-Id: I78b822e5fe3bd1ce4d7ea410c4569d6b830dc214
Signed-off-by: Jacob Anders <janders@redhat.com>
Assisted-by: Claude 4.5 Sonnet (Anthropic AI)
This adds node.instance_name as a top level field
Additionally, to provide forwards-compatability for nova clients,
we will automatically set node.instance_name if
node.instance_info.display_name is being set.
Tested the following in devstack, using manual CURL api calls:
- Viewing an instance_name via GET /v1/nodes/node-name
- Adding an instance_name
- Clearing instance name on undeploy
- Setting an instance_name via PATCH /v1/nodes/node-name
- Setting a instance_info/display_name and validating it sets instance_name
- Setting a instance_info/display_name when instance_name already exists and
validating it DOES NOT OVERRIDE existing instance_name
- node.instance_name not returned for API version < our micro version
- querying /v1/nodes with ?instance_name=somename
- (cid) Sort of fully tested integrated with nova by observing CI logs
- (jayf) Added missing comments around API versions, and added a reminder
comment
Generated-By: Claude code
Change-Id: Ic24b2e8dbe88c59f0df52a0f5581d48492ba8cd7
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
Signed-off-by: Jay Faulkner <jay@jvf.cc>
When plugging a baremetal port in using the 'neutron' interface, send
the 'physical_network' value of the baremetal port to Neutron as part of the
binding_profile for the port. This can be useful for VXLAN underlay
connected machines where the networks in Neutron are VXLAN networks
which then have segments on them that are VLAN based segments which bind
the VNI to a VLAN for attachment for the node to connect to the VNI.
Ref: https://bugs.launchpad.net/ovn-bgp-agent/+bug/2017890
Ref: https://bugs.launchpad.net/neutron/+bug/2114451
Ref: https://review.opendev.org/c/openstack/neutron-specs/+/952166
Partial-Bug: #2105855
Assisted-by: Claude Code 2.0
Change-Id: I6e0185e203489676d530e6955929997f4871b8fa
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
This change adds a NoDeploy class to allow for a truly minimal
deployment interface with no-op implementations for all required
methods.
Closes-Bug: #2106550
Change-Id: Ic6faf34860efef9165ad868d57972cd5007eacd4
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
We likely need to begin to strip out the undionly.kpxe stuffs as well,
but first lets see what people think with this and we can go in that
direction.
Change-Id: I09f15e87372390219193c93ba3b5d309f29df900
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
The tests create the portgroup and then create ports in the DB while
setting the portgroup_id on the created port. The result is that the
physical_network field is not kept in sync on the portgroup with the
port's value as is expected since I5a9d9c19182b232bc1b8446644cab0bf6d68d139
resulting in inconsistent data for the tests. Since the tests only
confirm that the portgroup physical_network is of the expected value,
which is empty so they pass.
Change-Id: Ied1f5c884652ff4e7ddeb748199dbf20ebc879bd
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
The code intended to not fail when a Port object was missing but to
instead skip the handling of that node but instead there is an unhandled
exception because the get_by_address() method throws PortNotFound
instead of returning None when a port couldn't be found.
Change-Id: I04dfa09ada7e6a9d22ba16051cb5737daf3bc668
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
The data has not been stored as JSON which caused issues.
Closes-bug: #2130790
Change-Id: I1d13fb227e6c3ba713dac58c6e02a199f589209f
Signed-off-by: Jakub Jelinek <jakub.jelinek@cern.ch>
... because usage of a string value is deprecated since oslo.middleware
3.0.0[1].
[1] 40135b76a92cef4197e2f68be46fd129d41630c6
Change-Id: I3d6b67c221f9411cad59b7e6b9b3abf89c5508a8
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
Validate ``ipmi_address`` field for valid IP addresses or hostnames
during node validation.
Closes-Bug: #1666223
Change-Id: Ie33e7aed7521b552efcd851228072f43ebfec620
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
The current containerised graphical console approach has a Selenium
script managing a Chrome browser session. This change replaces that with
firefox and a custom extension to perform the required actions to login
and load the BMC console. This supports the same vendors as the previous
approach (iDRAC, iLO, Supermicro).
This change is required by Red Hat as Chrome is not packaged in RHEL.
However switching to firefox has allowed a more robust and featureful
implementation so it is presented here on its own merits.
This is implemented with bash, calling out to dedicated python scripts
for these specific tasks:
- Detecting which vendor specific javascript to use for the
redfish-graphical driver
- Building the required certificate fingerprint when app_info.verify_ca
is false, which is written to the profile's cert_override.txt
- Building a custom policy.json which is specific to the BMC and vendor
implementation.
Functional differences with the chrome/selenium version
- Firefox kiosk mode has a more locked-down environment, including
disabling context menus. This means the brittle workaround to disable
them is no longer required.
- Firefox global policy allows the environment to be locked down
further, including limiting accessing to all URLs except the BMC.
- There is now a dedicated loading page which can show status updates
until the first BMC page loads. This page shows error messages if any
of the early redfish calls fail.
- VNC client sessions are now shared with multiple clients, and firefox
will be started on the first connection, and stopped when the last
connection ends.
- Starting Xvfb is now deferred until the first VNC client connection.
This results in a never-connected container using 5MB vs 30MB
once Xvfb is started. Starting Xvfb has ~1sec time penality on first
connection.
- The browser now runs in a dedicated non-root user
- All redfish consoles now hide toolbar elements with a CSS overlay rather than
simulating other methods such as clicking the "Full Screen" button.
- ilo6/ilo5 detection is now done by a redfish call and the ilo5 path
has less moving parts.
Change-Id: Ib42704a016dc891833a0ddbeae8054cac2c57d4d
Signed-off-by: Steve Baker <sbaker@redhat.com>
Assisted-By: gemini
Log the unit status and journal log when systemctl start fails for a
console container.
Also before the console is stopped, call journalctl for that unit. If
debug is enabled then the journal output will be logged.
Additionally, after a container is started, attempts are made to open a
socket to the VNC port and read some data. There is a delay between the
container starting and x11vnc actually listening and this race can be
triggered in automated tests, so this delays changing the console
enabled state until it is *really* ready.
Change-Id: I2c4867b6773f4f4eaa8b98e50a63881f0f4d08b0
Signed-off-by: Steve Baker <sbaker@redhat.com>
Adds a new category field to the portgroup object. Foundational
work for first milestone of trait based port scheduling.
Depends-On: https://review.opendev.org/c/openstack/ironic-tempest-plugin/+/955799
Change-Id: I5100144a330602996c27ed18d2bbde09be6e9571
Signed-off-by: Clif Houck <me@clifhouck.com>
Treat HTTP 400 and 409 errors as success when the node is already
in the target power state, preventing deployment failures from
race conditions between power state change completion and state
verification timeout.
Also refresh system state to get current power state from BMC
instead of using potentially stale cached data.
Assisted-By: Claude Sonnet 4.5
Change-Id: Id66ff9c70a9dd6969e3ac7fc74328dfc6e0431bd
Signed-off-by: Riccardo Pittau <elfosardo@gmail.com>