Commit graph

14357 commits

Author SHA1 Message Date
Zuul
118d2e3284 Merge "Silence loud logging when no NetworkAdapters" 2026-01-10 20:33:14 +00:00
Zuul
4d061bea72 Merge "Add release mapping alias for 2025.2" 2026-01-10 18:01:37 +00:00
Zuul
e76ff8222c Merge "fix: bios fields could not be fetched via the API" 2026-01-07 22:11:52 +00:00
Julia Kreger
a0968f8413 Add release mapping alias for 2025.2
When we create major release mappings, we should not forget to
include the alias mapping so users don't have to look it up
separately.

Change-Id: If1970f0d63be220c45bec272187502954ced2adf
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2026-01-07 10:42:16 -08:00
Zuul
c2b5580b75 Merge "fix: report a better error in validate-interfaces" 2026-01-07 15:20:01 +00:00
Doug Goldstein
aa748ea919
fix: bios fields could not be fetched via the API
In Ie86ec57e428e2bb2efd099a839105e51a94824ab this code was added but it
appears to have been targeting an earlier version of the spec index
Ib93e62076207e3e25960111bd0b46b83fe481c69. Up to version 8 of the spec
there is mention of a 'registry' DB field which would have been added
and then parsed in a get_registry_fields() helper method. But it was
ultimately dropped. This bit of code still contained those references
resulting in the endpoint returning errors.

Closes-Bug: 2137596
Change-Id: I79ed016edd2ea6bfb94bf303f1e815b4d9b16dfd
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2026-01-06 16:37:54 -06:00
Jay Faulkner
18bedb69fd Silence loud logging when no NetworkAdapters
This reduces logging when NetworkAdapters are missing from a redfish bmc
from warning level to debug level. This resolves an issue where loud
logging was reporting on hardware without redfish NetworkAdapters
support.

Generated-by: Claude-code 2.0
Closes-bug: #2133727
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: If48757c6ec4a1f7978bd973830020161c55922e4
2026-01-06 10:31:13 -08:00
Doug Goldstein
d56a70e8ab
fix: report a better error in validate-interfaces
When validate-interfaces runs if there is no interfaces key then we
would just have a KeyError exception that would be logged to the node.
This provides a clearer message back as to why this happened.

Change-Id: I307848a9a1733ecff534ae37541e59465b4e96b7
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2026-01-06 09:04:26 -06:00
Takashi Kajinami
5f59aa0b28 Use common utility to wrap IPv6 address
A similar function is provided by oslo_utils.netutils .

Change-Id: I6b24ab9deedf9e9802ef1bb5701ddeea91caed69
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-26 03:40:10 +00:00
Takashi Kajinami
8200f0f5df Adjust url to pull dnsmasq
It seems http:// is quite unstable while git:// is stable.

Change-Id: Iedd7356eb3777ce829961ee6392fbb677f26ae22
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-24 14:45:12 +00:00
Zuul
6a18c386a6 Merge "Use oslo.config to split [console] port_range" 2025-12-22 21:02:58 +00:00
Takashi Kajinami
9c5fb01f39 Use oslo.config to split [console] port_range
Change-Id: I5687c400b3aa7a8c99e4bfb09ec283ea8808cfd2
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-20 15:49:05 +00:00
Takashi Kajinami
b51930c0d2 Validate [molds] storage while loading config files
... instead of only documenting the valid choices.

Change-Id: I5f73da7f69242ec21dd60da36e7b176213888db1
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-20 19:38:05 +09:00
Zuul
534e9ff6b8 Merge "Support filtering portgroups by shard" 2025-12-19 16:51:36 +00:00
Zuul
3b4e3801a1 Merge "Remove ovn vtep support" 2025-12-18 23:10:55 +00:00
Zuul
0b6126ce28 Merge "OCI Basic Auth/Tag access" 2025-12-18 22:57:32 +00:00
Zuul
d069f2a886 Merge "fix redfish inspect system product name" 2025-12-18 21:01:37 +00:00
Jay Faulkner
4b58b8a823 Support filtering portgroups by shard
This was somehow missed during initial implementation. Adding ability to
filter portgroup by shard. This was mostly vibe coded with claude, with
me interupting to suggest better implementations when it did something
silly. Tested manually by a human using fake drivers :).

Closes-bug: #2134566
Generated-by: Claude code (claude)
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: Ic67c02763c2d832f616dc4526e4be891d639b976
2025-12-18 11:24:34 -08:00
Zuul
92ef93c384 Merge "fix: iPXE boot interface PXE capability detection" 2025-12-18 17:54:36 +00:00
Zuul
50aa083013 Merge "OCI: Add an option to fallback to HTTP" 2025-12-18 16:31:46 +00:00
Milan Fencik
9e47609f00 fix: iPXE boot interface PXE capability detection
The neutron network interface's add_ports_to_network() function only
checked for 'pxe_boot' capability when determining PXE capability,
but iPXE is also a form of PXE booting and should be treated the
same way. This caused inconsistent behavior for boot interfaces like
'http-ipxe' that have 'ipxe_boot' capability but not 'pxe_boot'
capability.

