Commit graph

14319 commits

Author SHA1 Message Date
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
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
Jay Faulkner
2622864b70 [api-ref] Fix api-ref to mention list port by cg
Ports can be listed by conductor group since Flamingo, but due to an
error in the api-ref update, we weren't properly documenting it.

Change-Id: I98b329897946ef05ff82df5f1683075f17ecd3c0
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
Signed-off-by: Jay Faulkner <jay@jvf.cc>
2025-12-10 11:17:07 -08:00
cid
7e4ffe7c80 Include all relevant error messages in exception
Retry failures report only the last error which could be misleading,
so include all relevant errors in the final exception.

Closes-Bug: #2098977
Change-Id: I8c0fb0328a6b3ee084813961d9a959af996a6dcb
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-10 19:31:27 +01:00
Afonne-CID
ca0ee56ccc is-empty inspection rule to handle missing field
Pass the ``is-empty`` rule check when checking fields that don't
exist in the inventory.

Closes-Bug: #2132346
Change-Id: I177740dd3a8558ed357af22c581e5cbf1c3e862a
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-10 15:32:29 +01:00
Afonne-CID
041f0a586d Move check_image_size to deploy_utils
Move the image size check earlier in the deploy flow so it runs only
when it matters and reuses already-fetched image info.

Closes-Bug: #2133885
Change-Id: I40518762e3032bbdcfe1d8e7e929147a761a95f8
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-10 15:14:15 +01:00
Zuul
4c5cbeb1ef Merge "Add PCIe function fields to redfish inspection" 2025-12-10 04:11:33 +00:00
Zuul
a7dc759140 Merge "fix: do not allow nested paths in loader_file_paths" 2025-12-09 22:41:27 +00:00
Zuul
6ed4bfa5d8 Merge "Trivial: Fix instance_name policy name" 2025-12-09 21:33:34 +00:00
Zuul
f0d8016bdb Merge "Add documentation regarding the is_root_volume RAID config" 2025-12-09 19:53:10 +00:00
Zuul
d32a13212a Merge "Implement networking service RPC API methods" 2025-12-09 17:33:02 +00:00
Doug Goldstein
a382b21e6e
fix: do not allow nested paths in loader_file_paths
The intention was not to allow nested paths here but instead to only use
base paths to files we will serve up.

