Current Series Release Notes


New Features

  • The configuration options enabled_power_interfaces and enabled_management_interfaces are now empty by default. If left empty, their values will be calculated based on enabled_hardware_types.

  • The Bare Metal service is now capable of calculating the default value for any enabled_***_interfaces based on enabled_hardware_types.

  • Fast track mode can now be enabled or disabled per node:

    baremetal node set <node> --driver-info fast_track=true
  • Manually copying the initial grub config for grub network boot is no longer necessary, as this file is now written to the TFTP root directory on conductor startup. A custom template can be used to generate this file with config option [pxe]initial_grub_template.

  • Updates idrac-redfish management interface export configuration step to not export iDRAC BMC connection settings to avoid overwriting those in another system when using unmodified configuration mold in import step. For import step it is still possible to add these settings back manually.

Upgrade Notes

  • Bootloader installation failures are now fatal for whole disk images. Previously these failures were ignored to facilitate backwards compatibility with older Ironic Python Agents, however we can now rely on having a sufficiently modern IPA.

  • The configuration option [inspector]power_off is now ignored for nodes that have fast-track enabled. These nodes are never powered off.

  • Foreign keys are now enabled when SQLite is used as a database.

Bug Fixes

  • No longer validates boot interface parameters when adopting a node that uses local boot.

  • Fix Node Console Duplicate Sol Session. This patch adds “sol deactivate” action before start node console, to make sure the current console connection always a success. See story 2009762.

  • Fixed an issue where duplicate extra DHCP options was passed in the port update request to the Networking service. The duplicate DHCP options caused an error in the Networking service and node provisioning would fail. See bug: 2009774.

  • Fixed an issue where provisioning/cleaning would fail on IPv6 routed provider networks. See bug: 2009773.

  • Fixes validation of input argument firmware_images of redfish hardware type clean step update_firmware. Now it validates the argument at the beginning of clean step. Prior to this fix issues were determined at the time of executing firmware update or not at all (for example, mistyping optional field ‘wait’).

  • Fixes redfish hardware type update_firmware cleaning step to work with Sushy version 4.0.0 or greater.

  • Fixes hardware type redfish RAID interface deploy steps when completion requires rebooting system for non-immediate configuration application. Prior to this fix such nodes would remain in wait call-back state indefinitely.

  • Fixes an issue where clients would get a 404 due to the node pagination breaking at max_limit due to an uninitialised resource_url.

  • Fixes an issue where clients would get a 404 due to the port and portgroups pagination breaking at max_limit due to an uninitialised resource_url.

  • Inspection no longer fails when one of the NICs reports NIC address that is not a valid MAC (e.g. a WWN).

  • The image cache now respects the Cache-Control: no-store header for HTTP(s) images.

  • File images are no longer cached in the image cache to avoid unnecessary consumption of the disk space.

Other Notes

  • The fake-hardware hardware types now explicitly declares support for all generic interface implementations, so that they can be used in the defaults calculation.


New Features

  • Adds support for running management.clear_job_queue, management.reset_idrac and management.known_good_state methods as verify steps on iDRAC hardware type, for both idrac-wsman and idrac-redfish interfaces. In order to use this feature, [conductor]verify_step_priority_override needs to be used to set non-zero step priorities for the desired verify steps.

  • Adds support for verify steps - a mechanism for running optional, actions pre-defined in the driver while the node is in transition from enroll to managable state, prior to inspection.

  • Adds a new executable ironic that starts both API and conductor in the same process. Calls between the API and conductor instances in the same process are not routed through the RPC.

  • The ipxe boot interface is now enabled by default.

  • Adds a new configuration option [pxe]ipxe_fallback_script which allows iPXE boot to fall back to e.g. ironic-inspector iPXE script.

  • ISO images provided via instance_info/boot_iso or instance_info/deploy_iso are now cached in a similar way to normal instance images. Set [deploy]iso_master_path to an empty string to disable.

  • All image caches are now cleaned up periodically, not only when used. Set [conductor]cache_clean_up_interval to tune the interval or disable.

  • The redfish hardware type is now enabled by default along with all its supported hardware interfaces.

  • Adds a new none RPC transport that can be used together with the combined ironic executable to completely disable the RPC bus.

  • Adds new configuration option: [snmp]power_action_delay This option will add a delay in seconds before a snmp power on and after power off. Which may be needed with some PDUs as they may not honor toggling a specific power port in rapid succession without a delay. This option may be useful if the attached physical machine has a substantial power supply to hold it over in the event of a brownout.

  • The default deployment boot mode is now UEFI. Legacy BIOS is still supported, however operators who require BIOS nodes will need to set their nodes, or deployment, appropriately.

