Commit graph

954 commits

Author SHA1 Message Date
Julia Kreger
58bcdf1a4a ci: grenade: restart neutron services
Recently networking-baremetal got a patch to leverage a relatively new
rpc call against neutron called report_state. However... in late 2024
neutron's RPC executions were split from the API, and grenade never
learned to restart the new service.. and that may also be intentional.

Until there is clarity on that front, the path is clear... to restart
the service.

This should clear up the overall grenade job execution failure.

Closes-Bug: 2118780
Related-Bug: 2117227
Change-Id: I9f942df892783a85387e6feb3a8bdb5396103e15
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025-08-11 15:42:15 -07:00
Zuul
daf856cd2d Merge "conf: Add '[api] response_validation' option" 2025-08-01 14:48:24 +00:00
Afonne-CID
0125c26aba Log executed steps during cleaning/servicing/deploy
Log steps performed during step-based flows in Node History
at the beginning and at completion (or abort).

Closes-Bug: #2106758
Change-Id: Ieffacf174180036d6a2418a8faf72a94eea74fb8
Signed-off-by: Afonne-CID <afonnepaulc@gmail.com>
2025-07-28 18:21:18 +01:00
Zuul
d264de34b0 Merge "Advanced vmedia deployment test ops" 2025-07-16 14:34:37 +00:00
Zuul
d4b2ce44fc Merge "Mark SNMP driver unsupported for removal" 2025-06-30 17:43:18 +00:00
Zuul
aa232eb5c2 Merge "Fix minor devstack issues" 2025-06-12 16:37:53 +00:00
Stephen Finucane
5b0134ea95 conf: Add '[api] response_validation' option
It doesn't make sense to return a HTTP 500 in production and after
everything has actually been processed just because schema validation
failed. Instead, we should only do this in test environments. Make it
so via a new config option which is now set by default in unit and
integration tests.

Change-Id: I3cac41e024d569dfe05f21767d90d585f54e3eac
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2025-06-09 16:39:14 +01:00
Julia Kreger
a2cbb3484c Advanced vmedia deployment test ops
Adds an advanced operations standalone test which utilizes a new proposed
tempest test to execute against the API which exerises the dhcp-less
virtual media path AND passes the node through the rebuild scenario case
which has been identified as problematic in the past.

With this, we know it works, so \o/.

Presently as non-voting.

Change-Id: Ibb6f9228672966c3708227e37bead6a45648e177
2025-06-06 10:53:22 -07:00
Zuul
fb544dc508 Merge "ci: remove the partition image upload" 2025-06-05 22:01:00 +00:00
Zuul
05729a8d85 Merge "ci: Expand the multinode job -- remove tinyipa usage" 2025-06-04 14:55:36 +00:00
Julia Kreger
8f7d5d817e ci: remove the partition image upload
We've long ago pruned out the rest of the explicit partition image
testing, so explicitly remove build process to save CI time and
resources while also making the logs a bit more straight forward.

Change-Id: I93dcce21bffe473fa2d708d7dc6439db8a042e50
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025-06-03 17:03:51 +00:00
Jay Faulkner
6abe65110c Fix minor devstack issues
- Make DHCP setup compatible with q-dhcp or neutron-dhcp
- Fix restacking when dnsmasq package has already been installed
  (without the explicit removal of dnsmasq; the dnsmasq-base removal
  errors due to dependencies)

Change-Id: I7eafc34ff71b84a0ae5199db95cb89bdd7abbf29
2025-06-03 08:53:08 -07:00
Julia Kreger
72c208f765 ci: Expand the multinode job -- remove tinyipa usage
This change moves multinode jobs to be leveraged across multiple
"compute" nodes with an increased amount of memory, which increases
the overall test resources available and limits controller node
hot spotting for deployment operations.

This effectively chagnes multinode jobs from being a single
compute node with a single controller node, to two compute
nodes and a single controller node. The controller node's
hosted virtual machines is also dialed back.

This was done to eliminate usage of tinyipa in favor of a more
realistic Centos based IPA ramdisk, and also removes fallback
logic to use tinyipa on more limited resource nodes.

Change-Id: Ib52f7039072901ce72ac96e660d35a10cca59737
Signed-off-by: Julia Kreger <juliaashleykreger@gmail.com>
2025-06-02 12:16:53 -07:00
Julia Kreger
d33c981dcf CI: remove legacy devstack baremetal admin and observer role usage
We long ago moved past use of baremetal_admin and baremetal_observer
roles in our interactions. At this point, they just make sense to
remove from devstack since otherwise the code path is outdated.

