12249 Commits

Author SHA1 Message Date
Zuul
fe2d08d3de Merge "Clarify release docs: bugfix releases optional" 2023-01-26 16:28:00 +00:00
Zuul
324bb00cb1 Merge "Docs: Troubleshooting: how to exit clean failed" 2023-01-26 13:25:02 +00:00
Jay Faulkner
b63d15ccdb Make reno ignore bugfix eol tags
Reno was assuming all tags ending in -eol represented an old, EOL'd
stable branch. That's not true for Ironic projects which have bugfix
branches. Update the regexp to exclude those branches.

Co-Authored-By: Adam McArthur <adam@mcaq.me>
Change-Id: I568b14097cd46d4d7d365ff894ef5cd29edd1e3a
2023-01-25 13:56:46 -08:00
Zuul
41b05b71be Merge "Reorganise Inventory Storage" 2023-01-24 17:59:31 +00:00
Jay Faulkner
38777e5030 Clarify release docs: bugfix releases optional
Bugfix releases are optional in practice; document that truth in
our release documents.

Change-Id: Ie24e959fdb338fafeafdf0e064eede273f2011f4
2023-01-24 16:13:34 +00:00
Jakub Jelinek
fe69e06c7c Reorganise Inventory Storage
Move functions storing and obtaining introspection data
from drivers/modules/inspector.py and api/controllers/v1/node.py
to driver/modules/inspect_utils.py

Follow-up to change If50f665da5fbb16f7646f3d6195a6e14e7325b0a

Story: 2010275
Task: 46204
Change-Id: I2b206670aff6ad3a9f9cc76236453abf42663cad
2023-01-21 14:46:21 +00:00
Zuul
2e1477f433 Merge "Create [inventory]" 2023-01-20 20:34:37 +00:00
Julia Kreger
8604a799aa Docs: Troubleshooting: how to exit clean failed
I got pinged with some questions by an operator who had
issues attempting to exit cleaning. In the discussion,
it was realized we lack basic troubleshooting guidance,
which led them to try everything but the command they needed.

As such, adding some guidance in an attempt to help operators
navigate these sorts of issues moving forward.

Change-Id: Ia563f5e50bbcc789ccc768bef5800a64b38ff3d7
2023-01-20 06:22:58 -08:00
Julia Kreger
9a85e4787b CI: Fix race prone unit test in networking
In the networking code stack, one of the methods
looks to identify if a change has occured, except
some of the other tests utilize the same value that
was previously asserted for the same base object.

Becaues of this, just use a unique value so we
don't risk the possibility of the test failing
erroneously.

Change-Id: Ide2b205ade67a4090a0b9bfe1282d01f7605ceb9
2023-01-18 11:11:43 -08:00
Zuul
571d0223ba Merge "[iRMC] Handle IPMI incompatibility in iRMC S6 2.x" 2023-01-18 16:46:10 +00:00
Zuul
8cb5ba9ff8 Merge "[iRMC] identify BMC firmware version" 2023-01-18 16:32:31 +00:00
Jakub Jelinek
f113210999 Create [inventory]
Create [inventory] to hold CONF parameters for storage of introspection data

Story: 2010275
Task: 46204
Change-Id: I06fa4f69160206dd350856e264cbb0842e34fd2a
2023-01-17 18:40:28 +00:00
Zuul
a48af6b5f1 Merge "Fix selinux context of published image hardlink" 2023-01-17 16:57:59 +00:00
Vanou Ishii
d23f72ee50 [iRMC] Handle IPMI incompatibility in iRMC S6 2.x
Since iRMC S6 2.00, iRMC firmware disables IPMI over LAN
with default iRMC firmware configuration.

To deal with this firmware incompatibility, this commit
modifies driver's methods which use IPMI to first try
IPMI and, if IPMI fails, try to use Redfish API.

