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
This commit is contained in:
Riccardo Pittau 2020-04-02 10:12:06 +02:00
parent 542442d4db
commit aac89c2149
4 changed files with 27 additions and 39 deletions

View File

@ -34,9 +34,11 @@ libvirt-devel [platform:rpm devstack]
qemu [platform:dpkg devstack build-image-dib] qemu [platform:dpkg devstack build-image-dib]
qemu-kvm [platform:dpkg devstack] qemu-kvm [platform:dpkg devstack]
qemu-utils [platform:dpkg devstack build-image-dib] qemu-utils [platform:dpkg devstack build-image-dib]
sgabios [devstack] qemu-system-data [platform:dpkg devstack]
sgabios [platform: rpm devstack]
ipxe-qemu [platform:dpkg devstack] ipxe-qemu [platform:dpkg devstack]
edk2-ovmf [platform:rpm devstack] edk2-ovmf [platform:rpm devstack]
ovmf [platform:dpkg devstack]
ipxe-roms-qemu [platform:rpm devstack] ipxe-roms-qemu [platform:rpm devstack]
openvswitch [platform:rpm devstack] openvswitch [platform:rpm devstack]
iptables [devstack] iptables [devstack]

View File

@ -6,36 +6,39 @@
# but only recommends it in Jessie/Xenial. # but only recommends it in Jessie/Xenial.
# Make sure syslinux-common is installed for those distros as it provides # Make sure syslinux-common is installed for those distros as it provides
# *.c32 modules for syslinux # *.c32 modules for syslinux
# TODO remove distro pinning when Wheezy / Trusty are EOLed (May 2019)
# or DevStack stops supporting those.
# In the mean time, new Debian-based release codenames will have to be added # In the mean time, new Debian-based release codenames will have to be added
# as distros can not be pinned with 'if-later-than' specified. # as distros can not be pinned with 'if-later-than' specified.
apparmor apparmor
docker.io docker.io
gnupg
ipmitool ipmitool
iptables iptables
ipxe ipxe
ipxe-qemu
isolinux isolinux
gnupg jq
libguestfs0
libguestfs-tools libguestfs-tools
libvirt-bin # dist:xenial,bionic NOPRIME libguestfs0
libvirt-bin # dist:bionic
libvirt-daemon-driver-storage-gluster # dist:focal
libvirt-daemon-driver-lxc # dist:focal
libvirt-daemon-driver-storage-rbd # dist:focal
libvirt-daemon-system # dist:focal
libvirt-dev
open-iscsi open-iscsi
openssh-client openssh-client
# TODO (etingof) pinning to older version in devstack/lib/ironic ovmf
#ovmf pxelinux
pxelinux # dist:xenial,bionic python-libguestfs # dist:bionic
python-libguestfs python3-guestfs # dist:focal
qemu qemu
qemu-kvm qemu-kvm
qemu-utils qemu-utils
sgabios qemu-system-data # dist:focal
sgabios # dist:bionic
shellinabox shellinabox
syslinux-common # dist:xenial,bionic socat
squashfs-tools
syslinux-common
tftpd-hpa tftpd-hpa
xinetd xinetd
squashfs-tools
libvirt-dev
socat
ipxe-qemu
jq

View File

@ -1063,28 +1063,7 @@ function install_ironic {
# Replace the default virtio PXE ROM in QEMU with an EFI capable # Replace the default virtio PXE ROM in QEMU with an EFI capable
# one. The EFI ROM should work on with both boot modes, Legacy # one. The EFI ROM should work on with both boot modes, Legacy
# BIOS and UEFI. # BIOS and UEFI.
if is_ubuntu; then if is_fedora; then
# (rpittau) in bionic the UEFI in the ovmf 0~20180205.c0d9813c-2
# package is broken: EFI v2.70 by EDK II
# As a workaround, here we download and install the old working
# version from the multiverse repository: EFI v2.60 by EDK II
# Bug reference:
# https://bugs.launchpad.net/ubuntu/+source/edk2/+bug/1821729
local temp_deb
temp_deb="$(mktemp)"
wget http://archive.ubuntu.com/ubuntu/pool/multiverse/e/edk2/ovmf_0~20160408.ffea0a2c-2_all.deb -O "$temp_deb"
sudo dpkg -i "$temp_deb"
rm -f "$temp_deb"
# NOTE(TheJulia): This no longer seems required as the ovmf images
# DO correctly network boot. The effect of this is making the
# default boot loader iPXE, which is not always desired nor
# realistic for hardware in the field.
# If it is after Train, we should likely just delete the lines
# below and consider the same for Fedora.
# sudo rm /usr/share/qemu/pxe-virtio.rom
# sudo ln -s /usr/lib/ipxe/qemu/efi-virtio.rom /usr/share/qemu/pxe-virtio.rom
elif is_fedora; then
sudo rm /usr/share/qemu/pxe-virtio.rom sudo rm /usr/share/qemu/pxe-virtio.rom
sudo ln -s /usr/share/ipxe.efi/1af41000.rom /usr/share/qemu/pxe-virtio.rom sudo ln -s /usr/share/ipxe.efi/1af41000.rom /usr/share/qemu/pxe-virtio.rom
fi fi

View File

@ -316,6 +316,7 @@
name: ironic-tempest-ipa-partition-uefi-pxe_ipmitool name: ironic-tempest-ipa-partition-uefi-pxe_ipmitool
description: ironic-tempest-ipa-partition-uefi-pxe_ipmitool description: ironic-tempest-ipa-partition-uefi-pxe_ipmitool
parent: ironic-base parent: ironic-base
nodeset: openstack-single-node-focal
timeout: 5400 timeout: 5400
vars: vars:
devstack_localrc: devstack_localrc:
@ -635,6 +636,7 @@
name: ironic-tempest-ipa-partition-uefi-pxe-grub2 name: ironic-tempest-ipa-partition-uefi-pxe-grub2
description: Ironic tempest scenario test utilizing PXE, UEFI, and Grub2 description: Ironic tempest scenario test utilizing PXE, UEFI, and Grub2
parent: ironic-base parent: ironic-base
nodeset: openstack-single-node-focal
vars: vars:
devstack_localrc: devstack_localrc:
IRONIC_ENABLED_HARDWARE_TYPES: ipmi IRONIC_ENABLED_HARDWARE_TYPES: ipmi
@ -643,6 +645,8 @@
IRONIC_BOOT_MODE: uefi IRONIC_BOOT_MODE: uefi
IRONIC_AUTOMATED_CLEAN_ENABLED: False IRONIC_AUTOMATED_CLEAN_ENABLED: False
IRONIC_DEFAULT_BOOT_OPTION: netboot IRONIC_DEFAULT_BOOT_OPTION: netboot
IRONIC_VM_SPECS_DISK: 10
IRONIC_VM_SPECS_RAM: 4096
- job: - job:
# Security testing for known issues # Security testing for known issues