Without this fix, iPXE boot interfaces were incorrectly treated as
non-PXE capable, causing the neutron interface to create ports for
all baremetal ports with local_link_connection info during cleaning
operations, regardless of their pxe_enabled setting.

This change adds 'pxe_boot' capability to both iPXEBoot and
iPXEHttpBoot classes, ensuring that iPXE boot interfaces are
correctly recognized as PXE-capable.

Additionally, this adds the missing pxe_boot capability check to
the remove_ports_from_network() function, which was previously
missing this logic entirely. This ensures consistent port creation
and deletion behavior, preventing orphaned neutron ports after
cleaning operations.

Change-Id: I7721f917fb723e8a4cef69e0f7be1ece0238d7ed
Signed-off-by: Milan Fencik <milan.fencik@rackspace.co.uk>
2025-12-18 12:35:48 +00:00
Zuul
4bef17b9bc Merge "fix loading of built-in inspection rules" 2025-12-18 07:37:56 +00:00
Doug Goldstein
555c019bb7
fix loading of built-in inspection rules
The built-in inspection rules cannot be loaded because the jsonschema
validates them against the expected API however the built-in rules had a
'built-in' key that is not part of the schema and included the 'scope'
key which was ultimately dropped before inspection rules support landed.
The built-in rules also did not validate that the data was a list of
rules before attempting to utilize it giving an incorrect error.

Closes-Bug: 2136776
Change-Id: I36c290c9f92189281e11633e9a587918b0699ae3
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-17 16:44:09 -06:00
Zuul
1fecbce515 Merge "fix: inspection rules docs to match the code" 2025-12-17 19:48:01 +00:00
Zuul
78323a9016 Merge "update inspection rules docs and code to the same order" 2025-12-17 19:47:56 +00:00
Doug Goldstein
2c118a4d4c
fix: inspection rules docs to match the code
These inspection rules actions are implemented but were not documented
so add some documentation for them. The redfish inspection interface
also supports inspection rules.

Change-Id: I65894191affd9171bf68dc9b15725ed34a9724f9
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-17 10:18:52 -06:00
Afonne-CID
c11e12a45b Omit CapacityBytes for Redfish RAID MAX size_gb
When size_gb='MAX' is specified, Ironic was calculating the maximum
volume size and including it in ``CapacityBytes``. This calculated size
doesn't account for controller metadata overhead, causing iLO and other
controllers to reject the request with UnsupportedOperation.

Fix by omitting ``CapacityBytes`` from the Redfish payload when
size_gb='MAX', allowing the controller to calculate the optimal size
automatically and the actual volume size is queried and stored after
creation via ``update_raid_config()``.

Unit tests generated by AI.

Closes-Bug: #2132936
Assisted-by: Claude Sonnet 4.5
Change-Id: Ica2e31783b18fc2306369b0ee0d467aca17d4975
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-17 13:39:23 +01:00
Doug Goldstein
ade41cae47
fix redfish inspect system product name
The intention of this code is to read the system product name which is
stored in the model field per the Redfish spec and not in the name field
which will always store the name of the object we are working with. This
results in the value always being 'System'.

Closes-Bug: 2136233
Change-Id: I375fbe27253d7965e458be7b147d5b72cffa4e89
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-16 16:55:13 -06:00
Doug Goldstein
0255cc98a7
update inspection rules docs and code to the same order
Updated the docs and code to match the same order and to break out each
operation like it is in the code. Fixed incorrect indent of an example.
This is just mechanical to make visual inspection of the docs to the
code easier.

Change-Id: Ic96c5a1993d20347968c23c60393a4cde2de9a0c
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-16 16:42:51 -06:00
Zuul
6362fa4663 Merge "Trait Based Networking Simulator" 2025-12-16 20:37:00 +00:00
Zuul
1c1d885e8e Merge "Use per-node external_http_url for configdrive ISO" 2025-12-16 09:33:14 +00:00
Zuul
6fec6712f8 Merge "Add Redfish LLDP data collection support to the Redfish inspection interface." 2025-12-16 00:20:45 +00:00
Julia Kreger
52300e0a62 OCI Basic Auth/Tag access
In order to support the deployment of OCI images utilizing bifrost,
we also need to explicitly support basic authentication.

This has been extended to support inclusion of the authentication
credentials into the pull secret string, and fallback on the deploy
interface settings for static configuration. While this will likely
never be perfect, it is at least a forward step to better supporting
a variety of use cases.

Additionally, doing some of this highlighted some extraneous guard
rail style checks which exist elsewhere in the overall image handling
flow. A exeception check was added to prevent tag based deployments
from failing because the existing code structure of the guard rail
checks cannot gain the context around basic auth.
In part becasue the check directly uses the image_source as well,
as opposed to any other state data which is presently available
in deploy_utils when the image information is identified.
That situation highlights why additional fixes are needed,
but bug 2133885 was opened for that separately.