Change-Id: I14caae1fc81512bebbc150da8a965449fcae63cf
2025-05-30 14:12:37 -07:00
Zuul
f1c8d03888 Merge "CI: Reconfigure jobs to minimize tinyipa usage" 2025-05-22 17:59:42 +00:00
Jay Faulkner
56d43ff56d ci: Remove code which has been long-dead
Our CI broke this morning with an error around start_neutron_api
function not existing. That function was removed from devstack
in Nov 2022 in a52041cd3f067156e478e355f5712a60e12ce649.

Upon further research, is_service_enabled neutron-api appears to have
been returning false, even for neutron-enabled jobs, for a long time. A
recent fix to this behavior in devstack exposed this dead code and the
lurking breakage which we've now experienced.

I'm making the assumption that since our CI has been fine for 2.5 years
without this code block running, it'll be fine for now too. We likely
want to follow up on if missing these calls have a side effect.

This change also disables voting for the
ironic-tempest-ovn-uefi-ipxe-ipv6 CI job which is in a similar state
as the other CI jobs which use networking-generic-switch.
This is a side-effect due to a lack of the uwsgi launched neutron having
the configuration files to load plugins. That issue is being worked
separately and once networking-generic-switch is fixed, the job will
be returned to voting status.

Change-Id: If47e74751ba66a1296f16d9c43433033c04beffb
2025-05-21 21:02:25 +00:00
Julia Kreger
6c0b015a0d CI: Reconfigure jobs to minimize tinyipa usage
This change involves:
- Moves ironic-standalone jobs to use 32GB nodes which is a
  relatively simple change.
- Changes other jobs excluding multinode jobs to use DIB image
  builds by default.
- Changes one of job names to remove tinyipa from the name.
- Also notes a job which can be removed, but removal will be in
  a later change... and adds a release note in case anyone looks.

Change-Id: If9110c8f5041428df3e59f40fe0cb71bcf8580a8
2025-05-19 14:09:03 -07:00
Zuul
e468155baa Merge "ci: set a longer nova tempest build interval" 2025-05-19 20:11:08 +00:00
Julia Kreger
42be33b52b CI: Fix anaconda job post OSSA-2025-001
Turns out some of the standalone jobs, anaconda in particular,
can reference some artifacts on disk in such a way which causes
the security logic to block the request. This is an easy fix.

Change-Id: I79204117cdbffab1f619981767471475870b4571
2025-05-12 10:51:01 -07:00
Jay Faulkner
dc6cd79a9e Mark SNMP driver unsupported for removal
The SNMP driver uses pysnmp-lextudio, we'll be lucky if it works through
the deprecation period. If by the start of the 2026.2 cycle it's not
been migrated to a different library, it will need to be removed.

In order to keep CI running on an unsupported driver, I've added an
option to the devstack plugin to skip failing on upgrade check.

Related-Bug: 2106674
Generated-By: Jetbrains Junie
Change-Id: Ibe5576d04fc3ca1cc102f126853ed3d1e8c404d2
2025-04-20 16:23:53 +00:00
Zuul
d216099cce Merge "Fix default IRONIC_DEFAULT_TRAITS setting" 2025-04-08 22:36:07 +00:00
Zuul
c9090751b0 Merge "devstack: network simulator support for sonic" 2025-04-08 20:49:15 +00:00
Zuul
c0cf87d4a0 Merge "[devstack] Allow deploy environment with portgroups" 2025-04-04 17:11:57 +00:00
Zuul
b6f8fa969c Merge "devstack bindep - [platform:rpm]" 2025-04-04 09:18:24 +00:00
Vasyl Saienko
55364fcb0f [devstack] Allow deploy environment with portgroups
Allow to deploy virtual environment with port groups by using
following environment variables:

  IRONIC_USE_PORT_GROUP: boolean to enable port group usage
  IRONIC_PORT_GROUP_MODE: the mode for port group, by default is
    balance-rr.

Related-Bug: #1718481
Change-Id: I9cc8e54cf94ecc65ac93d01671f8778be2f6dc78
2025-04-01 11:00:40 +03:00
Julia Kreger
47e87d649e devstack: network simulator support for sonic
Adds basic suppot to spin up a SONiC VM instance as a switch to have
wired to the switch VM to enable command behavior verification.

