f5adf261feefe13b86da09ac58e2655df308fe11
543 Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
Zuul
|
b851ae1bc8 | Merge "Remove Python 3.8 support" | ||
|
Takashi Kajinami
|
b0ef2c0483 |
Remove Python 3.8 support
Python 3.8 was removed from the tested runtimes for 2024.2[1] and has not been tested since then. Also add Python 3.12 which is part of the tested runtimes for 2025.1. Now unit tests job with Python 3.12 is voting. [1] https://governance.openstack.org/tc/reference/runtimes/2024.2.html Change-Id: Id314b4453d81dcab806768e3c7ab5dc050a35136 |
||
|
Steve Baker
|
1a939105ba |
Capture and log sector sizes
``logical_sectors`` and ``physical_sectors`` sizes are now captured for each hardware info ``disks`` entry, and also logged for ``lsblk`` calls. This will be increasingly useful as storage devices with 4096 byte sector sizes become more common. Change-Id: I80b6b137f6e3071d9b8a4c1abe14416249aed9ac |
||
| e4d07fd1ba |
Update master for stable/2024.2
Add file to the reno documentation build to show release notes for stable/2024.2. Use pbr instruction to increment the minor version number automatically so that master versions are higher than the versions on stable/2024.2. Sem-Ver: feature Change-Id: Iffa68c4207e97d92382fbff637a661a879c1909d |
|||
|
Zuul
|
ab99f36baa | Merge "Check for the existence of an IPMI device" | ||
|
cid
|
2d79eae382 |
Check for the existence of an IPMI device
Check for IPMI device files before the use of the `'ipmitool lan.*'` command, avoiding unnecessary calls on non-IPMI systems. Closes-Bug: #2076367 Change-Id: Ib800717701e6f2828df55a0da0e999fc014c12e1 |
||
|
Jay Faulkner
|
e303a369dc |
Inspect non-raw images for safety
When IPA gets a non-raw image, it performs an on-the-fly conversion using qemu-img convert, as well as running qemu-img frequently to get basic information about the image before validating it. Now, we ensure that before any qemu-img calls are made, that we have inspected the image for safety and pass through the detected format. If given a disk_format=raw image and image streaming is enabled (default), we retain the existing behavior of not inspecting it in any way and streaming it bit-perfect to the device. In this case, we never use qemu-based tools on the image at all. If given a disk_format=raw image and image streaming is disabled, this change fixes a bug where the image may have been converted if it was not actually raw in the first place. We now stream these bit-perfect to the device. Adds two config options: - [DEFAULT]/disable_deep_image_inspection, which can be set to "True" in order to disable all security features. Do not do this. - [DEFAULT]/permitted_image_formats, default raw,qcow2, for image types IPA should accept. Both of these configuration options are wired up to be set by the lookup data returned by Ironic at lookup time. This uses a image format inspection module imported from Nova; this inspector will eventually live in oslo.utils, at which point we'll migrate our usage of the inspector to it. Closes-Bug: #2071740 Change-Id: I5254b80717cb5a7f9084e3eff32a00b968f987b7 |
||
|
Riccardo Pittau
|
bd3b596ced |
Fix series in release notes
Change-Id: I6844ce33274afdb64e78b79930c8aa32776e7665 |
||
|
Riccardo Pittau
|
599a825554 |
Fix versions in release notes
Change-Id: Ief6299e4b1bbef5fdb33a28b90b078f420cf8508 |
||
|
Jay Faulkner
|
c39517b044 |
Call evaluate_hardware_support exactly once per hwm
Fixes an issue where we could call evaluate_hardware_support multiple times each run. Now, instead, we cache the values and use the cache where needed. Adds unit test coverage for get_managers and the new method. Fixes issue where we were caching hardware managers between unit tests. Also includes fixes for codespell CI: - skip build files in repo - fix spelling issues introduced to repo Closes-bug: 2066308 Change-Id: Iebc5b6d2440bfc9f23daa322493379bbe69e84d0 |
||
| c303bd971b |
reno: Update master for unmaintained/zed
Update the zed release notes configuration to build from unmaintained/zed. Change-Id: I673a729e1598d2100631262d61c91690f500306b |
|||
|
Julia Kreger
|
6ac3f350c0 |
Unmount config drives
If this seems like deja vu, that is because it is. We had this very same issue with the original CoreOS ramdisk. Since we don't control the whole OS of the ramdisk, it only made sense to teach the agent to umount the folder. The folder is referenced already, and the agent does have safeguards in place, but unfortunately this issue led to a rebuild breaking where cloud-init, glean, and the agent were all trying do the right thing as they thought, and there were just multiple /mnt/config folders present in the OS. These are separate issues we also need to try and remedy. What happens is when the device is locked via a mount, the partition table is never updated to the running OS as the mount creates a lock. So the agent ends up thinking, in the case of a rebuild, that everything including creating a configuration drive on that device has been successful, but when you reboot, there is no partition table entry for the new partition as the change was not successfully written. This state prevented the workload from rebooting properly. This change eliminates that possibility moving forward by attempting to ensure that the cloud configuration folder is no longer mounted. Change-Id: I4399dd0934361003cca9ff95a7e3e3ae9bba3dab |
||
|
Zuul
|
28053644cd | Merge "add mixed matching of root device hints" | ||
|
Zuul
|
2b67f277b7 | Merge "Step to clean UEFI NVRAM entries" | ||
|
Tudor Domnescu
|
ceec5a7367 |
destroy_disk_metadata: support 4096 sector size
A sector size of 512 was assumed and hardcoded, causing dd to fail when it tried to write in chunks smaller than the sector size for disks with 4096 bytes sectors. The size of GPT in sectors also depends on sector size. Change-Id: Ide5318eb503d728cff3221c26bebbd1c214f6995 |
||
|
Adam Rozman
|
84a1195d5a |
add mixed matching of root device hints
This commit introduces the following changes: - New optional `all_serial_and_wwn` argument for the block device listing logic. The new argument makes it possible to collect wwn and serial number information from both lsblk and udevadm at the same time - Both the short and the long serials are collected from udeavadm without prioritization when the new argument has teh value True - The new feature is automatically enabled during block device listing as part of the root disk selecetion - New options are added to the lsblk command when used in the block device discovery process, previously lsblk was not looking for wwn numbers and now it does Closes-Bug: #2061437 Change-Id: I438a686d948cd929311e2f418bb02fb771805148 Signed-off-by: Adam Rozman <adam.rozman@est.tech> |
||
|
Steve Baker
|
215fecd447 |
Step to clean UEFI NVRAM entries
Adds a deploy step ``clean_uefi_nvram`` to remove unrequired extra UEFI NVRAM boot entries. By default any entry matching ``HD`` as the root device, or with a ``shim`` or ``grub`` efi file in the path will be deleted, ensuring that disk based boot entries are removed before the new entry is created for the written image. The ``match_patterns`` parameter allows a list of regular expressions to be passed, where a case insensitive search in the device path will result in that entry being deleted. Closes-Bug: #2041901 Change-Id: I3559dc800fcdfb0322286eba30ce47041419b0c6 |
||
|
Zuul
|
b6075156b3 | Merge "USB device discovery" | ||
| 783a0377ad |
Update master for stable/2024.1
Add file to the reno documentation build to show release notes for stable/2024.1. Use pbr instruction to increment the minor version number automatically so that master versions are higher than the versions on stable/2024.1. Sem-Ver: feature Change-Id: I67ee5ead4aa7f47517c35d1a77d594fcad22cc4c |
|||
|
Zuul
|
ee8340f2cb | Merge "Update regex to detect closed branch" | ||
|
Zuul
|
815e1f462f | Merge "reno: Update master for unmaintained/victoria" | ||
|
Zuul
|
aa76962b4e | Merge "reno: Update master for unmaintained/wallaby" | ||
| 38ba0d8508 |
reno: Update master for unmaintained/xena
Update the xena release notes configuration to build from unmaintained/xena. Change-Id: I3bbef10b65dc43596a59eaca5d792f5e451d5d4c |
|||
| 5a017ea84a |
reno: Update master for unmaintained/wallaby
Update the wallaby release notes configuration to build from unmaintained/wallaby. Change-Id: Iaf279482847d781d7d338c4923a672a5e9337332 |
|||
| 6ebaf277a6 |
reno: Update master for unmaintained/victoria
Update the victoria release notes configuration to build from unmaintained/victoria. Change-Id: I00a9bcb8ee6d5160d2598fbecb8e585885212df7 |
|||
|
Takashi Kajinami
|
bffa88acb8 |
Update regex to detect closed branch
... based on the change made in reno recently[1]. Also the overall regex is updated to be more consistent with the regex used in ironic. [1] https://review.opendev.org/c/openstack/reno/+/910547 Change-Id: I362de82fb5478b846df7a343da02a359f5f7dece |
||
|
Damien Rannou
|
3fd68c0848 |
USB device discovery
The idea is to retreive USB devices informations via 'lshw' and return the list to ironic in order to be able to create introspection rules based on USB devices. Change-Id: I39d60cb467614fca7a7f701dbe576154213580a5 |
||
|
Zuul
|
6d35c1e949 | Merge "Make inspection URL optional if the collectors are provided" | ||
| 614532d2a2 |
reno: Update master for unmaintained/yoga
Update the yoga release notes configuration to build from unmaintained/yoga. Change-Id: I0c5ab4348bd293ce77b04180247773412edbe179 |
|||
|
Dmitry Tantsur
|
0010f5c11a |
Also retry inspection on HTTP CONFLICT
The new implementation can return it when unable to lock the node. Other possible errors are 400 and 404 (should not be retried), as well as 5xx (already retried). Change-Id: I74c2f54a624dc47e8e2d1e67ae4c6a6078e01d2f |
||
|
Zuul
|
1e107bd625 | Merge "Add support for reporting CPU socket number" | ||
|
Kaifeng Wang
|
9cafe76225 |
Add support for reporting CPU socket number
IPA reports a few cpu fields including cores, arch, flags etc. There is a need that user wants to utilize the physical number in a baremetal since cores are just a logical representation of the compute resource. The socket number is more suitable for the quota control in some use cases. Change-Id: I94be86d6b12a3a7e7ca1041d948427a073412a31 |
||
|
Dmitry Tantsur
|
6cd36a750f |
Make inspection URL optional if the collectors are provided
With the new in-band inspection, we can derive the callback URL from the Ironic URL, there is no need to duplicate it. This change uses the presence of collectors as a sign to run inspection. The previous approach of setting an inspection URL, with or without explicitly setting collectors, still works for compatibility with ironic-inspector. Change-Id: Ie4279ee6d2995c9686f1dcdef1d6e5dc1dd20871 |
||
|
Dmitry Tantsur
|
0d4ae976c2 |
Support several API and Inspector URLs
Allows nodes with a single IP stack to be deployed from a dual-stack Ironic. Detecting advertised address and usable Ironic URLs are done completely independently which does open some space for a misconfiguration. I hope it's not likely in the reality, especially since this feature is targetting advanced standalone users. Change-Id: Ifa506c58caebe00b37167d329b81c166cdb323f2 Closes-Bug: #2045548 |
||
|
Dmitry Tantsur
|
2bb74523ae |
Add missing headers to the inspection callback
Somehow, it has worked correctly for years, but now I've discovered that the new inspection is (no longer?) tolerant to the missing header. While here, copy all headers from the heartbeat code. Change-Id: I9e5c609eb4435e520bc225dea08aedfdf169744b |
||
|
Jay Faulkner
|
36e5993a04 |
[codespell] Fix spelling issues in IPA
This fixes several spelling issues identified by codepsell. In some cases, I may have manually modified a line to make the output more clear or to correct grammatical issues which were obvious in the codespell output. Later changes in this chain will provide the codespell config used to generate this, as well as adding this commit's SHA, once landed, to a .git-blame-ignore-revs file to ensure it will not pollute git historys for modern clients. Related-Bug: 2047654 Change-Id: I240cf8484865c9b748ceb51f3c7b9fd973cb5ada |
||
|
Dmitry Tantsur
|
2ab8364649 |
Add a jitter to heartbeat retries
Currently, if heartbeat fails, we reschedule it after 5 seconds. This is fine for the first retry, but it can cause a thundering herd problem when a lot of nodes fail to heartbeat at once. This change adds jitter to the minimum wait of 5 seconds. The jitter is not applied for forced heartbeats: they still have a minimum wait of exactly 5 seconds from the last heartbeat. The code is re-ordered to move the interval calculation to one place. Bonus: correctly logging the next interval. The unit tests have been rewritten to test the heartbeat process step by step and not rely on the exact sequence of the calls. Closes-Bug: #2038438 Change-Id: I4c4207b15fb3d48b55e340b7b3b54af833f92cb5 |
||
|
Zuul
|
62041d6d9e | Merge "Fix referencing to the raid_device var which is not set" | ||
|
Iury Gregory Melo Ferreira
|
801da9ec1f |
Retry in ProxyError during post inspector data
* ProxyError is derived from ConnectionError, but it's necessary to check the Response object to identify. - Added ProxyError in retry_if_exception_type - Updated _post_to_inspector to proper handle ProxyError - Updated the wait to use wait_exponential instead of wait_fixed. Closes-Bug: 2045429 Change-Id: Iefe3fe581cd4e7c91a0da708e6f6d0fdaacab6fe |
||
|
Zuul
|
beccfe8c92 | Merge "Revert "Fix vmedia network config drive handling"" | ||
|
Dmitry Tantsur
|
c57deb7e76 |
Revert "Fix vmedia network config drive handling"
This reverts commit
|
||
|
Maryna Savchenko
|
f80330839d |
Fix referencing to the raid_device var which is not set
Change-Id: I11180e5d61d893a78583ace555f6e90ba8845950 |
||
|
Zuul
|
eea9917023 | Merge "Fix vmedia network config drive handling" | ||
|
Zuul
|
768aa17442 | Merge "Add mlnx deploy_step entry to enable deploy time firmware" | ||
|
Zuul
|
7a4114512c | Merge "Handle different device outputs for multipath" | ||
|
Iury Gregory Melo Ferreira
|
0a29206b8d |
Handle different device outputs for multipath
In some cases the output of the multipath can differ and we would return a wrong parent device. Closes-Bug: 2043992 Change-Id: I848d7df798cc736bd5a55eed8fa46110caea1dc3 |
||
|
Adam Rozman
|
7a52314695 |
fix multipathd error handling release notes
This commit: - fixes some "multipathd error handling improvement" release notes - fixes a related comment in the code Related launchpad issue https://bugs.launchpad.net/ironic-python-agent/+bug/2031092 Change-Id: Ie3ba0601fa117b053cb8db6284e47249ca9c9134 Signed-off-by: Adam Rozman <adam.rozman@est.tech> |
||
|
Zuul
|
845df338f8 | Merge "improve multipathd error handling" | ||
|
Julia Kreger
|
33f01fa3c2 |
Fix vmedia network config drive handling
When performing DHCP-less deployments, the agent can start and discover more than one configuration drive present on a host. For example, a host was previously deployed using Ironic, and is now being re-deployed again. If Glean was present in the ramdisk, the glean-early.sh would end mounting the folder based upon label. If cloud-init, somehow is still in the ramdisk, the other folder could somehow get mounted. This patch, which is intended to be backportable, causes the agent to unmount any configuration drive folders, mount the most likely candidate based upon device type, partition, and overall state of the machine, and then utilize that configuration, if present, to re-configure and reload networking. Thus allowing dhcp-less re-deployments to be fixed without forcing any breaking changes. It should also be noted that this fix was generated in concert with an additional tempest test case, because this overall failure case needed to be reproduced to ensure we had a workable non-breaking path forward. Closes-Bug: 2032377 Change-Id: I9a3b3dbb9ca98771ce2decf893eba7a4c1890eee |
||
|
Zuul
|
9d9568ba23 | Merge "Get numa_node info when collecting pci devices info" |