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
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
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
The ovmf pacakge in bionic doesn't really work in our CI.
As a workaround we use the old package from xenial, but we can't keep
using it also in Ubuntu Focal.
This patch aims to convert the uefi jobs to use Ubuntu Focal as
base operating system and use the native ovmf package.
Story: 2007785
Task: 40025
Change-Id: I653e5da2672b14eae88c6cab923b8617432f1dc1
This switches the piece of code turns on multicast [1] to run with
python3.
[1] https://review.opendev.org/#/c/665221
Change-Id: I12d3764d087fa19aca5b285cbd63a19b1770bb41
the syslinux tools are in the syslinux package on
rhel7 and friends, but in rhel8 have moved to
syslinux-nonlinux
Change-Id: Iea74c2be6fbd738f35f178fa189384dd37579277
When devstack boots a node over virtual media in BIOS boot mode,
`isolinux.bin` boot loader needs to be present for grilling hybrid
ISO images.
This patch makes devstack pulling necessary packages and configure
ironic accordingly.
Change-Id: I2f4e582aa05fc54610a4c43695124219714368c2
Make the apache log directory configurable, based upon which
operating system this is running on. This is needed as ironic
devstack is broken on Red Hat-related operating systems as a
result.
Change-Id: I22e04d886219755a38b1e895c2c6f9d756535cab
Story: 2006577
Task: 36689
This patch introduces standard Redfish virtual media boot
support to ironic.
The patch implements basic boot interface features along with
devstack plugin support for virtual media boot. Functionally,
redfish boot interface supports the same set of features as PXE.
Unlike other virtual media boot implementations (e.g. iLo), this
patch does not require user-built deploy/rescue/boot ISO images
for virtual media boot. Instead, ironic will build necessary images
out of common kernel/ramdisk pair (though user needs to provide
ESP image).
Story: 1526753
Task: 10389
Co-Authored-By: Shivanand Tendulker <stendulker@gmail.com>
Change-Id: I0db0a64c5ccf260f5a0695dbe994af1e11f71517
Because the shim and grub-efi-amd64-signed packages are specific to
x86_64 [0][1], they should only be installed when deploying to an x86_64 node.
This removes the packages from the debs/ironic file and moves their
installation to lib/ironic, allowing us to install it them based on architecture.
[0] https://packages.ubuntu.com/eoan/shim
[1] https://packages.ubuntu.com/eoan/grub-efi-amd64-signed
Change-Id: I73cab832cf8099c02b3e29df84618c88e5fb5065
mdns AND IPv6 Neighbour Discovery Protocol use multicast packets
and the macvtap interface drops these packets by default.
Since there is no way to tell libvirt to make this better,
lets at least use the hook to make the macvtap interface
change such that multicast packets will pass.
With this, iPXE should work... and mdns should be testable in CI.
Change-Id: I397d211675fd7668b8fd19e989d740d6bad2c70e
Fixes the grub2 based devstack logic and adds a grub2 CI job
such that the ironic team can safely clean-up some of the PXE
code without fear of breaking the grub2 scenario.
Story: 2003936
Task: 27724
Change-Id: Ieb395bf35e2689741a243c11b56d08a237b200bc
Updating filter for supported ubuntu distributions in the
list of packages that need to be installed.
Change-Id: I92110a6185f2401e97b6376c50afdfe479cb5def
Pip will install libvirt-python later in the process and with pip >= 10
it will fail to remove the system version.
Change-Id: I33be5426ce8ff2301d28096af11a1023b8048a15
Needed-By: https://review.openstack.org/#/c/561597
This was disabled when grenade switched to using rocky
as its base install as it didn't work with wsgi. Restore it
using a version that compatable with WSGI.
Task: #26604
Story: 2003808
Change-Id: I968339b48191df46a44f45c1794478aa0d1039f6
This patch switches ironic API to run under uwsgi,
and drops support for running ironic API under mod_wsgi
from ironic's devstack plugin.
It also effectively moves all jobs except grenade ones to
run ironic-api under UWSGI as we start to honor the devstack's
ENABLE_HTTPD_MOD_WSGI_SERVICES variable (which is True by default).
The new variable in devstack plugin to toggle deployment with uwsgi
is IRONIC_USE_WSGI, which defaults to (now confusingly named)
IRONIC_USE_MOD_WSGI for backward compatibility.
Related-Bug: #1719260
Co-Authored-By: anascko <ovoshchana@mirantis.com>
Change-Id: I9ef3aa48db6efe8e2216af785cc13fdb7f754a02
This wasn't installed for me on a devstack run on a fresh RHEL 7.4 box.
Make sure it's installed as we depend on it by default.
Change-Id: I4faadb2d73afd298ffb1b7690b23f72800123f77
This change moves our devstack plugin away from using the old
scheduling properties: memory_mb, local_gb and cpus. Nova will
stop using them for scheduling in Queens.
The cpu_arch property is left intact, as it's still useful.
The Placement API is polled to determine when nodes are fully exposed
to nova instead of polling the hypervisor stats. cURL + jq are used,
as the Placement OSC plugin is not ready yet.
Change-Id: I497a992bd86e8a359f333d6936621d1136d68061
Ironic upgrade process has pre-requirement that ironic-conductors
should be upgraded before ironic-api. Grenade is launched on primary
node, where we have ir-api and ir-cond runnning. Do not start ir-api
on primary node after upgrade to avoid situation when we have new ir-api
(primary) and old ir-cond (subnode) as it is not allowed by upgrade
procedure. Instead redirect all requests destinied to ir-api on primary
node to subnode.
Depends-On: I026121121059768aa74389add7eee6e63fdb214d
Change-Id: I9e496353a1d3d6547e4881f96fb187e488cff83f
Recently infra team added UCA repositories and start installing libvirt
from it Ia4434541c71f050fe1ffb54f4c4c1e302391d00b
This patch ensures that libvirt-bin is installed later during stack.sh
phase when new repos are added.
Change-Id: Iab7bb24d0aa89cdbef40b2e60331976325a31cab
The long-standing goal in OpenStack is to stop using custom ports for
services and only use subpaths like /identity or /compute. This change
enables the /baremetal subpath in our devstack plugin.
Closes-Bug: #1513005
Change-Id: Iaac8764394a13c4851d2ebbf3b91a380ba2aa49f
Adds handling of running ironic API under Apache as WSGI app to
devstack plugin.
New variable IRONIC_USE_MOD_WSGI (False by default) is added.
Another new variable IRONIC_WSGI_DIR (default is distro specific) is
also added, which specifies location for WSGI scripts.
Change-Id: I9c5ad56e1acd292ff0f9cc9b460125fc420abda5
Closes-Bug: #1513005
In addition to the normal bare-metal console logs that devstack
generates, create a "no ansi" version of the log that will be easier to
view/parse when viewing the logfiles.
Change-Id: Ic321db38f694d82362a6b1be91f891a06fb18c11
This patch is adding support for DevStack to configure nodes and
environment (Ubuntu and Fedora) to deploy nodes in UEFI mode.
A new configuration called IRONIC_BOOT_MODE was added to DevStack and
supports two values: "bios" and "uefi". Defaults to "bios".
Partial-Bug: #1625616
Change-Id: I4e9247c6a91c707db08247a8ac04b1f146cd3714
Syslinux package is not available on Ubuntu Xenial ppc64el (Power). And
as of Jessie/Xenial, syslinux package only provides DOS and NTFS
loaders, which are not required. Keep installing the package for
previous releases Wheezy and Trusty to provide some compatibility
instead of removing the dependency completely.
Change-Id: I899e77423ba86cb4de2a949a29b8573d2465b76a
Since Ubuntu 15.04 the file 'pxelinux.0' is provided by different
package ('pxelinux') which is not being installed by DevStack.
Extra problem is that this package does not exsit for earlier Ubuntu
versions at all.
More over, while in Trusty 'syslinux' package depends on
'syslinux-common', it only recommends it in Xenial, but we need it
installed as it provides *.c32 modules required for syslinux.
This patch adds 'syslinux-common' and 'pxelinux' to required deb packages
list when distro is 'xenial' or 'jessie' (as this packaging change has
its origin in Debian) by using the distro pinning in the package lists
as supported by DevStack.
Change-Id: I473fc4eb52f28a456c3f6888d5c7b25e8e08be26
Closes-Bug: #1638940
Docker has an undeclared dependency on apparmor for Ubuntu Trusty,
preventing the daemon from running and causing any -src jobs for IPA to
fail when using docker to build the package.
This should unbreak the IPA gate.
Change-Id: I98540286000d0cb1fe7649db5278c0a959ba8ad1
Closes-bug: 1558680
This patch is adding support for deploying nodes with the pxe_ipmitool
driver and VMs.
The patch adds a dependency on the "virtualbmc" utility which is
responsible for creating a virtual/fake BMC that handles the IPMI
commands (using pyghmi.bmc) and convert it to calls to the
python-libvirt library.
The function "is_ironic_hardware" was converted into a variable called
"IRONIC_IS_HARDWARE" which can be set to True/False to indicate whether
DevStack is being setup for baremetal or VMs.
Partial-Bug: #1544642
Change-Id: I5edc51c7fc8b6f0bb7fe4ca129596709a32eb93e
This patch adds a libvirt hook that saves the VM console log everytime
it shutdown. This is great for troubleshooting because it allow us to
see what happened with the VM on every boot instead of only the last one.
Closes-Bug: #1506829
Related-Bug: #1393099
Change-Id: I4881dfc816a05c0fd2610b0b977e41c44a7e9517
This begins work toward moving our devstack code to a devstack plugin
within our tree. This allows us to experiment with the devstack code
more easily, as well as take some load off of the devstack team.
Note that the plugin is not enabled until we enable it in
project-config, so this doesn't actually affect devstack runs yet.
The files that exist for us in devstack are listed below.
$ find . -name *ironic*
./lib/ironic
./lib/nova_plugins/hypervisor-ironic
./files/rpms/ironic
./files/apache-ironic.template
./files/debs/ironic
./extras.d/50-ironic.sh
./tools/ironic
$ tree tools/ironic
tools/ironic
├── scripts
│ ├── cleanup-node
│ ├── configure-vm
│ ├── create-node
│ └── setup-network
└── templates
├── brbm.xml
├── tftpd-xinetd.template
└── vm.xml
All of these files are copied here, except:
lib/nova_plugins/hypervisor-ironic: this is nova code and will not move.
extras.d/50-ironic.sh: this will become the base for plugin.sh.
Change-Id: I3fabefa686cad4bc50f6a5603fd95c96d1a21e68
Depends-On: Id01d97fd13fa9f866d645ec5077834ddb78b2b89