Also fixes some related issues due to an earlier rebase need on
the switch test VMs where the interface name was changed and
ultimately a different field need to be extracted for the
later commands to execute properly in order to provide data
to later callers for actions such as creating ports in ironic.

Change-Id: Ie4a2ac4da08359d20b5aa35faf741c5307bef6e0
2025-03-31 06:27:18 -07:00
Julia Kreger
e2fa72652d network simulator support for Cisco Nexus 9k
Adds additional basic simulator support to stand up a virtual
Cisco Nexus 9000 switch for testing in devstack to faciltate
development and testing.

Change-Id: Id66e6bcc646a6d35a2caa5ecbc6b8cd881adb7aa
2025-03-24 06:49:52 -07:00
Julia Kreger
7ef39b8cc4 Add network simulator support for force10 OS 10
Adds necessary logic to support spinning up a local network simulator
for Dell Force10 OS10 switches which is a Linux based operating system
image as opposed to the former force10 OS 9 switches.

This change takes a *very* similar approach to OS9 support, but there
are several differences between OS9 and OS10, mainly in configuration
formatting, commands, access control, and even the overall virtual
machine installation process which leverages ONIE and multiple
"disk" artifacts.

Change-Id: Iab3c69031eeff1f612e254d099539c8fc146b553
2025-03-21 23:20:38 +00:00
Julia Kreger
fe35cb2385 network testing: hooking in an external network simulator
In order to test NGS compatability and generally move the state forward
we need to be able to wire in switch simulators.

This is *not* intended to be run in CI, due to known performance issues.

This first pass hooks up Dell Force10 switches with OS version 9.13, and
does so we can configure the switch as part of the setup.

This makes the prior behavior of configure-vm.py and the VM templates
to be able to execute as it did before
I0ef1ad1b2e50cb26839c618a1367704d51ed8a4d to enable the simulator attachments
because we can't exercise network switch simulators with dynamic
post-vm start network attachments, becuase the attachment to the switch sim
must be done in advance of switch VM launch.

Change-Id: I4addd71adea0b3f6e56b967db848546b5c56561e
2025-03-21 16:09:25 -07:00
Zuul
41707d8ab9 Merge "Remove IPA build on cleanup" 2025-03-18 20:04:10 +00:00
Zuul
fe8f4f1fb2 Merge "Install and run sushy-tools within a virtualenv" 2025-03-18 16:19:19 +00:00
Zuul
d788d94896 Merge "[devstack ]Use tap interfaces for VMs" 2025-03-15 13:12:09 +00:00
cid
0962a07e0c Remove IPA build on cleanup
Delete the deploy kernel, ramdisk, and ISO files during cleanup
to trigger rebuild on the subsequent stack.sh run.

Closes-Bug: #2076358
Change-Id: I6600b67c9b3455d8191126b24a1941ae7c384e36
2025-03-13 14:09:23 +01:00
Zuul
9dbfad8131 Merge "centos devstack support: fix VM permissions" 2025-03-10 12:31:02 +00:00
cid
6af973aee6 Install and run sushy-tools within a virtualenv
This ensures gunicorn can find all required packages at runtime.

Closes-Bug: #2098542
Change-Id: I10279575fc1c060dd439d31ae1c07c1267b04342
2025-03-06 10:40:04 +01:00
Zuul
0bf0c9e8db Merge "Add vnc-container image build" 2025-03-05 07:09:00 +00:00
Zuul
d618f946bd Merge "Trivial: Enable disabling tftp setup" 2025-03-05 06:54:41 +00:00
Zuul
eddcfc93ee Merge "Add systemd provider for console containers" 2025-03-05 04:22:08 +00:00
Jay Faulkner
53d93d6d72 Restore recompile of dnsmasq
We still need a custom dnsmasq, but due to recent ubuntu upgrades and
devstack changes we always fail the version check and skip the install
of newer dnsmasq. Instead, now we use a sentinel file.

Change-Id: Iefde1721d4ab24521dc2b8f1fe46bf8bd4519f6f
2025-03-04 14:26:44 -08:00
Steve Baker
4ed44172b4 Add vnc-container image build
The files in tools/vnc-container allow a container image to be built
which supports Ironic's graphical console functionality.

For each node with an enabled graphical console, the service ironic-novncproxy
(or nova-novncproxy) will connect to a VNC server exposed by a container
running this image.

If the devstack ir-novnc serivce is enabled then this container image
will be built locally and ironic configured to used it for the systemd
console container provider.