Claude also helped me out with the unit tests.

Assisted-By: Claude Code - Claude Sonnet 4.5
Change-Id: I13f4d5cd8b98ad88e7b6088c79c7b014b6461668
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025-12-15 13:13:52 -08:00
Julia Kreger
595258da9f OCI: Add an option to fallback to HTTP
While working on trying to get OCI support in CI, I realized that the
default pattern setup with Bifrost was to setup a registry *without*
HTTPS.

This is different from the common practice and expectation of operational
OCI registries always utilizing HTTPS as the underlying transport mechanism.

The net result is an idea of offering the ability to "fall back" to HTTP
automatically, and make it a configuration option which needs to be
chosen by an operator.

The code pattern is such that the invocation of the client code paths
automatically identify the SSLError, and then attempt to fallback
to HTTP, while also saving the fallback on the class instance so the
additional URL generation calls for the underlying HTTP(S) client
gets an appropriate URL.

By default, this new option is disabled.

Claude helped with the tests, which was nice of it.

Assisted-By: Claude Code - Claude Sonnet 4.5
Change-Id: I3f28c8d6debe25b63ca836d488bc9fd8541b04d9
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025-12-15 13:08:50 -08:00
Zuul
9c00256b3b Merge "fix: agent inspection hooks failure does not clean up" 2025-12-15 10:17:53 +00:00
Zuul
bdbb371ecd Merge "Use native override of RequestContext.from_environ" 2025-12-15 10:15:34 +00:00
Zuul
7fe20fe31f Merge "Replace remaining usage of policy.json" 2025-12-15 01:11:35 +00:00
Zuul
078728aa34 Merge "doc: trivial: Quick revision of README" 2025-12-15 01:11:24 +00:00
Zuul
6ed4f6f561 Merge "remove sushy_oem_idrac usage" 2025-12-15 01:11:18 +00:00
Takashi Kajinami
2570f7559f Use native override of RequestContext.from_environ
The from_environ method provides the native interface (by keyword
arguments) to pass additional arguments to build a RequestContext
instance.

Also fix the ignored kwargs.

Change-Id: Id02e2212e1877c7913218d87188ba8b359ce2757
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-14 19:38:10 +09:00
Zuul
aa8ae96017 Merge "Move check_image_size to deploy_utils" 2025-12-14 08:11:28 +00:00
Doug Goldstein
30113a4c23
fix: agent inspection hooks failure does not clean up
When the using the agent inspector interface and an exception happens
during execution of the hook, the node is not cleaned up resulting in
stale Neutron ports and ramdisk files.

Closes-Bug: 2135265
Change-Id: I69ceec12fc0beea586176a768d864a22261cdb93
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-12 15:23:57 -06:00
Zuul
42883161cb Merge "docs: a little more clarity around the state of ipxe+uefi" 2025-12-12 19:00:01 +00:00
Zuul
a4250a6d62 Merge "Include all relevant error messages in exception" 2025-12-12 18:17:01 +00:00
Nidhi Rai
e273bb958a Add Redfish LLDP data collection support to the Redfish inspection interface.
- _collect_lldp_data(): Collects LLDP data from Redfish NetworkAdapter Ports via Sushy library, walking the Chassis/NetworkAdapter/Port hierarchy
- Integration with inspect_hardware(): LLDP collection is called during hardware inspection and results are stored in plugin_data['parsed_lldp']

The implementation supports standard Redfish LLDP data from Port.Ethernet.LLDPReceive fields and can be extended by vendor-specific implementations (like,  Dell DRAC OEM endpoints) through method overriding.

Change-Id: I25889b2a2eb8f6a2d796dfbeb598875a7c07b22c
Signed-off-by: Nidhi Rai <nidhi.rai94@gmail.com>
2025-12-12 09:40:00 +05:30
Takashi Kajinami
dcc668fae9 Replace remaining usage of policy.json
It was deprecated long ago in favor of policy.yaml and is being removed
soon.

Change-Id: I1a5804cd15e1bc79ad1dc9900e61584902ef4468
Signed-off-by: Takashi Kajinami <kajinamit@oss.nttdata.com>
2025-12-12 01:40:56 +09:00
Zuul
530c88757a Merge "[api-ref] Fix api-ref to mention list port by cg" 2025-12-11 14:46:30 +00:00
Doug Goldstein
b47afbca31
remove sushy_oem_idrac usage
Ironic now depends on a minimum version of sushy that has integrated
sushy_oem_idrac into the code base so there is no point in falling back
to pulling in sushy_oem_idrac so remove the path.

Change-Id: I17217e0fe07b4819863706f473af12d87da46429
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-11 08:19:20 -06:00
Zuul
9fdd30545c Merge "is-empty inspection rule to handle missing field" 2025-12-11 12:15:42 +00:00
Zuul
f09d80cce5 Merge "Separate states code from states constants" 2025-12-11 05:33:25 +00:00