summaryrefslogtreecommitdiff
path: root/releasenotes/notes
Commit message (Collapse)AuthorAgeFilesLines
* Fix compatibility with jsonschema>=4.0.0Dmitry Tantsur2022-07-281-0/+9
| | | | | | | | | | Specify the schema version for network_data and node, otherwise the latest one is used. Also fix one test where the error messages was changed. Change-Id: I4a614d7e73348bbe6c355a40881b013cbfe00b03 (cherry picked from commit 55b9579f14ea08a2dc732336d8f552cc14ab895d)
* Fix Redfish RAID to update raid_configAija Jauntēva2022-07-191-0/+6
| | | | | | | | | | | | Story: 2003514 Task: 41940 Conflicts: ironic/drivers/modules/redfish/raid.py ironic/tests/unit/drivers/modules/redfish/test_raid.py Change-Id: I753c4b00c0a64bcdc89c9bc0afd46f1211f7847b (cherry picked from commit 29364b7fb40327dc277c535e5b829133274ad420)
* Fix Redfish RAID for non-immediate controllersAija Jauntēva2022-07-151-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | Fixes ``redfish`` RAID interface workflow to not create more than 1 logical disks per controller at the same time when controller does not support 'Immediate' application time and system needs rebooting. With this fix virtual disks are grouped by controller and executed in batches when reboot is required. This enables ``redfish`` RAID interface to be used with iDRAC systems directly as although there are many controllers that support 'Immediate' application time, they do it only when system has completed loading. System intermittently completes loading after IPA starts executing clean or deploy steps rendering controllers not supporting 'Immediate' apply time and requiring reboot. This fix handles such scenario instead of failing to create more than 1 virtual disk. Story: 2009863 Task: 44529 Conflicts: ironic/drivers/modules/redfish/raid.py Change-Id: Ia2ce34f09695731b0f48798f662006c4904e2223 (cherry picked from commit d7d8f8754b36af4b686ce540e699fc5cb945c10c)
* Merge "Fix redfish RAID failed tasks" into stable/xenaZuul2022-07-151-0/+6
|\
| * Fix redfish RAID failed tasksAija Jauntēva2022-07-041-0/+6
| | | | | | | | | | | | | | | | | | | | | | Redfish Tasks do not report failures via HTTP status codes. Instead have to check TaskState and TaskStatus. Story: 2009767 Task: 44244 Change-Id: I8f9a89d18d22d18a2e695fde894bcd27f18f8954 (cherry picked from commit 196d8f7fc055667af501ea0569ba5c501a2c6e8d)
* | Fix redfish-virtual-media for newer iDRACsAija Jauntēva2022-07-011-0/+9
|/ | | | | | | | | | | | The issue with standard Redfish virtual media boot has been fixed now. Update to restrict use of redfish-virtual-media based on iDRAC firmware version. Conflicts: ironic/drivers/modules/redfish/boot.py Change-Id: I8ead1d24a9bd502b64fe7dd058e77550fcee141c (cherry picked from commit 73040c88d99f066644277f32e86d196305fc8596)
* Merge "Anaconda deploy handles configdrive correctly" into stable/xenaZuul2022-03-201-0/+19
|\
| * Anaconda deploy handles configdrive correctlyRuby Loo2022-03-111-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The anaconda deploy interface wasn't handling configdrive correctly. This fixes: - the code was incorrectly treating the config drive as a dict, whereas it could also be in iso6600 format, gzipped and base64-encoded. It is handled properly now. - kickstart commands that deal with the config drive were added to the end of the kickstart file. Which means that they are executed after an ironic API request is sent to ironic to indicate that the node has been provisioned and is ready to be rebooted. Which means that there is a possible race condition wrt these commands being completed before the node is powered off. This has been fixed by putting the API request at the end of the kickstart file. Also, a sync was added to ensure that all modifications are written to disk. - extra newlines ('\n') were incorrectly added to the user data content. This broke the content-type decoding and cloud-init was unable to proces them. The extra newlines have been removed. Conflict: ironic/common/pxe_utils.py, build_kickstart_config_options() and prepare_instance_kickstart_config() due to code changes in master that aren't here. Manually fixed. Change-Id: If00342a1bfa3e87b2094061b0e2b0b69de3a8a4f (cherry picked from commit 09d8a94d5a9b3cabdf7fddc483821fd0df69e5ee)
* | Fix rebuilds using anaconda deploy interfaceRuby Loo2022-03-141-0/+9
|/ | | | | | | | | | | | | | | | | | | | The anaconda deploy interface was saving internal information in the node's instance_info, in the user-facing 'stage2' and 'ks_template' fields. This broke rebuilds using a different image with different stage2 or template specified in the image properties. This has been fixed by saving the information in the node's driver_internal_info instead. Addresses comments/nits from https://review.opendev.org/c/openstack/ironic/+/827924. Conflict: ironic/common/pxe_utils.py & ironic/drivers/modules/pxe.py because Node.[set|del]_driver_internal_info() are only avail in master; changed to copy the dict, make the changes, and then set the node's driver_internal_info to the updated dict. Change-Id: Id9428518d21290fb38a0f7471a2cb69a6cb3ffb2 (cherry picked from commit ab68c9d88b76e4ff83f9dffddcc204676fdb50d5)
* Merge "More fixes for anaconda deploy interface" into stable/xenaZuul2022-03-111-0/+33
|\
| * More fixes for anaconda deploy interfaceRuby Loo2022-03-041-0/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The anaconda deploy interface has a few issues that are addressed here: - fixes logic in get_instance_image_info() for anaconda. If the ironic node's instance_info doesn't have both 'stage2' and 'ks_template' specified, we weren't using any values from the instance_info. This has been fixed to use values from instance_info if specified. Otherwise, they are set as follows: The 'stage2' value is taken from the image properties. We use the value for 'ks_template' if it is specified in the image properties. If not (since it is optional), we use the config option's '[anaconda]default_ks_template' value. setting. - For anaconda's stage2 directory, we were incorrectly creating a directory using the full path of the stage2 file. It now correctly creates the right directory. - The anaconda deploy interface expects the node's instance_info to be populated with the 'image_url'; added code to do that in PXEAnacondaDeploy's prepare() method. - When the deploy is finished and the bm node is being rebooted, we incorrectly set the node's provision state to 'active' instead of doing it via the provisioning state machine mechanism. - The code that was doing the validation of the kickstart file was incorrect and resulted in errors; this has been addressed. - The '%traceback' section in the packaged 'ks.cfg.template' file is deprecated and fails validation, so it has been removed. Conflict: ironic/common/pxe_utils.py, cache_ramdisk_kernel(), due to code changes in master that aren't in xena. Manually fixed. Change-Id: I953e948bcfa108d4c8e7b145da2f52b652e52a10 (cherry picked from commit 06cc5d47dcdc49193e5e4e748471eb0b9ae97bbb)
* | Set correct initrd_filename for iPXE when using SwiftDmitry Tantsur2022-02-151-0/+6
|/ | | | | | | | | | | iPXE derives its "file names" from the last component of the URL path. In case of the conductor's local server it's {mode}_{component} where mode = deploy/rescue and component = kernel/ramdisk. However, in case of Swift/Ceph, the last component will be different. This patch accounts for it. Change-Id: I7ba5545032069509a9c302abe1c21537ccb5ec8a (cherry picked from commit c975eaa8c67d917feac75c9053cddcfb708e08a3)
* Merge "ImageCache: respect Cache-Control: no-store" into stable/xenaZuul2022-02-141-0/+8
|\
| * ImageCache: respect Cache-Control: no-storeDmitry Tantsur2022-01-251-0/+8
| | | | | | | | | | | | | | | | | | | | Images can be generated on fly, so let us respect the decision of the server to disable caching. Also disable caching for file images: it's just waste of space. Change-Id: I425b1915c73354af90329d5b3a1fb0a616adaa93 (cherry picked from commit 7043a414a8646eaf5841e87c3cf9a4790d0f8a39)
* | Fix resource_url in the remaining resourcesDmitry Tantsur2022-02-031-0/+12
|/ | | | | | | | | | Node history was particularly affected: limit was not converted from string to integer, so "next" link was never added. Add some safeguards to the generic API code. Change-Id: I1328e2f07621bf7e39b96eb4a7ddb66c9a2b65bb (cherry picked from commit 55144d3bd262be35c7a034fea083c3ed73fd63d8)
* Merge "Fix validating input for redfish update_firmware" into stable/xena18.2.1Zuul2022-01-241-0/+8
|\
| * Fix validating input for redfish update_firmwareAija Jauntēva2022-01-171-0/+8
| | | | | | | | | | | | | | | | Story: 2009772 Task: 44249 Change-Id: I8e559b3c7e833c361e12d01d744510ac5c8d8cf6 (cherry picked from commit b824ea7fa8874e63cfe11bc82ce0dc049680344f)
* | Merge "Remove redfish cache entry upon errors" into stable/xenaZuul2022-01-241-0/+13
|\ \
| * | Remove redfish cache entry upon errorsJulia Kreger2021-12-081-0/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some transient errors can ultimately cause the client to need to be completely restarted due to cached connection data. Ironic now explicitly removes the cache entry when a sushy AccessError or python AttributeError is detected originating from the library. This will now result in the prior cached connection object to be discarded, and upon the next attempt to interact with the same node, a new connection will be launched. This will result in new sessions being created, but in all likelihood the prior session had already timed out or had been administratively removed. Sushy's code, as of https://review.opendev.org/c/openstack/sushy/+/820076 will raise SessionService lookup access errors as AccessErrors. Prior to that change, they should have been raised as AttributeError as the previous call sould have returned None to be used as an object. *Also* Includes follow-up change Ia59f774c9340e3a6fa63418afedf12098c709052 squashed into this change, and necessary backport friendly mock of AccessError which had changed since this release of ironic. Change-Id: Icc6e5dd74d9f15e679a7e764fe49238ed6b8dc1e Story: 2009719 Task: 44107 (cherry picked from commit 1439af27ba2bd31fb85369754c648a45ee9ca14b) (cherry picked from commit 01997c8418b9e6ade47437b09dd9412310b90eac) (cherry picked from commit e3e7deaf48a5315fe10350e8a87b2fcc4e189406)
* | | Merge "Set resource_url when getting all ports or portgroups" into stable/xenaZuul2022-01-201-0/+6
|\ \ \
| * | | Set resource_url when getting all ports or portgroupsArne Wiebalck2022-01-181-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since the default value resource_url is None, make sure the parameter is set to 'ports' when getting all ports. Change-Id: Id603ae5a4a802dfc8f866b15c8d327d95eba9310 (cherry picked from commit 2ac740e09d44bb91d0ec4180a1b5e500bc844f7c)
* | | | Set resource_url when getting all nodesArne Wiebalck2022-01-181-0/+5
|/ / / | | | | | | | | | | | | | | | | | | | | | Since the default value resource_url is None, make sure the parameter is set to 'nodes' when getting all nodes. Change-Id: I6cc52eb56c7888a433d24aa79154143d6f35cf83 (cherry picked from commit 69227c66c25d49beab3210bdf08f53cbde78d87f)
* | | Do not fail inspection on invalid MACDmitry Tantsur2022-01-171-0/+5
| |/ |/| | | | | | | | | | | | | | | | | | | | | Some adapters may have addresses that are not MAC. See for example: https://github.com/metal3-io/ironic-image/issues/314 Conflicts: ironic/drivers/modules/inspect_utils.py ironic/tests/unit/drivers/modules/test_inspect_utils.py Change-Id: I0023e0750e372185747ca28cddd2a8dda110dd7f (cherry picked from commit 9308c0a0b689fec5ca72ecb008a824ea23667a07)
* | Merge "Ensure 'port' is up2date after binding:host_id" into stable/xenaZuul2022-01-131-0/+6
|\ \
| * | Ensure 'port' is up2date after binding:host_idHarald Jensås2022-01-121-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On neutron routed provider networks IP allocation is deferred until 'binding:host_id' is set. When ironic creates neutron ports it first creates the port, then updates the port setting binding information. When using IPv6 networking ironic adds additional address allocations to ensure network chain-booting will succeed. When address allocation is deferred on port create ironic cannot detect that IPv6 is used and does not add the required additional addresses. This change ensures the 'port' object is updated after the port update setting the port binding required for neutron to allocate the address. This allows ironic to correctly detect IPv6 is used, and it will add the required IP address allocations. Story: 2009773 Task: 44254 Change-Id: I863dd4ab9615a9ce3b3dcb8798af674ac9966bf2 (cherry picked from commit 3404dc913e0a0a595c3696454b878b716833d612)
* | | Add dhcp options for each ip_version onceHarald Jensås2022-01-101-0/+8
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | Currently duplicate DHCP options are added when a port have multiple address in the same address familiy. The duplicate entries cause an internal server error in neutron. This fixes the issue by only adding DHCP options for each IP-version. Story: 2009774 Task: 44255 Change-Id: I8bef819dc3101f88f4e04ea986e1039e34d917ed (cherry picked from commit c4721da2d899e1c51e716577e776c6ee14e2e35e)
* | Fix redfish update_firmware for newer SushyAija Jauntēva2021-12-201-0/+5
| | | | | | | | | | | | | | | | | | `TaskMonitor.task_monitor` is deprecated and was removed from sushy at Ie48fab19199c0c2f3455d2212d50460a29685eed. Somehow missed to update it for `redfish` firmware upgrade steps previously. Change-Id: Iced8e921335995e1e084d6e632c6e81d3fc9249f (cherry picked from commit 9076f185ca40e7629523b926ddf817da1ca6b4a8)
* | Merge "Adoption: do not validate boot interface when local booting" into ↵Zuul2021-12-151-0/+5
|\ \ | |/ |/| | | stable/xena
| * Adoption: do not validate boot interface when local bootingDmitry Tantsur2021-12-151-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We validate the boot interface during adoption because of: a) potential rebuilding, b) non-local boot. Rebuild proved a rarely used feature, and local boot is the default nowadays, so it makes less sense to unconditionally validate the boot interface during adoption. We will run the validation anyway the next time we need to do something with booting. Similarly, do not record is_whole_disk_image None if it cannot be reliably determined. Conflicts: ironic/conductor/manager.py Change-Id: I95252aea808c48ea2d94569449c871f0d483caaa (cherry picked from commit d342b07dd6f8c5478f37a31b14e77bba6bef55e2)
* | Explicitly pin upper sushy versionJulia Kreger2021-12-071-0/+6
| | | | | | | | | | | | | | | | | | | | | | Sushy 4.0.0 has breaking changes in it which prevent usage with this version of ironic. While the global upper requirements is unlikely ever to attempt to increment to 4.0.0, the explicit requirements invocation, like what is in place for running driver unit tests, was trying to pull in 4.0.0 resulting in test failures. Change-Id: Ief828f139bac9ba00f3250d8ddf4fd3d84a6fa7a
* | Fix idrac-wsman deploy with existing non-BIOS jobsAija Jauntēva2021-11-081-0/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As with WS-Man iDRAC API setting boot device requires creating BIOS job and there can be only 1 open job per subsystem present in iDRAC, there is validation to check that the job queue is empty before continuing setting boot device. This does not work well for cases when using autoupdatescheduler that creates `Repository Update` job that stays Scheduled until executed and then followed by new Scheduled `Repository Update` job. This patch allows non-BIOS jobs to be present in the queue when setting boot device. This will still fail for cases when there are BIOS jobs present. In such cases should consider moving to idrac-redfish that does not create BIOS or any other job to set boot device. Story: 2009251 Task: 43437 Change-Id: I91e9ba3024a85897aeead21cede57464294b409b (cherry picked from commit b1d08ae80542b6b3aa9fab99cdc64b449d113115)
* | Fix various issues in the anaconda deploy interfaceArun S A G2021-10-281-0/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The kickstart template expects a dictionary with 'ks_options' as the key. Instead build_kickstart_config_options function returns a dict with keys 'liveimg_url', 'agent_token' and 'heartbeat_url'. This change fixes this problem by returning a dictionary of dict with 'ks_options' as key and the dictionary with keys 'liveimg_url', 'agent_token' and heartbeat_url' as value. Fix a bug where the deploy() method of anaconda deploy interface where it did not return states.DEPLOYWAIT instead it returned 'None' which caused the instance to go straight to 'active' instead of 'wait call-back'. Fix issues in the default kickstart template where heartbeat was missing 'callback_url' parameter and the HTTP method should be 'POST' not 'PUT'. Fix issues with automated cleaning when anaconda deploy interface is used. Anaconda deploy interface could not deploy tarballs as the disk image sent to the anaconda interface via liveimg --url kickstart command does not include any file extension. When no file extension is present the kickstart command liveimg --url assumes the disk is a mountable partiton image. We fix this problem by enabling the user to specify file extensions using a glance image property named 'disk_file_extension' on the OS image. Co-Authored-By: Ruby Loo <opensrloo@gmail.com> Change-Id: I556f8c9efbc5ab0941513c3ecaa2aa3ca7f346ae
* | Do not append filename parameter to image URL when using local fileJacob Anders2021-10-191-0/+10
|/ | | | | | | | | | | | | | | | | | | Currently Ironic always adds a filename parameter to virtual media image URL, for example: http://localhost/redfish/boot.iso?filename=file.iso. This is useful on certain BMCs which require a ".iso" suffix in the image URL especially when using swift as the image source. This should not be neccessary with file based virtual media images and adding this parameter can cause issues in BMCs which do not accept special characters such as "=" and "?" in virtual image URL. This change alters Ironic's behaviour to only add the filename parameter if swift backing store is used for the image. Story: 2009278 Task: 43547 Change-Id: I3338bdb6a24d9695ce32d205221183b9b876bcc8 (cherry picked from commit e05f74c623d53aecc4a2e097595da8cdbd2607ef)
* Do not use any parts of image URL in temporary file namesDmitry Tantsur2021-10-181-0/+5
| | | | | | | | | | | | | We currently use the last component, which is: a) a potential information exposure, b) can hit file name length limits [1] Use the master path file name instead, which is always a UUID. [1] https://bugzilla.redhat.com/show_bug.cgi?id=2014630 Change-Id: I2aa1230468132c2b7a8585d691ec180947f89c1e (cherry picked from commit 7d85694fdf85a269cb3023083bf567a0e7e4ec13)
* [iRMC] Set polling after RAID is builtZhou Hao2021-10-051-0/+8
| | | | | | | | | | | | | Avoid resume clean before raid is actually configured. 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. Story: #2009231 Task: #43336 Signed-off-by: Zhou Hao <zhouhao@fujitsu.com> Change-Id: I7a551199224c24ca270b8b02d76b39386632c94f (cherry picked from commit b617e43462ffff9a9220e89051455b7ae3b037ca)
* [iRMC] Avoid repeatedly resuming clean after creating raid configurationZhou Hao2021-10-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | Fixed the bug of repeated resume cleaning due to the value of `fgi_status` not being updated correctly when obtaining the RAID configuration status of the node managed by the `irmc` hardware type. ``` Unexpected error when processing next clean step. TypeError: 'NoneType' object is not subscriptable ``` This `NoneType` error occurs because ironic resumes clean without waiting for IPA to get the clean steps, and then it tries to read the clean steps which should be a list but actually is none. During auto clean, resume clean should be triggered by IPA, but in this case, it is triggered by a iRMC periodic task which checks the progress of running raid config. This error does not occur every time, sometime raid can be configured, auto clean can complete without error and the node can be deployed successfully. Story: #2009206 Task: #43265 Signed-off-by: Zhou Hao <zhouhao@fujitsu.com> Change-Id: I5a1c5708bdc1709e928f0faf7e18396e260dc551 (cherry picked from commit 8a5c672fa96521bd7d340c64b0c6ae2785643951)
* Set stage for release 18.2Julia Kreger2021-09-211-0/+9
| | | | | | | | | Pre-release changes perr our release documentation, https://docs.openstack.org/ironic/latest/contributor/releasing.html. Additionally, adds a prelude for our release notes. Change-Id: Ib55eed3df4924860a970d0a1fbd43c182119de3e
* Merge "Reno for default_boot_mode change in Yoga"Zuul2021-09-211-0/+7
|\
| * Reno for default_boot_mode change in YogaJulia Kreger2021-09-211-0/+7
| | | | | | | | Change-Id: I64da534508af30318b0c9dcfce989cfb4f98da0b
* | Merge "Fix idrac-wsman having Completed with Errors jobs"Zuul2021-09-211-0/+8
|\ \
| * | Fix idrac-wsman having Completed with Errors jobsAija Jauntēva2021-09-171-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | iDRAC jobs can finish in 'Completed', 'Failed' and also 'Completed with Errors' state. This fix adds handling of 'Completed with Errors' as finished failed job otherwise node stays in wait state as it does not consider such jobs as finished. Change-Id: I5018bf8ef6c86c6d303258f1497fa83d33b3cb76
* | | Merge "Facilitate asset copy for bootloader ops"Zuul2021-09-211-0/+12
|\ \ \ | |_|/ |/| |
| * | Facilitate asset copy for bootloader opsJulia Kreger2021-09-151-0/+12
| | | | | | | | | | | | | | | | | | | | | Adds capability to copy bootloader assets from the system OS into the network boot folders on conductor startup. Change-Id: Ica8f9472d0a2409cf78832166c57f2bb96677833
* | | Merge "API endpoints to get node history"Zuul2021-09-211-0/+8
|\ \ \
| * | | API endpoints to get node historyJulia Kreger2021-09-151-0/+8
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds API for retrieving node history events via a node. Includes pagination and limitation of the response set. Story: 2002980 Tas: 42961 Change-Id: I22a92fa6c30d721f6a5dd0670b2e0a9cf76ad7b1
* | | Merge "Support HttpHeaders in create_subscription"Zuul2021-09-211-0/+5
|\ \ \ | |_|/ |/| |
| * | Support HttpHeaders in create_subscriptionIury Gregory Melo Ferreira2021-09-141-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support to check if request to create a subscription contains HttpHeaders so we can send in the payload. [1] [1] https://redfish.dmtf.org/schemas/v1/EventDestination.v1_0_0.json Change-Id: I548ae06e22f217bf10ce6a7af57addfa7f9be555
* | | Merge "Fix clear foreign config in idrac-redfish RAID"Zuul2021-09-161-0/+6
|\ \ \
| * | | Fix clear foreign config in idrac-redfish RAIDAija Jauntēva2021-09-141-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After volumes are deleted in Redfish RAID also clear foreign config if there is any. Story: 2009160 Task: 43145 Depends-On: https://review.opendev.org/c/x/sushy-oem-idrac/+/806888 Change-Id: Ifde4656b4edd387ce2db2dbfc4c5ede261fafc70
* | | | Merge "Fix RAID steps for non-RAID in idrac-redfish"Zuul2021-09-161-0/+7
|\ \ \ \ | |/ / / | | | / | |_|/ |/| |