This makes a devstack environment functional in accessing graphical
consoles for Dell, HPE and Supermicro.

Related-Bug: 2086715
Change-Id: I0842570cca22ac0e67d358c30225e8e08561f459
2025-03-02 22:27:33 +00:00
Steve Baker
48557942ac Add systemd provider for console containers
A new entry point ``ironic.console.container`` is added to determine how
console containers are orchestrated when ``ironic.conf``
``[vnc]enabled=True``. By default the ``fake`` provider is specified by
``[vnc]container_provider`` which performs no orchestration. The only
functional implementation included is ``systemd`` which manages
containers as Systemd Quadlet containers. These containers run as user
services and rootless podman containers. Having ``podman`` installed is
also a dependency for this provider. See ``ironic.conf`` ``[vnc]``
options to see how this provider can be configured.

The ``systemd`` provider is opinionated and will not be appropriate for
some Ironic deployment methods, especially those which run Ironic inside
containers. External implementations of ``ironic.console.container`` are
encouraged to integrate with other deployment / management methods.

Related-Bug: 2086715
Change-Id: Ib890c3c7be91ddd78a43b9c5261dd1d8c1054c04
2025-03-02 22:27:33 +00:00
Harald Jensås
b31a109db0 devstack bindep - [platform:rpm]
On RPM platforms install packages:
* syslinux-nonlinux (pxelinux.0)
* guestfs-tools (virt-make-fs etc.)

Change-Id: I3400fb27b57f3d8bbb69237d86a5b369142a3d1c
2025-02-25 14:10:50 +00:00
Steve Baker
2c472dfa8f Fix default IRONIC_DEFAULT_TRAITS setting
Change-Id: Icf1f4c704d77f720cd8fefda60ddbcabe4853b55
2025-02-25 14:37:37 +13:00
Zuul
b44cce176f Merge "Add ironic-novncproxy service" 2025-02-24 19:06:43 +00:00
Zuul
de4d5733ee Merge "More reliable TinyIPA build with network retries" 2025-02-23 15:02:27 +00:00
Zuul
d3c74c6a4b Merge "Fix devstack plugin for centos" 2025-02-20 17:02:17 +00:00
cid
f333fd4d1c More reliable TinyIPA build with network retries
Wraps `wget` commands with sleep and mutiple retry support
for resilient network downloads.

Partial-Bug: #2098417
Change-Id: Id3e083cc97b71211e5080ad21e2c09d04d8559fa
2025-02-20 15:48:28 +01:00
Julia Kreger
5c285047ae ci: set a longer nova tempest build interval
By default, nova's tempest code checks every second for the status of
an instance being built. But for baremetal, this can take longer. Much
longer because the many steps in a sequence of action to facilitate
deployment.

As such, changing the timer to 10 second will reduce the amount
of logging generated by CI test jobs, which presently can fail
with too much data to be logged causing subunit to fail and rendering
logging lost.

Change-Id: I1f7e0198b61717ffaaeb471dfcb200a5ab58c506
2025-02-20 05:24:17 -08:00
Steve Baker
beaaf405d3 Add ironic-novncproxy service
This is a forklift of the nova novncproxy service to act as the noVNC
front-end to graphical consoles.

The service does the following:
- serves noVNC web assets for the browser based VNC client
- creates a websocket to proxy VNC traffic to an actual VNC server
- decouples authentication traffic so that the source server can have
  a different authentication method than the browser client

The forklifted code has been adapted to Ironic conventions, including:
- [vnc] config options following Ironic conventions and using existing
  config options where appropriate
- Removing the unnecessary authentication method VeNCrypt, leaving only
  the None auth method.
- Adapting the ironic-novncproxy command to use Ironic's service launch
  approach, allowing it to be started as part of the all-in-one ironic
- Replace Nova's approach of looking up the instance via the token.
  Instead the node UUID is included in the websocket querystring
  alongside the token
- Removing cookie fallback when token is missing from querystring
- Removing expected protocol validation in the websocket handshake
- Removing internal access path support
- Removing enforce_session_timeout as this will be done at the
  container level

Related-Bug: 2086715
Change-Id: I575a8671e2262408ba1d690cfceabe992c2d4fef
2025-02-19 20:17:57 +00:00
Zuul
e44a969740 Merge "trivial: lock dnsmasq check to ubuntu" 2025-02-19 04:37:07 +00:00