summaryrefslogtreecommitdiff
path: root/devstack
Commit message (Collapse)AuthorAgeFilesLines
* CI: Add iweb to the use tinyipa on listJulia Kreger2022-06-271-3/+6
| | | | | Change-Id: Ib1d415928a6555298d42e8d525f04eb1028a4bb8 (cherry picked from commit e0c758bb95f92081e54f3c8ed9fa95dcbe7d917e)
* Add workaround for sha1 support removal from SwiftRiccardo Pittau2022-06-211-0/+6
| | | | | | | | | | We add the same workaround as in change [1] to yoga to fix grenade jobs. This should be removed once swiftclient is realesed with the fix [2]. [1] https://review.opendev.org/c/openstack/devstack/+/844539\ [2] https://github.com/openstack/python-swiftclient/commit/9eee29d2e46e774eb08acb76c3317a58856f3f71 Change-Id: Ic19030028376df9e3b0ddf2fa81932686707e9b1
* Fix ironic-lib from source and branch detection in IPA buildsDmitry Tantsur2022-05-021-1/+7
| | | | | | | Prevents the ironic-lib CI from testing ironic-lib changes in IPA. Change-Id: I936f6c1506c585826501ff3ac0bad0c755b4d360 (cherry picked from commit b94e52f55a0c4f9d6f3a771179da4ec5ccbddbd7)
* Build the new cirros image even when netboot is the default20.0.0Dmitry Tantsur2022-02-171-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
* CI: use a custom cirros partition image instead of the defaultDmitry Tantsur2022-02-163-0/+122
| | | | | | | | | | | | | | | | | | 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
* Avoid non-Stream CentOS and temporary disable the standalone jobDmitry Tantsur2022-01-311-1/+1
| | | | | | | The standalone job is failing because of a bug in IPA. To fix it we need to make DIB jobs operational, and they're failing because of CentOS repos. Change-Id: I8bd051ea709d328cb5efa2c2cbd5a226bdb4cfd3
* Fix DevStack plugin ipxe-snponly-x86_64.efi nameAija Jauntēva2022-01-271-1/+1
| | | | Change-Id: Ic25eb356d1bc86c1dc4b09df7fc0df42b3821cf3
* Automatically configure enabled_***_interfacesDmitry Tantsur2021-12-201-13/+2
| | | | | | | | | This change makes it easier to configure power and management interfaces (and thus vendor drivers) by figuring out reasonable defaults. Story: #2009316 Task: #43717 Change-Id: I8779603e566be5a84daf6f680c0bbe2f191923d9
* Write initial grub config on startupSteve Baker2021-12-101-14/+0
| | | | | | | | | | | | | This change removes the documentation to copy master_grub_cfg.txt to /tftpboot/grub/grub.cfg and instead writes it on conductor startup. This grub config is a simple redirect config requested by grub network boot. "master" has been renamed to "initial" as a more accurate label of its function. New configuration option [pxe]initial_grub_template allows the deployer to specify a different initial grub template. Change-Id: I71191dd399a6c49607f91d69b5b1673799a38624
* 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
* | devstack: provide a default for OS_CLOUDDmitry Tantsur2021-12-081-0/+7
| | | | | | | | | | | | Not having it breaks the inspector grenade job. Change-Id: I7ee28a85cb2005dd69e6711b301cd029b8ca40cc
* | Install isolinux on devstackDmitry Tantsur2021-12-031-7/+2
| | | | | | | | | | | | | | | | It is required for virtual media BIOS booting. Clean up old bindep tags. Change-Id: I345e5b5287594e62ac7a8abb4de3add242120dfd
* | CI: Fix devstack plugin with RBAC changesJulia Kreger2021-11-191-19/+12
|/ | | | | | | | | | | | | | | | | | | | Changes a neutron call to be project scoped as system scoped can't create a resource and, and removes the unset which no longer makes sense now that I86ffa9cd52454f1c1c72d29b3a0e0caa3e44b829 has merged removing the legacy vars from devstack. Also renames intenral use setting of OS_CLOUD to IRONIC_OS_CLOUD as some services were still working with system scope or some sort of mixed state occuring previously as some of the environment variables were present still, however they have been removed from devstack. This change *does* explicitly set an OS_CLOUD variable as well on the base ironic job. This is because things like grenade for Xena will expect the variable to be present. Depends-On: https://review.opendev.org/c/openstack/devstack/+/818449 Change-Id: I912527d7396a9c6d8ee7e90f0c3fd84461d443c1
* Merge "Remove debian packages file for devstack"Zuul2021-10-182-66/+29
|\
| * Remove debian packages file for devstackJulia Kreger2021-10-082-66/+29
| | | | | | | | | | | | | | | | | | | | | | This file duplicages devstack's load of bindep for the ironic repository. As bindep is the authortative file, removing the legacy way of installing packages from ironic. Also revises the bindep file to explicitly remove the devstack group, as it is all devstack. Change-Id: Ida7ca230069fc0e4f54bde2fc6fffdc9eb0bdcc2
* | SRBAC - Prepare for additional servicesJulia Kreger2021-10-081-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In order to effectively handle cross-service integrations, we need to evaluate two separate items which are not standardized in devstack. Names, and common service references. Unfortunately, only a couple services presently have support in devstack for these settings, and cases where it was previously supported has been removed for unknown reasons, but this seems to be the overall plan. Sets the stage, so we can be early to the cross-service testing party of secure rbac. Change-Id: I8794374c02a24185b6e24a675ad9cb7b3dfd69df
* | Retool devstack plugin to use pxe loaders configurationJulia Kreger2021-10-081-49/+73
|/ | | | | | | | | | Begins to peel back some of the override plugin/setting nature in use in the ironic devstack plugin by trying to place all of the files and letting the *defaults* take the service lead while also putting in place the required configuration for pxe loaders to be used. Change-Id: I73ca82e0d123fd6efab06dbbdeef40c2d9972887
* Merge "CI: Change CI ipxe file to snponly"Zuul2021-10-081-1/+8
|\
| * CI: Change CI ipxe file to snponlyJulia Kreger2021-10-041-1/+8
| | | | | | | | | | | | | | | | Ironic's configured default is snponly.efi, and realistically we should be using it for devstack as ipxe.efi lacks snp which is included in the EFI standard. Change-Id: I749420b127cc9954bfa02d9e4efaa0980a9242be
* | Merge "Yoga: Change default boot mode to uefi"Zuul2021-10-072-3/+8
|\ \ | |/
| * Yoga: Change default boot mode to uefiJulia Kreger2021-10-042-3/+8
| | | | | | | | | | | | | | | | Change the default boot mode to UEFI, as discussed during the end of the Wallaby release cycle and previously agreed a very long time ago by the Ironic community. Change-Id: I6d735604d56d1687f42d0573a2eed765cbb08aec
* | Merge "Remove legacy rpm install list and use bindep"Zuul2021-10-042-25/+99
|\ \ | |/ |/|
| * Remove legacy rpm install list and use bindepJulia Kreger2021-09-242-25/+99
| | | | | | | | | | | | | | | | | | | | | | | | The legacy rpm install list is out of date and includes packages which no longer exist in newer distribution builds. This functionality was entirely replaced by bindep, which is *the* authortative file for things like this. The major difference is the separate bindep file can't include mysql, or we break devstack \o/. Change-Id: Ic86f6efdf75fc2871c03e21b7f9166192b0f212c
* | Devstack: don't scan /opt, /etc looking for isolinuxJulia Kreger2021-09-221-1/+1
|/ | | | | | | | | | /opt contains a mirror of an insane amount of stuff, and it chews disk io to scan it looking for isolinux.bin which should be under /usr on... well... every OS we support. Also, don't scan /etc. That is just weird. Change-Id: I52f4c1ba8808fea637df69a631eaa1c674dc8e69
* Merge "Use packaged grub efi for network boot"Zuul2021-09-091-29/+12
|\
| * Use packaged grub efi for network bootSteve Baker2021-09-081-29/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of using the efi written by grub-mknetdir, use the packaged signed binary. The core.efi generated by grub-mknetdir is not signed so it does not help with end-to-end secure-boot. Also, the successful run of ironic-tempest-ipa-partition-uefi-pxe-grub2[1] demonstrates that grub continues to boot even when the grub-mknetdir generated grub/x86_64-efi/*.lst are missing. Avoiding using grub-mknetdir makes for a much simpler setup of /tftpboot for grub network boot. [1] https://zuul.opendev.org/t/openstack/build/bab62f6bf032474cb80af3cb5a999117/log/tftpd-journal.txt Change-Id: Ide0aa416391c20371bbb8d1a18288b262872e313
* | Merge "Fix upgrade logic to allow for bundled changes"Zuul2021-09-031-1/+6
|\ \ | |/ |/|
| * Fix upgrade logic to allow for bundled changesJulia Kreger2021-08-071-1/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The upgrade path logic was built to force a developer pattern to break things such as new tables and features across multiple patches, and the status check *can* explicitly fail if we don't explicitly go hint to it that we've added table. Yes, we have a hard coded list... Anyway, a better pattern is allow the db sync process to do the appropriate needful. Run the status check, if it fails, fallback and update the schema. Also handles the explicit failure error and tries to return a human friendly error message for when the table is not present. In the end this allows us to merge schema changes such as additional tables with their underlying objects and properly handle things as long as the schema update works as expected. This allows us to leverage an operational model of performing upgrades. Change-Id: Id5f2a8068bc064e1ed1e376524850e4739f79ef2
* | Make curl in DevStack Bypass ProxyVanou Ishii2021-08-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | This commit modifies curl option in wait_for_nova_resources to bypass proxy with --noproxy option. Without this option, if you run DevStack behind proxy, curl command fails with timeout & wait_for_nova_resources also fails. Because curl only accesses Placement service API, this modification should be fair. Change-Id: I5524a76594bb784f59be4d4e3970f72d4497891b
* | Use shim-signed on Ubuntu, shim is empty nowDmitry Tantsur2021-08-031-2/+6
|/ | | | | | Also fix the documentation to use the correct paths and versions. Change-Id: I7f004d40c1b8c617f9a456216df091e44d69693f
* Merge "Scoped RBAC Devstack Plugin support"Zuul2021-07-211-43/+91
|\
| * Scoped RBAC Devstack Plugin supportJulia Kreger2021-07-151-43/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Adds support to the ironic devstack plugin to configure ironic to be used in a scope-enforcing mode in line with the Secure RBAC effort. This change also defines two new integration jobs *and* changes one of the existing integration. In these cases, we're testing functional crub interactions, integration with nova, and integration with ironic-inspector. As other services come online with their plugins and devstack code being able to set the appropriate scope enforcement configuration, we will be able to change the overall operating default for all of ironic's jobs and exclude the differences. This effort identified issues in ironic-tempest-plugin, tempest, devstack, and required plugin support in ironic-inspector as well, and is ultimately required to ensure we do not break the Secure RBAC. Luckilly, it all works. Change-Id: Ic40e47cb11a6b6e9915efcb12e7912861f25cae7
* | Merge "Deprecate [pxe]ip_version parameter"Zuul2021-07-051-3/+0
|\ \
| * | Deprecate [pxe]ip_version parameterJulia Kreger2021-06-281-3/+0
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The parameter has not had any effect in the code since the dual stack PXE work went into place with Ironic as options are now generated and transmitted to Neutron for both IPv4 and IPv6. This option is only used by the internal ``dhcp_options_for_instance`` method in ``ironic.common.pxe_utils`` as a fallback if the calling method does not specify a version. However a later change resulted in the default behavior calling the dhcp option generation explicitly to generate both IPv4 and IPv6 parameters, making the option entirely redundant. Third party drivers using the ``dhcp_options_for_instance`` method should consider generating options for both IPv4 and IPv6 at all times. See change If7a296001e204ae0c9a49495731052ab33379628 for examples on how to do this. Change-Id: I343783389105f008ce6dafc8d25d93211710771a
* | Merge "Clean up vendor prefixes for iRMC boot"Zuul2021-06-291-1/+1
|\ \
| * | Clean up vendor prefixes for iRMC bootDmitry Tantsur2021-06-171-1/+1
| |/ | | | | | | | | | | | | | | | | Generic fields, such as deploy_iso, should not have vendor prefixes. This patch removes them from the iRMC boot interfaces with deprecation. Change-Id: Ie24de1893395dca0e2dc4a57a42916f075d29ce6 Story: #2008880 Task: #42431
* | CI: change ilo_deploy_iso to deploy_isoDmitry Tantsur2021-06-171-1/+1
|/ | | | Change-Id: Icedc1cd57c64bfc9b0bad535a6eb7c890e843410
* Fix ironic-status db index checkJulia Kreger2021-06-101-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | When I merged the db status check in for database indexes, I missed the most improtant line, which is where the object is populated with the method name to be executed by the upgrade checks framework. In the rush to try and clean-up after the impact of the Secure RBAC work, I just didn't manually test the final file I uploaded into review. I assumed it just worked because the job passed, but didn't think about the resulting return codes which we *should* experience on an upgrade from a prior version. Later on, I noticed that because of the way the status checks are invoked, I also added the code to do the index check in the wrong order, so I had to restructure things so the method definition was known by the object on the class which holds the method names list. I guess I copied/pasted this over from another file I was testing in just didn't run the final file. :( Funny enough, the index check works like a charm now. Also updates the status check invocation check in the upgrade script for grenade, *as* warnings *are* permissible and not fatal. Change-Id: Ifa9da65dc8df5bf9a369d6faeab310386dfd944a
* Clean up kernel_append_params for PXE/iPXEDmitry Tantsur2021-05-171-1/+1
| | | | | | | | | | | | | | Currently handling of kernel_append_params is very inconsistent. This change applies a straightforward process: 1. instance_info[kernel_append_params] 2. driver_info[kernel_append_params] 3. [pxe]kernel_append_params (renamed from pxe_append_params). Also adds a helper for subsequent fixes in other drivers. Change-Id: I79bcf4d8ef1f0f55a82e0991dd5bb1685b3f7957 Story: #2008902 Task: #42469
* Read default cirros version from stackrcRiccardo Pittau2021-04-191-1/+6
| | | | | | | | | | | | Workaround for grenade jobs to read CIRROS_VERSION variable from stackrc. We also give the possibility to specify a custom CIRROS_VERSION In addition, fix transient iDRAC WS-Man BIOS test. Depends-On: https://review.opendev.org/c/openstack/ironic/+/786387 Change-Id: Ic7f5dae5e6aa6916f0a7d73f43cc9552349385c5
* Add iRMC Driver Support to DevStack CodeVanou Ishii2021-03-171-0/+9
| | | | | | | | | | | | This commit adds logic * to determine whether irmc hardware type is enabled * (if enabled) to install python package python-scciclient & snmp into DevStack code to support construction of Ironic environment with iRMC supported Fujitsu server through DevStack. Story: 2008722 Task: 42066 Change-Id: Ie50d8e4b43cdbfd8cd46333a75de20015e67829e
* devstack: a safeguard for disabled tempurlsDmitry Tantsur2021-02-251-1/+1
| | | | Change-Id: Id5fcd4cc1f73b80e8a9e9d2c50e2e4e1667c01cb
* Merge "Fix broken configdrive_use_object_store"Zuul2021-02-231-0/+6
|\
| * Fix broken configdrive_use_object_storeDmitry Tantsur2021-02-181-0/+6
| | | | | | | | | | | | | | | | | | When it is set to True, we try to write text data to a binary file, which is not possible in Python 3. The issue has been "helpfully" hidden by the fact that we use bytes in unit tests, as well as by lack of CI coverage. Change-Id: Ibbf90dcbcb36a5f7cf084a44a221c0c5c003b95a
* | Merge "devstack: support installing ironic-lib from source in DIB IPA"Zuul2021-02-181-0/+5
|\ \ | |/ |/|
| * devstack: support installing ironic-lib from source in DIB IPADmitry Tantsur2021-02-111-0/+5
| | | | | | | | | | Depends-On: https://review.opendev.org/c/openstack/ironic-python-agent-builder/+/775153 Change-Id: I8734776bf59b5a34327624184c1c2360ccda330a
* | Merge "Guard conductor from consuming all of the ram"Zuul2021-02-121-0/+3
|\ \ | |/ |/|
| * Guard conductor from consuming all of the ramJulia Kreger2021-01-291-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | One of the biggest frustrations larger operators have is when they trigger a massive number of concurrent deployments. As one would expect, the memory utilization of the conductor goes up. Except, even with the default number of worker threads, if we're requested to convert 80 images at the same time, or to perform the write-out to the remote node at the same time, we will consume a large amount of system RAM. Or more specifically, qemu-img will consume a large amount of memory. If the amount of memory goes too low, the system can trigger OOMKiller which will slay processes using ram. Ideally, we do not want this to happen to our conductor process, much less the work that is being performed, so we need to add some guard rails to help keep us from entering into situations where we may compromise the conductor by taking on too much work. Adds a guard in the conductor to prevent multiple parallel deployment operations from running the conductor out of memory. With the defaults, the conductor will attempt to throttle back automatically and hold worker threads which will slow down the amount of work also proceeding through the conductor, as we are in a memory condition where we should be careful about the work. The defaults allow this to occur for a total of 15 seconds between re-check of available RAM, for a total number of six retries. The minimum default is 1024 (MB), as this is the amount of memory qemu-img allocates when trying to write images. This quite literally means no additional qemu-img process can spawn until the default memory situation has resolved itself. Change-Id: I69db0169c564c5b22abd0cb1b890f409c13b0ac2
* | Fix Mis-Ordering of Bash Variable Definition in DevStackVanou Ishii2021-02-011-6/+7
|/ | | | | | | | | | | | | | | | | In devstack/lib/ironic, IRONIC_DEPLOY_DRIVER is defined at line 341. However variables which use IRONIC_DEPLOY_DRIVER in default value (e.g. IRONIC_DEPLOY_RAMDISK, IRONIC_DEPLOY_KERNEL, IRONIC_DEPLOY_ISO and IRONIC_EFIBOOT) are defined at line 276-282. This will cause problem at line 295-296: if [[ "$IRONIC_BUILD_DEPLOY_RAMDISK" == "False" && \ ! (-e "$IRONIC_DEPLOY_RAMDISK" && -e "$IRONIC_DEPLOY_KERNEL") So, this commit moves definition of IRONIC_DEPLOY_DRIVER before its first use. Change-Id: I74acb32714ce8830d4697fc796146b894aa7d8c9