42 Commits

Author SHA1 Message Date
Dmitry Tantsur
bbceca562e CI: use a custom cirros partition image instead of the default
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
2022-02-16 10:12:06 +01:00
Dmitry Tantsur
f85f649136 Install isolinux on devstack
It is required for virtual media BIOS booting.

Clean up old bindep tags.

Change-Id: I345e5b5287594e62ac7a8abb4de3add242120dfd
2021-12-03 17:50:52 +01:00
Julia Kreger
f205e7d2be Remove debian packages file for devstack
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
2021-10-08 10:40:07 -07:00
Julia Kreger
c1e355011c Remove legacy rpm install list and use bindep
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
2021-09-24 09:44:50 -07:00
Riccardo Pittau
daca490226 Follow up of fix uefi jobs with ovmf native ubuntu package
Following up on comments from https://review.opendev.org/716889

Change-Id: I805a65478f469b1b4e25c1bf2397f034f61d6ec7
2020-07-07 12:04:56 +02:00
Riccardo Pittau
aac89c2149 Fix uefi jobs with native ubuntu ovmf package
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
2020-07-02 17:10:36 +00:00
Kaifeng Wang
373f428fc2 Make qemu hook running with python3
This switches the piece of code turns on multicast [1] to run with
python3.

[1] https://review.opendev.org/#/c/665221

Change-Id: I12d3764d087fa19aca5b285cbd63a19b1770bb41
2020-01-07 09:29:59 +08:00
michaeltchapman
2231a93444 Don't install syslinux-nonlinux on rhel7
the syslinux tools are in the syslinux package on
rhel7 and friends, but in rhel8 have moved to
syslinux-nonlinux

Change-Id: Iea74c2be6fbd738f35f178fa189384dd37579277
2019-11-21 01:22:37 +11:00
Ilya Etingof
1e25f60fd3 Ensure isolinux.bin is present and configured in devstack
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
2019-11-11 15:53:49 +01:00
Michael Davies
c9349c194a Devstack: Fix iPXE apache log location bug
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
2019-09-20 06:16:30 +09:30
Dmitry Tantsur
7a0f8698a1 devstack: save iPXE httpd logs
Change-Id: I3ad5ee77a2e2e8613316b1e935256d5ba0394420
2019-09-04 13:16:12 +02:00
Ilya Etingof
9fab96fc37 Add Redfish Virtual Media Boot support
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
2019-08-14 14:19:03 +02:00
Mike Turek
bc84b7bce6 devstack: Install arch specific debs only when deploying to that arch
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
2019-07-01 14:59:50 +00:00
Julia Kreger
c59dc1386f Update qemu hook to facilitate Multicast
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
2019-06-14 14:19:40 -07:00
Julia Kreger
55e8d3fde1 Add a pxe/uefi/grub2 CI job
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
2019-06-05 14:21:13 -07:00
Michael Turek
c2588c4de4 devstack: Remove syslinux dependency
syslinux should no longer be required by any arch. This patch removes
the dependency.

Change-Id: Id4aea9acb9bf4ac34c0d5e9bca27fb48ea1b009a
2019-04-15 14:28:48 +00:00
Riccardo Pittau
ab33772600 Update dist filter for devstack ubuntu
Updating filter for supported ubuntu distributions in the
list of packages that need to be installed.

Change-Id: I92110a6185f2401e97b6376c50afdfe479cb5def
2019-03-11 17:11:09 +01:00
Jens Harbott
296480961d Drop installing python-libvirt system package
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
2019-03-01 17:40:51 +00:00
Derek Higgins
1ba142a05f Restore the nova-api redirect
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
2018-09-24 10:08:29 +01:00
Vasyl Saienko
b27396db66 [devstack] Switch ironic to uWSGI
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
2018-04-17 19:22:12 +03:00
Jim Rollenhagen
28a165fae4 Devstack: install qemu-system-x86 on RHEL
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
2018-01-03 14:41:48 -05:00
Dmitry Tantsur
fe2102f90c [devstack] stop setting or relying on standard properties
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
2017-11-07 14:54:37 +01:00
Vasyl Saienko
fdf6f89a23 [Grenade]: Do not run ir-api on primary node after upgrade
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
2017-04-28 13:59:07 +03:00
Vasyl Saienko
ab3982eb27 Ensure we install latest libivrt
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
2017-04-21 08:53:39 +00:00
Jenkins
5ebc60de42 Merge "Add /baremetal path instead of port 6385" 2017-04-20 21:13:47 +00:00
anascko
c971ceef5a Add /baremetal path instead of port 6385
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
2017-04-18 11:03:22 +03:00
Vasyl Saienko
e48375538c Add Ironic standalone tests
This patch adds the following standalone tests:

  * agent_ipmitool + wholedisk image + bios
  * agent_ipmitool + partitioned image + bios
  * pxe_ipmitool + wholedisk image + bios
  * pxe_ipmitool + partitioned image + bios