Story: 2010396
Task: 46746
Change-Id: I1730279d2225f1248ecf7fe403a5e503b6c3ff87
2023-01-17 09:36:27 +09:00
Zuul
b11067cfdc Merge "API for node inventory" 2023-01-16 14:24:45 +00:00
Zuul
ff33a81de8 Merge "[DOC] Add entry regarding cleaning+raid" 2023-01-16 10:28:01 +00:00
Vanou Ishii
eae33a0acb [iRMC] identify BMC firmware version
Since iRMC S6 2.00, iRMC firmware doesn't support HTTP
connection to REST API.

To deal with this firmware incompatibility, this commit
adds verify step to check connection to REST API and adds
node vendor passthru to fetch&cache version of iRMC firmware.

Story: 2010396
Task: 46745
Change-Id: Ib04b66b0c7b1ef1c4175841689c16a7fbc0b1e54
2023-01-16 18:38:57 +09:00
Jakub Jelinek
2e80ea9099 API for node inventory
Add api to access node inventory

Story: 2010275
Task: 46204
Change-Id: If50f665da5fbb16f7646f3d6195a6e14e7325b0a
2023-01-12 15:09:18 +00:00
Zuul
895ba325ad Merge "setup.py: Remove 'py_modules'" 2023-01-11 18:54:54 +00:00
Riccardo Pittau
c05c09fd3a Fix selinux context of published image hardlink
If the published image is a hardlink, the source selinux context is
preserved. This could cause access denied when retrieving the image
using its URL.

Change-Id: I550dac9d055ec30ec11530f18a675cf9e16063b5
2023-01-11 16:00:01 +01:00
Zuul
e011922bac Merge "CI: Reset VM footprint to 2.6GB" 2023-01-11 00:48:16 +00:00
Zuul
81e10265ce Merge "Use association_proxy for ports node_uuid" 2023-01-10 16:08:30 +00:00
Zuul
77ac350cff Merge "Docs: Add considerations to anaconda docs" 2023-01-09 14:19:35 +00:00
Zuul
320b1f0ca7 Merge "Fix unbound variable in devstack plugin" 2023-01-07 16:30:49 +00:00
Zuul
c93641ff59 Merge "Use tinycore 13 for base ramdisk image" 2023-01-07 15:54:56 +00:00
Julia Kreger
5cd7bfc522 Docs: Add considerations to anaconda docs
Change-Id: I17f707f81a2aed75a9c47e2cfc0896b0efeeb36c
2023-01-06 13:07:06 -08:00
Zuul
7be9046021 Merge "Enable alternative storage for inventory" 2023-01-06 12:00:17 +00:00
Zuul
bed680951a Merge "Remove lib/neutron-legacy leftovers" 2023-01-05 12:25:48 +00:00
Zuul
4f6a456334 Merge "Fix "'NoneType' object is not iterable" in RAID" 2023-01-05 11:44:09 +00:00
Zuul
7f6a737e98 Merge "Use centos grub artifacts with centos ramdisk for vmedia" 2023-01-04 20:31:36 +00:00
Zuul
287dbdf019 Merge "Add doc for lsblk: /dev/nvme0n1p2: not a block device" 2023-01-04 16:17:01 +00:00
Julia Kreger
05f6003fe6 [DOC] Add entry regarding cleaning+raid
Adding an entry to the troubleshooting documentation to cover the
very complex topic of cleaning + RAID + disk protocols + device
behavior/capabilities.

Change-Id: I8d322dd901634c59950a6a458b265111282d0494
2023-01-04 07:53:32 -08:00
Stephen Finucane
ca5ed66d55 setup.py: Remove 'py_modules'
This was merely obscuring a bug in pbr. setuptools doesn't do the
auto-discovery when pbr is in use. Remove it.