Upgrade Notes

  • The ipxe boot interface is now enabled and will have priority over pxe by default. If you rely on the default value of the enabled_boot_interfaces option to not contain ipxe, you need to set it explicitly.

  • The default boot mode has been changed and is now UEFI. Operators who were explicitly relying upon BIOS based deployments in the past, may wish to consider setting an explicit node level override for the node to only utilize BIOS mode. This can be configured at a conductor level with the [deploy]default_boot_mode. Options to set this at a node level can be found in the Ironic Installation guide - Advanced features documentation.

Bug Fixes

  • Fixes a bug in the anaconda deploy interface where the ks_options key was not found when rendering the default kickstart template.

  • Fixes an issue where PXEAnacondaDeploy interface’s deploy() method did not return states.DEPLOYWAIT so the instance went straight to active instead of wait call-back.

  • Fixes an issue where the anaconda deploy interface mistakenly expected squashfs_id instead of stage2_id property on the image.

  • Fixes the heartbeat mechanism in the default kickstart template ks.cfg.template as the heartbeat API only accepts POST and expects a mandatory callback_url parameter.

  • Fixes handling of tarball images in anaconda deploy interface. Allows user specified file extensions to be appended to the disk image symlink. Users can now set the file extensions by setting the disk_file_extension property on the OS image. This enables users to deploy tarballs with anaconda deploy interface.

  • Fixes an issue where automated cleaning was not supported when anaconda deploy interface is used.

  • Fixes idrac-wsman management interface set_boot_device method that would fail deployment when there are existing jobs present with the error:

    "Failed to change power state to ''power on'' by ''rebooting''.
    Error: DRAC operation failed. Reason: Unfinished config jobs
    found: <list of existing jobs>. Make sure they are completed
    before retrying."

    Now there can be non-BIOS jobs present during deployment. This will still fail for cases when there are BIOS jobs present. In such cases it’s advised to use the idrac-redfish interface that does not have this limitation when setting boot device.

  • Fixes File name too long in the image caching code when a URL contains a long query string.

  • Fixes an issue with a node’s instance_info interface override caused when Ironic uses the interface attribute directly. Does so by adding a get_interface method to a node, and updating the Ironic code to use it where needed.

  • Fixes an issue where the port value is not converted to int type when nodes are managed by the irmc hardware type.

  • Fixes an issue where cleaning continuously repeats due to the value of fgi_status not being updated correctly when obtaining the RAID configuration status of nodes managed by the irmc hardware type.

  • When configuring RAID on iRMC machines through ironic, polling is not set when RAID is created. After creating the RAID, set up polling will notify ironic to wait for the RAID configuration to complete before proceeding to the next step instead of check IPA.

  • Fixes connection caching issues with Redfish BMCs where AccessErrors were previously not disqualifying the cached connection from being re-used. Ironic will now explicitly open a new connection instead of using the previous connection in the cache. Under normal circumstances, the sushy redfish library would detect and refresh sessions, however a prior case exists where it may not detect a failure and contain cached session credential data which is ultimately invalid, blocking future access to the BMC via Redfish until the cache entry expired or the ironic-conductor service was restarted. For more information please see story 2009719.

  • Removing ?filename=file.iso suffix from the virtual media image URL when the image is a regular file due to incompatibility with SuperMicro X12 machines which do not accept special characters such as = or ? in the URL. Historically, this suffix was being added to improve compatibility with those BMCs which require .iso suffix in the URL while using swift as the image store. Old behaviour will remain for swift backed images.

  • Fixes restricted allocation creation for old policy defaults. This involves a check that ensures that the user is not trying to create an allocation with an owner other than themselves. This check is updated to also see if the user is actually trying to set an allocation owner.

Other Notes

  • The agent deploy and cleaning code no longer uses an RPC call to the same conductor when proceeding to the next deploy or clean step.