From 2e6677869925c86c01cae883b3dde6cccad81d30 Mon Sep 17 00:00:00 2001 From: Ian Wienand Date: Wed, 20 Nov 2019 10:41:34 +1100 Subject: [PATCH] Drop Xenial support With the goals of Ussuri being Python 3.6 [1], the python 3.5 environment on Xenial is too old. Remove testing and the most obvious bits of support from devstack. Also drop claimed support for artful, which is long EOL. [1] https://governance.openstack.org/tc/reference/runtimes/ussuri.html Change-Id: Iefcca99904dde76b34efbbfc0e04515dfa5a09e5 --- .zuul.yaml | 29 ------------------------- files/debs/nova | 5 ++--- lib/nova_plugins/functions-libvirt | 18 +++------------ stack.sh | 4 ++-- stackrc | 3 --- tools/fixup_stuff.sh | 35 ++---------------------------- 6 files changed, 9 insertions(+), 85 deletions(-) diff --git a/.zuul.yaml b/.zuul.yaml index cc94369988..8f64620426 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -491,14 +491,6 @@ # https://bugs.launchpad.net/devstack/+bug/1794929 USE_PYTHON3: true -- job: - name: devstack-xenial - parent: devstack - nodeset: openstack-single-node-xenial - description: | - Simple singlenode test to verify functionality on devstack - side running on Xenial. - - job: name: devstack-multinode parent: devstack @@ -507,15 +499,6 @@ Simple multinode test to verify multinode functionality on devstack side. This is not meant to be used as a parent job. -- job: - name: devstack-multinode-xenial - parent: devstack - nodeset: openstack-two-node-xenial - description: | - Simple multinode test to verify multinode functionality on devstack - side running on Xenial. - This is not meant to be used as a parent job. - # NOTE(ianw) Platform tests have traditionally been non-voting because # we often have to rush things through devstack to stabilise the gate, # and these platforms don't have the round-the-clock support to avoid @@ -541,13 +524,6 @@ nodeset: devstack-single-node-fedora-latest voting: false -- job: - name: devstack-platform-xenial - parent: tempest-full-py3 - description: Ubuntu Xenial platform test - nodeset: openstack-single-node-xenial - voting: false - - job: name: devstack-tox-base parent: devstack @@ -619,14 +595,11 @@ check: jobs: - devstack - - devstack-xenial - devstack-ipv6 - devstack-platform-centos-7 - devstack-platform-opensuse-15 - devstack-platform-fedora-latest - - devstack-platform-xenial - devstack-multinode - - devstack-multinode-xenial - devstack-unit-tests - openstack-tox-bashate - ironic-tempest-ipa-wholedisk-bios-agent_ipmitool-tinyipa: @@ -664,10 +637,8 @@ gate: jobs: - devstack - - devstack-xenial - devstack-ipv6 - devstack-multinode - - devstack-multinode-xenial - devstack-unit-tests - openstack-tox-bashate - neutron-grenade-multinode: diff --git a/files/debs/nova b/files/debs/nova index 5e14aec836..e5110e9c75 100644 --- a/files/debs/nova +++ b/files/debs/nova @@ -10,9 +10,8 @@ iputils-arping kpartx libjs-jquery-tablesorter # Needed for coverage html reports libmysqlclient-dev -libvirt-bin # dist:xenial NOPRIME -libvirt-clients # not:xenial NOPRIME -libvirt-daemon-system # not:xenial NOPRIME +libvirt-clients # NOPRIME +libvirt-daemon-system # NOPRIME libvirt-dev # NOPRIME mysql-server # NOPRIME parted diff --git a/lib/nova_plugins/functions-libvirt b/lib/nova_plugins/functions-libvirt index 914ee7bcf7..35666393ca 100644 --- a/lib/nova_plugins/functions-libvirt +++ b/lib/nova_plugins/functions-libvirt @@ -24,17 +24,10 @@ DEBUG_LIBVIRT=$(trueorfalse True DEBUG_LIBVIRT) # Currently fairly specific to OpenStackCI hosts DEBUG_LIBVIRT_COREDUMPS=$(trueorfalse False DEBUG_LIBVIRT_COREDUMPS) -# Only Xenial is left with libvirt-bin. Everywhere else is libvirtd -if is_ubuntu && [ ${DISTRO} == "xenial" ]; then - LIBVIRT_DAEMON=libvirt-bin -else - LIBVIRT_DAEMON=libvirtd -fi - # Enable coredumps for libvirt # Bug: https://bugs.launchpad.net/nova/+bug/1643911 function _enable_coredump { - local confdir=/etc/systemd/system/${LIBVIRT_DAEMON}.service.d + local confdir=/etc/systemd/system/libvirtd.service.d local conffile=${confdir}/coredump.conf # Create a coredump directory, and instruct the kernel to save to @@ -61,12 +54,7 @@ EOF function install_libvirt { if is_ubuntu; then - install_package qemu-system - if [[ ${DISTRO} == "xenial" ]]; then - install_package libvirt-bin libvirt-dev - else - install_package libvirt-clients libvirt-daemon-system libvirt-dev - fi + install_package qemu-system libvirt-clients libvirt-daemon-system libvirt-dev # uninstall in case the libvirt version changed pip_uninstall libvirt-python pip_install_gr libvirt-python @@ -167,7 +155,7 @@ EOF # Service needs to be started on redhat/fedora -- do a restart for # sanity after fiddling the config. - restart_service $LIBVIRT_DAEMON + restart_service libvirtd # Restart virtlogd companion service to ensure it is running properly # https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1577455 diff --git a/stack.sh b/stack.sh index b7b37e2cf6..d0206ebac0 100755 --- a/stack.sh +++ b/stack.sh @@ -12,7 +12,7 @@ # a multi-node developer install. # To keep this script simple we assume you are running on a recent **Ubuntu** -# (16.04 Xenial or newer), **Fedora** (F24 or newer), or **CentOS/RHEL** +# (Bionic or newer), **Fedora** (F24 or newer), or **CentOS/RHEL** # (7 or newer) machine. (It may work on other platforms but support for those # platforms is left to those who added them to DevStack.) It should work in # a VM or physical server. Additionally, we maintain a list of ``deb`` and @@ -221,7 +221,7 @@ write_devstack_version # Warn users who aren't on an explicitly supported distro, but allow them to # override check and attempt installation with ``FORCE=yes ./stack`` -if [[ ! ${DISTRO} =~ (xenial|artful|bionic|stretch|jessie|f29|opensuse-15.0|opensuse-15.1|opensuse-tumbleweed|rhel7) ]]; then +if [[ ! ${DISTRO} =~ (bionic|stretch|jessie|f29|opensuse-15.0|opensuse-15.1|opensuse-tumbleweed|rhel7) ]]; then echo "WARNING: this script has not been tested on $DISTRO" if [[ "$FORCE" != "yes" ]]; then die $LINENO "If you wish to run this script anyway run with FORCE=yes" diff --git a/stackrc b/stackrc index 3fcdadffa3..15150df43b 100644 --- a/stackrc +++ b/stackrc @@ -656,9 +656,6 @@ case "$VIRT_DRIVER" in ;; esac -# By default, devstack will use Ubuntu Cloud Archive. -ENABLE_UBUNTU_CLOUD_ARCHIVE=$(trueorfalse True ENABLE_UBUNTU_CLOUD_ARCHIVE) - # Images # ------ diff --git a/tools/fixup_stuff.sh b/tools/fixup_stuff.sh index d2989379fe..eb8a76f276 100755 --- a/tools/fixup_stuff.sh +++ b/tools/fixup_stuff.sh @@ -71,15 +71,9 @@ function fixup_keystone { # Ubuntu Repositories #-------------------- -# We've found that Libvirt on Xenial is flaky and crashes enough to be -# a regular top e-r bug. Opt into Ubuntu Cloud Archive if on Xenial to -# get newer Libvirt. -# Make it possible to switch this based on an environment variable as -# libvirt 2.5.0 doesn't handle nested virtualization quite well and this -# is required for the trove development environment. -# Also enable universe since it is missing when installing from ISO. +# Enable universe for bionic since it is missing when installing from ISO. function fixup_ubuntu { - if [[ "$DISTRO" != "xenial" && "$DISTRO" != "bionic" ]]; then + if [[ "$DISTRO" != "bionic" ]]; then return fi @@ -88,31 +82,6 @@ function fixup_ubuntu { # Enable universe sudo add-apt-repository -y universe - - if [[ "${ENABLE_UBUNTU_CLOUD_ARCHIVE}" == "False" || "$DISTRO" != "xenial" ]]; then - return - fi - # Use UCA for newer libvirt. - if [[ -f /etc/ci/mirror_info.sh ]] ; then - # If we are on a nodepool provided host and it has told us about where - # we can find local mirrors then use that mirror. - source /etc/ci/mirror_info.sh - - sudo apt-add-repository -y "deb $NODEPOOL_UCA_MIRROR xenial-updates/queens main" - else - # Otherwise use upstream UCA - sudo add-apt-repository -y cloud-archive:queens - fi - - # Disable use of libvirt wheel since a cached wheel build might be - # against older libvirt binary. Particularly a problem if using - # the openstack wheel mirrors, but can hit locally too. - # TODO(clarkb) figure out how to use upstream wheel again. - iniset -sudo /etc/pip.conf "global" "no-binary" "libvirt-python" - - # Force update our APT repos, since we added UCA above. - REPOS_UPDATED=False - apt_get_update } # Python Packages