Partial-Bug: #1660606

Change-Id: Ic04b0f134e20d9937a610a14d7c4128f45738eeb
2017-03-15 16:54:45 +02:00
anascko
5d22cfe1a8 Add wsgi handling to ironic-api in devstack
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
2017-03-09 16:55:34 +02:00
Lucas Alvares Gomes
7e7ef60763 DevStack: Only install edk2-ovmf on Fedora
Other RPM based distros such as CentOS doesn't have this package
included.

Change-Id: I3adb867855f71e815d6c2e4c72025ae8c1420ae7
Closes-Bug: #1660610
2017-01-31 14:26:18 +00:00
John L. Villalovos
b1b86b6417 Devstack: Create a "no ansi" logfile for the baremetal console logs
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
2017-01-26 13:15:33 -08:00
Lucas Alvares Gomes
07686f475d DevStack: Configure nodes/environment to boot in UEFI mode
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
2017-01-18 10:16:14 +00:00
Mauro S. M. Rodrigues
6aea2126d4 Install syslinux package only for Wheezy / Trusty
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
2016-11-25 13:04:31 -06:00
Pavlo Shchelokovskyy
d21564eaba Fix PXE setup for fresh Ubuntu Xenial
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
2016-11-21 16:18:14 +02:00
Dao Cong Tien
22a80f77c5 Nova-compatible serial console: socat console_utils
This adds console_utils functions for 'socat' console.
Implements:
- get_socat_console_url(): returns url for socat console
- start_socat_console(): uses (socat + console_cmd execution)
- stop_socat_console(): stops socat/console_cmd subprocess

Change-Id: I79ddd83d12cc8111e05b5107359d6db8a8881d61
Spec: https://review.openstack.org/#/c/319505/
Related-Bug: #1553083
2016-07-14 01:09:19 +00:00
dparalen
033dbb2d10 remove neutron stuff from devstack deb packages
It seems we are enforcing certain dependencies to be always installed on
behalf of other projects.  The issue I'm facing is we unconditionally
install openvswitch-datapath-dkms which isn't necessary for Ubuntu kernels
>= 3.13.  Even worse, this package isn't available on Ubuntu 16.4 LTS thus
breaking devstack setup.sh on that platform.

This patch removes Neutron dependencies as those are handled by devstack[1]
and devstack neutron plugin[2]

[1] https://github.com/openstack-dev/devstack/blob/master/files/debs/openvswitch#L3
[2] https://github.com/openstack-dev/devstack/blob/master/lib/neutron_plugins/ovs_base#L58

Closes-bug: #1580101

Change-Id: Iff0cf13499d9cb05f241f23759d5faec9a9c4a98
2016-06-06 15:49:59 +00:00
Jay Faulkner
3a6a8ec98e Install apparmor b/c Docker.io has undeclared dep
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
2016-03-17 17:31:32 -07:00
Dmitry Tantsur
f3167750d9 [devstack] Fix IPA source build on Fedora
* gnupg is not installed by default
* docker is not started by default

Change-Id: Iecf0aad71fd7487d4e161b51a3928b9915ee1468
2016-03-07 15:17:11 +01:00
Lucas Alvares Gomes
7ffa1d58ce DevStack: Add support for deploying nodes with pxe_ipmitool
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
2016-02-18 19:27:04 +00:00
Lucas Alvares Gomes
24ff5378be DevStack: Install squashfs-tools
When building the TinyIPA ramdisk we need squashfs-tools to be installed.

Change-Id: I4690514803dd91d4bda0d38df4fd792f31a51421
2016-02-16 17:08:44 +00:00
Zhenguo Niu
181e3de147 Install 'shellinabox' package for Ironic
As we already added console feature support for ssh driver,
devstack should install it.

Change-Id: I8946aca2eceb6c8440af44e45e9ce56637a1da63
2015-12-25 17:13:58 +08:00
Lucas Alvares Gomes
2f6dce9738 Keep the console logs for all boots
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
2015-12-16 15:58:17 +00:00
Jim Rollenhagen
b21873588a Copy devstack code to ironic tree
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
2015-12-10 15:32:01 +00:00