Change-Id: I877a7da4ed41bceb9f6f4ee229e8e9dc938d9e5b
Signed-off-by: Doug Goldstein <cardoe@cardoe.com>
2025-12-09 09:43:13 -06:00
Jay Faulkner
c69caf28e8
Separate states code from states constants
Currently, the nova virt driver for ironic has a file containing nothing
but our states as constants. A recent bug was caused, in part, by these
not being properly updated. The goal here is to move ironic state
machine code and constants into separate files -- once merged, I will
update the nova driver to use a copy of this file (and add a comment to
the file here saying it's synced over there). This should help prevent
this kinda issue in the future and in the long run cause less duplicated
work.

Assisted-by: Claude Code (claude)
Signed-off-by: Jay Faulkner <jay@jvf.cc>
Change-Id: Ief4533b69899c893f150ef3a7006fb99f7e42964
2025-12-08 14:17:14 -08:00
Zuul
04aa88aae4 Merge "Use new bifrost ci job name" 2025-12-06 19:03:52 +00:00
Afonne-CID
2756b8e81b Trivial: Fix instance_name policy name
Change-Id: Ie9c8eb16747a7abd21fb08cf8d34226c22157d89
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-06 01:09:44 +01:00
Zuul
d2d4c57ffa Merge "Add a kubernetes provider for console container" 2025-12-05 16:38:18 +00:00
Zuul
6b6b932714 Merge "Switch graphical console image to ubuntu by default" 2025-12-05 16:38:12 +00:00
Zuul
ba763f199e Merge "Drop xinetd/tftpd on CentOS 9" 2025-12-05 16:30:11 +00:00
Nidhi Rai
33bfc1e281 Add PCIe function fields to redfish inspection
This patch adds support for extracting PCIe function identification
fields (device_class, device_id, vendor_id, subsystem_id,
subsystem_vendor_id, revision_id) during redfish hardware inspection.

The fields are extracted from PCIe functions and stored in a flat
structure in the inspection inventory, making them available for
inspection rules and hardware identification.

Also adds test coverage including edge cases like
missing PCIe devices, empty collections, and partial data scenarios.

[Removed This changes]Additionally adds system.model field extraction with proper None
handling and test coverage.

Depends-On: I1ec49e35a53abb8efdae639629cd819ccabbe620
Change-Id: I218c3b3865c07cc2c7fffc21a766cdef36759cd8
Signed-off-by: Nidhi Rai <nidhi.rai94@gmail.com>
2025-12-05 11:53:29 +05:30
Zuul
9d572791e4 Merge "Add a conductor liveness check utility script" 2025-12-05 02:04:20 +00:00
Zuul
977300d456 Merge "Generate network plan based on trait based networking config" 2025-12-04 22:55:37 +00:00
Zuul
674d21bf4c Merge "split error messages in image cache for more clarity" 2025-12-04 20:22:23 +00:00
Allain Legacy
278cf5f963 Implement networking service RPC API methods
Implements the core business logic for the networking service manager,
replacing stub implementations with fully functional network operations:

- Port configuration methods (update_port, reset_port) with VLAN
  validation and switch driver integration
- Port channel methods (update_portchannel, delete_portchannel) with
  placeholder implementations for future support
- Switch discovery and information retrieval (get_switches)
- Decorator-based serialization for thread-safe switch operations
- Decorator-based VLAN validation against allowed/denied lists
- Dynamic switch driver selection and management using the driver
  framework from the previous commit

This implementation uses the driver factory and adapter infrastructure
to dynamically load and manage switch drivers, enabling support for
multiple switch vendors. The manager coordinates network operations
across distributed switches while maintaining thread safety through
optional per-switch operation serialization.

Related-Bug: 2113769
Assisted-by: Claude/sonnet-4.5
Change-Id: I0722b116d29cddae02a4a79a4ea4b767709ecad2
Signed-off-by: Allain Legacy <alegacy@redhat.com>
2025-12-04 15:06:38 -05:00
Steve Baker
28168c4168 Add a kubernetes provider for console container
A new ``ironic.console.container`` provider is added called
``kubernetes`` which allows Ironic conductor to manage console
containers as Kubernetes pods. The kubernetes resources are defined in
the template file configured by ``[vnc]kubernetes_container_template``
and the default template creates one secret to store the app info, and
one pod to run the console container.

It is expected that Ironic conductor is deployed inside the kubernetes
cluster. The associated service account will need roles and bindings
which allow it to manage the required resources (with the default
template this will be secrets and pods).

This provider holds the assumption that ironic-novnc will be deployed in
the same kubernetes cluster, and so can connect to the VNC servers via
the pod's ``status.hostIP``.

Assisted-By: gemini
Change-Id: Ib91f7d7c15be51d68ebf886e44efaf191a14437b
Signed-off-by: Steve Baker <sbaker@redhat.com>
2025-12-04 11:25:05 -08:00
Steve Baker
856238c56a Switch graphical console image to ubuntu by default
The centos Containerfile still exists and the launch scripts have been
adapted to work on both distros.

The ubuntu container has been tested with noble. The container built
in the CI jobs is bound to the version of ubuntu which the host is
running, which will provide functional testing validation when jobs are
moved to newer releases.

Change-Id: I1954e418543acf939bf65189121484e038f3737c
Signed-off-by: Steve Baker <sbaker@redhat.com>
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025-12-04 11:24:43 -08:00
Clif Houck
68277dd05a
Generate network plan based on trait based networking config
Change-Id: I46c55b424f95df8f811c963ec75e5820124e630f
Signed-off-by: Clif Houck <me@clifhouck.com>
2025-12-04 12:26:56 -06:00
Jakub Jelinek
e4ac3dd76b Add documentation regarding the is_root_volume RAID config
The functionality has been implemented in the change:
https://review.opendev.org/c/openstack/ironic-python-agent/+/963200
This change documents the possibility to specify the is_root_volume
parameter of the target_raid_config of a node, which either makes
it the root volume, or prevents it from becoming a root volume.

Change-Id: I72fab180eaf361f9bedb04a1a24dfb9bcdf230cf
Signed-off-by: Jakub Jelinek <jakub.jelinek@cern.ch>
2025-12-04 13:04:07 +00:00
Allain Legacy
05b9dc22c7 Add networking driver framework infrastructure
Implements the foundational driver framework for the networking service,
providing abstraction and loading mechanisms for network switch drivers:

- Driver factory for loading and managing switch driver plugins using
  stevedore, with support for multiple concurrent drivers
- Driver adapter for preprocessing switch configuration files and
  managing driver lifecycle
- Driver translators for converting between ironic network data formats
  and driver-specific configuration formats
- Utility functions for network configuration validation, VLAN range
  parsing, and RPC transport detection

This framework provides the foundation for integrating various network
switch drivers (e.g., networking-generic-switch) with the ironic
networking service. The framework is used by the manager implementation
added in the subsequent commit.

Related-Bug: 2113769
Assisted-by: Claude/sonnet-4.5
Change-Id: Ifb6e662ef59f9e12aad7c34356d2e78c3ebb4143
Signed-off-by: Allain Legacy <alegacy@redhat.com>
2025-12-03 07:38:12 -05:00
Steve Baker
194b638c72 Add a conductor liveness check utility script
This script runs a liveness check on the configured conductor hostname
and will fail if the conductor is not online. Its intended purpose is to
be used as a kubernetes pod startup or liveness probe for the conductor
container.

Change-Id: I88288e0d7a1da4ec99f31c20771299cce2499bf0
Signed-off-by: Steve Baker <sbaker@redhat.com>
2025-12-03 10:22:09 +13:00
Zuul
7495f77258 Merge "Trivial: Fix typo in documentation" 2025-12-02 15:49:38 +00:00
Afonne-CID
1b2504428c Trivial: Fix typo in documentation
Change-Id: Ie43b754f87f9fa0e6e26c17c9a1f30936b96f868
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-02 14:50:46 +01:00
Afonne-CID
91159a4394 Drop xinetd/tftpd on CentOS 9
Drop xinetd/tftpd on CentOS 9 to fix TFTP setup failure

Closes-Bug: #2098533
Assisted-by: Claude 4.5 Sonnet
Change-Id: I5ed12279d446839587c512194d1230a27622eb00
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-12-02 14:49:39 +01:00
Zuul
2ba9e6b598 Merge "fix: ensure that the bootloader path exists" 2025-12-01 16:10:28 +00:00
Zuul
792bc9bed0 Merge "Add standalone networking service for ironic" 2025-12-01 14:20:32 +00:00
Riccardo Pittau
c789f480b3 Use new bifrost ci job name
We only use DIB based ipa ramdisks and changed bifrost jobs
names.

Depends-On: I569a766826405513f7beab5d45a52a8bbf42ddfd
Change-Id: I8dc17087d595872d660c9a90c8dbafef268ad02a
Signed-off-by: Riccardo Pittau <elfosardo@gmail.com>
2025-12-01 15:07:06 +01:00
Zuul
acb78ef560 Merge "Remove ironic-inspector jobs and leftovers from zuul settings" 2025-11-30 18:37:22 +00:00
Zuul
091fc050f8 Merge "Drop remaining references to ironic-inspector" 2025-11-30 17:51:40 +00:00