summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* | | No deploy_kernel/ramdisk with the ramdisk deploy and no cleaningDmitry Tantsur2022-07-117-14/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Ramdisk deploys don't use IPA, no need to provide it. Cleaning may need the agent, so only skip verification if cleaning is disabled. Other boot interfaces may need fixing as well, I haven't checked them. Change-Id: Ia2739311f065e19ba539fe3df7268075d6075787 (cherry picked from commit 65583e64172a0188d125117d1f2288e105832395)
* | | Fix redfish-virtual-media for newer iDRACsAija Jauntēva2022-07-055-19/+73
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Change-Id: I8ead1d24a9bd502b64fe7dd058e77550fcee141c (cherry picked from commit 73040c88d99f066644277f32e86d196305fc8596)
* | | Merge "Pin neutron to stable/yoga for bugfix/19.0 ironic-base job" into ↵Zuul2022-06-281-0/+2
|\ \ \ | |/ / |/| | | | | bugfix/19.0
| * | Pin neutron to stable/yoga for bugfix/19.0 ironic-base jobRiccardo Pittau2022-06-241-0/+2
| |/ | | | | | | | | | | | | | | The bugfix/19.0 branch is compatible to stable/yoga Pinning neutron too after we did it for swift to keep compatibility and fix CI also in ironic-python-agent bugfix/8.3 Change-Id: I255dbac75a47395991be69ff36e32bb3af311e42
* | deploy_utils: only check glance for image properties kernel/ramdiskDmitry Tantsur2022-06-032-32/+3
|/ | | | | | | Other image services cannot have them, not use making a network call. Change-Id: I691ae5b67358ced5f0aa860b9ca6ccec58c897ad (cherry picked from commit 374d5e5a3037a6b985933e734e902b2e05d805bb)
* Fix CIRiccardo Pittau2022-06-031-0/+2
| | | | | | | Since bugfix/19.0 is based on stable/yoga pinning swift to that branch to make it compatible again. Change-Id: I151c1e90b946a41924a5d43d39ab7b3bbc5c60b7
* Fix ironic-lib from source and branch detection in IPA buildsDmitry Tantsur2022-05-304-8/+64
| | | | | | | | | Also updates tox.ini and tempaltes jobs to use yoga Prevents the ironic-lib CI from testing ironic-lib changes in IPA. Change-Id: I936f6c1506c585826501ff3ac0bad0c755b4d360 (cherry picked from commit b94e52f55a0c4f9d6f3a771179da4ec5ccbddbd7) (cherry picked from commit 5a2d2df4725e696242945996996c949a8c2e5f76)
* Merge "Fix rebuilds using anaconda deploy interface" into bugfix/19.0Zuul2022-03-293-33/+64
|\
| * Fix rebuilds using anaconda deploy interfaceRuby Loo2022-03-153-33/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Change-Id: Id9428518d21290fb38a0f7471a2cb69a6cb3ffb2 (cherry picked from commit ab68c9d88b76e4ff83f9dffddcc204676fdb50d5)
* | Anaconda deploy handles configdrive correctlyRuby Loo2022-03-156-10/+42
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 prepare_instance_kickstart_config() due to utils.write_to_file() change in master that isn't avail here. Manually fixed. Change-Id: If00342a1bfa3e87b2094061b0e2b0b69de3a8a4f (cherry picked from commit 09d8a94d5a9b3cabdf7fddc483821fd0df69e5ee)
* Merge "More fixes for anaconda deploy interface" into bugfix/19.0Zuul2022-03-145-45/+93
|\
| * More fixes for anaconda deploy interfaceRuby Loo2022-03-075-45/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. Change-Id: I953e948bcfa108d4c8e7b145da2f52b652e52a10 (cherry picked from commit 06cc5d47dcdc49193e5e4e748471eb0b9ae97bbb)
* | Merge "Inspector: better error message on DiscoveryFailure" into bugfix/19.0Zuul2022-03-072-3/+21
|\ \
| * | Inspector: better error message on DiscoveryFailureDmitry Tantsur2022-02-012-3/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The keystoneauth's error message on connection problems is very confusing: Version requested but version discovery document was not found and allow_version_hack was False While I'm trying to improve the situation in [1], it still won't be perfect. This patch adds some context to DiscoveryFailure. We should probably do the same for other services, but inspector is particularly affected since it can be used standalone. [1] https://review.opendev.org/c/openstack/keystoneauth/+/825540 Change-Id: Ibd41580d1389c7584639bf000e330fec5ee1b73d (cherry picked from commit 503e3658243bf8d793063734151c4f94e3af1fe4)
* | | Merge "Set correct initrd_filename for iPXE when using Swift" into bugfix/19.0Zuul2022-03-073-5/+20
|\ \ \ | |_|/ |/| |
| * | Set correct initrd_filename for iPXE when using SwiftDmitry Tantsur2022-02-153-5/+20
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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 "CI: force config drive on the multinode job's subnode" into bugfix/19.0Zuul2022-02-231-0/+1
|\ \ \
| * | | CI: force config drive on the multinode job's subnodeDmitry Tantsur2022-02-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We need configdrives to pass information reliably, and the new cirros image does not work without them. Change-Id: I6cafa050d5c1c8289483f968d26c50485fd4528a (cherry picked from commit 2f09b7b1026551cb5818436a3714260fee9fcac4)
* | | | Build the new cirros image even when netboot is the defaultDmitry Tantsur2022-02-221-4/+6
|/ / / | | | | | | | | | | | | | | | | | | | | | The standalone job changes boot_option in runtime, so local boot can be used even when the default boot option is netboot. Change-Id: Ia538907f3662e8cd84d988ea5d862c7f488558e1 (cherry picked from commit 7ac480412626c38fa3493088dbf49e29303491b6)
* | | CI: use a custom cirros partition image instead of the defaultDmitry Tantsur2022-02-175-6/+129
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Cirros partition images are not compatible with local boot since they don't ship grub (nor a normal root partition). This change adds a script that builds a partition image with UEFI artifacts present. It still cannot be booted in legacy mode, but it's a progress. Set the tempest plugin's partition_netboot option. We need it to inform the tempest plugin about the ability to do local boot. This option already exists but is never set. Also set the new default_boot_option parameter, which will be introduced and used in Iaba563a2ecbca029889bc6894b2a7f0754d27b88. Remove netboot from most of the UEFI jobs. Change-Id: I15189e7f5928126c6b336b1416ce6408a4950062 (cherry picked from commit bbceca562e0b552cd2fc33b2833931ab3cbbfce5)
* | Fix resource_url in the remaining resourcesDmitry Tantsur2022-02-0316-52/+83
| | | | | | | | | | | | | | | | | | | | 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 "Add additional ramdisk tests" into bugfix/19.0Zuul2022-02-033-1/+138
|\ \ | |/ |/|
| * Add additional ramdisk testsJulia Kreger2022-02-013-1/+138
| | | | | | | | | | | | | | | | | | | | | | Noticed we're missing some test coverage in regards to booting from ramdisks when I was investigating an issue which was reported against wallaby. Adds tests which *should* catch the issue I'm chasing in wallaby. Change-Id: I4965d0cc3966c50fa0485b5e194248dd2072f7a8 (cherry picked from commit e851d63464597f8825d4c14c0e632d39b82dbc4d)
* | Avoid non-Stream CentOSDmitry Tantsur2022-02-011-1/+1
|/ | | | | | | | This is a partial cherry-pick of 720b42d538c406d852651758375e02ef29d82cc5, we don't need to disable the standalone job since it's not broken here. Change-Id: I8bd051ea709d328cb5efa2c2cbd5a226bdb4cfd3 (cherry picked from commit 720b42d538c406d852651758375e02ef29d82cc5)
* Merge "Fix validating input for redfish update_firmware" into bugfix/19.0Zuul2022-01-315-0/+164
|\
| * Fix validating input for redfish update_firmwareAija Jauntēva2022-01-175-0/+164
| | | | | | | | | | | | | | | | Story: 2009772 Task: 44249 Change-Id: I8e559b3c7e833c361e12d01d744510ac5c8d8cf6 (cherry picked from commit b824ea7fa8874e63cfe11bc82ce0dc049680344f)
* | Merge "Set resource_url when getting all ports or portgroups" into bugfix/19.0Zuul2022-01-204-2/+14
|\ \
| * | Set resource_url when getting all ports or portgroupsArne Wiebalck2022-01-184-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | 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-183-0/+15
|/ / | | | | | | | | | | | | | | 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)
* | Merge "Do not fail inspection on invalid MAC" into bugfix/19.0Zuul2022-01-173-2/+19
|\ \
| * | Do not fail inspection on invalid MACDmitry Tantsur2022-01-173-2/+19
| |/ | | | | | | | | | | | | | | Some adapters may have addresses that are not MAC. See for example: https://github.com/metal3-io/ironic-image/issues/314 Change-Id: I0023e0750e372185747ca28cddd2a8dda110dd7f (cherry picked from commit 9308c0a0b689fec5ca72ecb008a824ea23667a07)
* | Merge "Fix Redfish RAID deploy steps" into bugfix/19.0Zuul2022-01-172-4/+15
|\ \ | |/ |/|
| * Fix Redfish RAID deploy stepsAija Jauntēva2022-01-132-4/+15
| | | | | | | | | | Change-Id: I423b387a9fe9b4d0a13ecf31a89f04c32cb26950 (cherry picked from commit 6fed0964a5cd913264165ca8c218a9e26b913ab2)
* | Merge "Ensure 'port' is up2date after binding:host_id" into bugfix/19.0Zuul2022-01-133-1/+13
|\ \ | |/ |/|
| * Ensure 'port' is up2date after binding:host_idHarald Jensås2022-01-123-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-103-3/+17
|/ | | | | | | | | | | | | | 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)
* Configure CI for bugfix/19.0Dmitry Tantsur2021-12-203-6/+17
| | | | | | | Add branch mapping so that devstack jobs work. Use master for Bifrost (which is not strictly correct but is good enough). Change-Id: I4606a278a55d00fbfd2b0c60c51b0f13cae8a06e
* Fix redfish update_firmware for newer SushyAija Jauntēva2021-12-203-3/+8
| | | | | | | | | `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)
* Adoption: do not validate boot interface when local bootingDmitry Tantsur2021-12-153-11/+60
| | | | | | | | | | | | | | | | | 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. Change-Id: I95252aea808c48ea2d94569449c871f0d483caaa (cherry picked from commit d342b07dd6f8c5478f37a31b14e77bba6bef55e2)
* Update .gitreview for bugfix/19.0OpenStack Release Bot2021-12-101-0/+1
| | | | Change-Id: Ib01b711eeacbe16b1fb6afd5a862e36d60cef9ad
* CI: Lower test VM memory by 200MB19.0.0Julia Kreger2021-12-081-1/+1
| | | | | | We're seeing OOM events in CI, hopefully this helps. Change-Id: Id8c0e4830011ca2fa526df461ed5b9b01f769cf9
* Merge "Use test_with_retry to get the tap device name"Zuul2021-12-081-5/+3
|\
| * Use test_with_retry to get the tap device nameSteve Baker2021-11-221-5/+3
| | | | | | | | | | | | | | | | | | | | | | This change replaces the 10 second sleep with a retry that has a timeout of 20 seconds to discover the name of the tap device. There are gate failures when there is still not a tap device after the 10 second sleep, so this approach should be faster in the common case, and the higher timeout should provide more reliability. Change-Id: I5e59ade9f830182b483b9655aaaf6c93b0bfac44
* | Merge "Add "none" RPC transport that disables the RPC bus"Zuul2021-12-0811-16/+123
|\ \
| * | Add "none" RPC transport that disables the RPC busDmitry Tantsur2021-12-0711-16/+123
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When using the new combined executable in a single-conductor scenario, it may make sense to completely disable the remote RPC. The new ``rpc_transport`` value ``none`` achieves that. Change-Id: I6a83358c65b3ed213c8a991d42660ca51fc3a8ec Story: #2009676 Task: #44104
* | | Merge "All-in-one Ironic service with a local RPC bus"Zuul2021-12-0810-61/+265
|\ \ \ | |/ /
| * | All-in-one Ironic service with a local RPC busDmitry Tantsur2021-12-0710-61/+265
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a new executable /usr/bin/ironic (cool that we no longer have a CLI with this name) that starts API and conductor together in the same process. When an RPC host name matches the current one, the call is not routed through the remote RPC, a local function call is done instead. Story: #2009676 Task: #43953 Change-Id: I51bf7226aea145dc7c8fd93d61caa233ca16c9c9
* | | devstack: provide a default for OS_CLOUDDmitry Tantsur2021-12-082-12/+7
| | | | | | | | | | | | | | | | | | Not having it breaks the inspector grenade job. Change-Id: I7ee28a85cb2005dd69e6711b301cd029b8ca40cc
* | | Merge "Refactor driver_internal_info updates to methods"Zuul2021-12-078-146/+141
|\ \ \
| * | | Refactor driver_internal_info updates to methodsSteve Baker2021-12-038-146/+141
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Making updates to driver_internal_info can result in hard to read code due the requirement to assign the whole driver_internal_info back to the node to trigger the expected update operation. This change replaces driver_internal_info update operations with a new methods: - set_driver_internal_info - del_driver_internal_info - timestamp_driver_internal_info This change defines the functions and moves core conductor logic to use them. Subsequent changes in this series will move drivers to use the new functions. Change-Id: Ib8917c3c674e77cd3aba6a1e73c65162e3ee1141