2023.1 Series (9.2.0 - 9.4.x) Release Notes

9.4.3

Bug Fixes

  • Fixes an issue where configuration drive volumes which are mounted by the operating system could remain mounted and cause a lock to be held, which may conflict with actions such as rebuild. The agent now always makes sure the folder used by Glean and Cloud-init is not mounted.

  • Fixes bug 2066308, an issue where Ironic Python Agent would call evaluate_hardware_support multiple times on hardware manager plugins. Scanning for hardware and disks is time consuming, and caused timeouts on badly-performing nodes.

9.4.2

Upgrade Notes

  • Deployers implementing their own HardwareManagers must to audit their code for unsafe uses of qemu-img and related methods.

Security Issues

  • Ironic-Python-Agent now checks any supplied image format value against the detected format of the image file and will prevent deployments should the values mismatch.

  • Images previously misconfigured as raw despite being in another format, in some non-default configurations, may have been mistakenly converted if needed. Ironic-Python-Agent will no longer perform conversion in any case for images with metadata indicating in raw format.

  • Ironic-Python-Agent always inspects any non-raw user image content for safety before running any qemu-based utilities on the image. This is utilized to identify the format of the image and to verify the overall safety of the image. Any images with unknown or unsafe feature uses are explicitly rejected. This can be disabled in both IPA and Ironic by setting [conductor]disable_deep_image_inspection to True for the Ironic deployment. Image inspection is the primary mitigation for CVE-2024-44082 being tracked in bug 2071740. Operators may desire to set [conductor]conductor_always_validates_images on Ironic conductors to mitigate the issue before they have upgraded their Ironic-Python-Agent.

  • Ironic-Python-Agent now explicitly enforces a list of permitted image types for deployment, defaulting to “raw” and “qcow2”. Other image types may work, but are not explicitly supported and must be enabled. This can be modified by setting [conductor]permitted_image_formats for all Ironic services.

Bug Fixes

  • Fixes multiple issues in the handling of images as it related to execution of the qemu-img utility. When using this utility to convert an unsafe image, a malicious user can extract information from a node while Ironic-Python-Agent is deploying or converting an image. Ironic-Python-Agent now inspects all non-raw images for safety, and never runs qemu-based utilities on raw images. This fix is tracked as CVE-2024-44082 and bug 2071740.

  • Images with metadata indicating a “raw” disk format may have been transparently converted from another format. Now, these images will have their exact contents imaged to disk without modification.

9.4.1

Bug Fixes

  • Fixes a failure case where a deployed instance may be unable to access the configuration drive post-deployment. This can occur when block devices only support 4KB IO interactions. When 4KB block IO sizes are in use, the ISO9660 filesystem driver in Linux cannot be used as it is modeled around a 2KB block. We now attempt to verify, and rebuild the configuration drive on a FAT filesystem when we cannot mount the supplied configuration drive. Operators can force the agent to write configuration drives using the FAT filesystem using the [DEFAULT]config_drive_rebuild option.

  • Fixes a failure case where downloads would not be retried when the checksum fails verification. the agent now includes the checksum activity as part of the file download operation, and will automatically retry downloads when the checksum fails in accordance with the existing download retry logic. This is largely in response to what appears to be intermittent transport failures at lower levels which we cannot otherwise detect.

  • Fixes UEFI NVRAM record handling with efibootmgr so we can accept and handle UTF-16 encoded data which is to be expected in UEFI NVRAM as the records are UTF-16 encoded.

  • Fixes handling of UEFI NVRAM records to allow for unexpected characters in the response, so it is non-fatal to Ironic.

  • Fixes an issue with rebuilding instances on Software RAID with RAIDed ESP partitions.

  • Fixes, or at least lessens the case where a running Ironic agent can stack up numerous lookup requests against an Ironic deployment when a node is locked. In particular, this is beause the lookup also drives generation of the agent token, which requires the conductor to allocate a worker, and generate the token, and return the result to the API client. Ironic’s retry logic will now wait up to 60 seconds, and if an HTTP Conflict (409) message is received, the agent will automatically pause lookup operations for thirty seconds as opposed continue to attempt lookups which could create more work for the Ironic deployment needlessly.

Other Notes

  • The agent now logs the size of data transferred when downloading images, which can be helpful in troubleshooting image download issues.

9.4.0

New Features

  • Add two clean steps MellanoxDeviceHardwareManager to update NVIDIA NICs firmware images and settings, * update_nvidia_nic_firmware_image * update_nvidia_nic_firmware_settings