Change-Id: I40500ed7bf9d9fb30381c7539548544152cea85e
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
Depends-on: https://review.opendev.org/c/openstack/pbr/+/869082
2023-01-04 12:01:18 +00:00
Julia Kreger
0230d361f4 CI: Reset VM footprint to 2.6GB
This commit partially reverts change set
I0bfef09a5312a17be54ce5c09805f06b7c349026
where the amount of memory for test VMs was
increased to 4GB. This was because excess
junk getting stuck in the staged ramdisk
images used by CI.

Change-Id: Ia0c74cbeecdb9febf9f7a4e76db84e0f378a97fc
2023-01-03 17:42:55 -08:00
Julia Kreger
1d07be8237 Use centos grub artifacts with centos ramdisk for vmedia
It appears we are getting an opcode error when attempting to boot
Centos 9-stream utilizing the EFI artifacts from Ubuntu.

Technically this should work, however further aftifacts in the boot
chain may be signed with other key credentials that Ubuntu's
grub does not know about, because the chain of trust is
MSFT -> Vendor shim (slow change rate) -> Vendor GRUB -> Kernel

Where vendor differences should never work, is if Secure Boot
is enforcing.

Exception on launch:
 X64 Exception Type - 06(#UD - Invalid Opcode)  CPU Apic ID - 00000000 !!!!

A similar Debian bug is open for a very similar issue:

https://groups.google.com/g/linux.debian.bugs.dist/c/BOiLLeROrmo

However, no additional comments or information have been in follow
up to that reported issue. So in the mean time, we're going to try
and do what those smarter than I recommend, use the vendor's
binaries for their distribution.

There is one further, potentially far more depressing possibility,
that centos9's kernel doesn't support the type of hardware
we're getting. This is suggested by the precise opcode error, UD,
https://xem.github.io/minix86/manual/intel-x86-and-64-manual-vol3/o_fe12b1e2a880e0ce-212.html
But again, easiest possibility first.

Change-Id: Id9bd30bc3c2f1076555317e4a3f277725fa7c1f4
2023-01-03 17:05:04 -08:00
Riccardo Pittau
cab04afe6e Create IRONIC_VM_MACS_CSV_FILE if it does not exist
The IRONIC_VM_MACS_CSV_FILE is generated only if we execute the
ironic basic ops, so when IRONIC_BAREMETAL_BASIC_OPS is True.
In some jobs we set IRONIC_BAREMETAL_BASIC_OPS to False but we
still look for that file causing a "file not found" error which
does not trigger a trap until focal, but it does in jammy.
Let's create the file if it does not exist.

Change-Id: Ib938abe0723072419f336159cbffff33e46ea39b
2023-01-03 16:09:00 +01:00
Riccardo Pittau
7150478cd8 Fix unbound variable in devstack plugin
The RC_DIR does not existed (and it never existed, it was SRC_DIR)
Change that to TOP_DIR which is what we use commonly in other
sections.

Change-Id: I4a400fd434a20938cd38c0bb876da21fec7473a1
2023-01-02 10:10:50 +01:00
Riccardo Pittau
93158aadd0 Use tinycore 13 for base ramdisk image
We're builing tinyipa using tinycore 13.x since a while, we should use
the same version for the base ramdisk image.

Change-Id: I9d144f122c20f717ff946282ef7ffa16d82812f5
2023-01-02 09:44:26 +01:00
Riccardo Pittau
6b84fbf8f2 Fix CI
- Remove skipsdist that it was never supported and causes breakage
when used with usedevelop.
- add script to allowlist for pep8 test
- disable setuptools autodiscovery
- Increase base VM memory according to new requirements for CS9
based IPA

Change-Id: I0bfef09a5312a17be54ce5c09805f06b7c349026
2022-12-29 17:10:53 +01:00
Sławek Kapłoński
facd1bca66 Remove lib/neutron-legacy leftovers
In [1] we finally got rid of the unfinished lib/neutron module and kept
only lib/neutron-legacy. It's renamed to lib/neutron now and it's the
only neutron related module in Devstack.
So this patch removes leftovers related to the old lib/neutron-legacy.

[1] https://review.opendev.org/c/openstack/devstack/+/865014

Change-Id: Id938deab7188743e754d028dee8e0b2591ab6f7b
2022-12-20 11:18:25 +01:00
Aija Jauntēva
17c9e58c9e Fix "'NoneType' object is not iterable" in RAID
Do not update `raid_configs` if operation is synchronous.
First, it is not needed, second, it will not be cleaned
up by async periodics. As the result the data remains
on the node and causes errors the next time node is in
cleaning state.

Story: 2010476
Task: 47037

Change-Id: Ib1850c58d1670c3555ac9b02eb7958a1b440a339
2022-12-16 06:32:37 -05:00
Jay Faulkner
ef772c2c1e Fixes for tox 4.0
Formatting changes in config file required for tox 4.0.

Change-Id: I84202ac10e9195647162f0b5737ebb610ef1ef93
2022-12-15 09:29:38 -08:00
Zuul
e590dd8383 Merge "Ironic doesn't use metering; don't start it in CI" 21.2.0 2022-12-14 10:21:39 +00:00
Harald Jensås
8b00932e48 Use association_proxy for ports node_uuid
This change adds 'node_uuid' to ironic.objects.port.Port
and adds a relationship using association_proxy in
models.Port. Using the association_proxy removes the need
to do the node lookup to populate node uuid for ports in
the api controller.

NOTE:
 On port create a read is added to read the port from the
 database, this ensures node_uuid is loaded and solves the
 DetachedInstanceError which is otherwise raised.

Bumps Port object version to 1.11

With patch:
  1. Returned 20000 ports in python 2.7768702507019043
     seconds from the DB.
  2. Took 0.433107852935791 seconds to iterate through
     20000 port objects.
     Ports table is roughly 12800000 bytes of JSON.
  3. Took 5.662816762924194 seconds to return all 20000
     ports via ports API call pattern.

Without patch:
  1. Returned 20000 ports in python 1.0273635387420654
     seconds from the DB.
  2. Took 0.4772777557373047 seconds to iterate through
     20000 port objects.
     Ports table is roughly 12800000 bytes of JSON.
  3. Took 147.8800814151764 seconds to return all 20000
     ports via ports API call pattern.

Conclusion:
  Test #1 plain dbapi.get_port_list() test is ~3 times
  slower, but Test #3 doing the API call pattern test
  is ~2500% better.

Story: 2007789
Task: 40035
Change-Id: Iff204b3056f3058f795f05dc1d240f494d60672a
2022-12-14 09:14:14 +01:00
Jay Faulkner
d7c95306d6 Ironic doesn't use metering; don't start it in CI
We don't use metering. We do use every byte of ram we can get our hands
on.

Change-Id: I839c7fd4cb6fe8661a25e6b4e00650575ae17520
2022-12-13 13:51:11 -08:00
Zuul
f96b258709 Merge "Catch any exception for Cleaning" 2022-12-13 21:37:03 +00:00
Julia Kreger
44ccc397c9 Add doc for lsblk: /dev/nvme0n1p2: not a block device
Given the assistance we rendered last week where it ended up being
rooted in an image being misconfigured, it makes sense to at least
publish a troubleshooting note to aid in discoverability for
operators who encounter this issue in the future.

Change-Id: I8bc35571cc944ad20f413d53a47f94920dd1e928
2022-12-13 10:44:12 -08:00
Zuul
f6bc139c6d Merge "Fix unit tests for Python 3.11" 2022-12-12 21:49:39 +00:00
Zuul
bcde6e1741 Merge "[grenade] Explicitly enable Neutron ML2/OVS services in the CI job" 2022-12-12 21:25:55 +00:00
Zuul
cccc4483b0 Merge "Fixes anaconda deploy for PXE boot" 2022-12-12 16:58:55 +00:00