Add openEuler 22.03 LTS support

openEuler 20.03 LTS SP2 support was removed from devstack in last
few months due to its python version is too old and the CI job
always fail. And openEuler 20.03 LTS SP2 was out of maintainer in May
2022 by openEuler community.

The newest LTS version was released in March 2022 called 22.03 LTS.
This release will be maintained for at least 2 years. And the python
version is 3.9 which works well for devstack.

This Patch add the openEuler distro support back. And add the related
CI job to make sure its works well.

Change-Id: I99c99d08b4a44d3dc644bd2e56b5ae7f7ee44210
This commit is contained in:
wangxiyuan 2022-08-05 14:18:13 +08:00
parent 818d1a225d
commit 6440c6d7e6
10 changed files with 109 additions and 9 deletions

View File

@ -108,6 +108,16 @@
nodes:
- controller
- nodeset:
name: devstack-single-node-openeuler-22.03
nodes:
- name: controller
label: openEuler-22-03-LTS
groups:
- name: tempest
nodes:
- controller
- nodeset:
name: openstack-two-node
nodes:
@ -777,6 +787,62 @@
# Enable Neutron ML2/OVS services
q-agt: true
- job:
name: devstack-platform-openEuler-22.03-ovn-source
parent: tempest-full-py3
description: openEuler 22.03 LTS platform test (OVN)
nodeset: devstack-single-node-openeuler-22.03
voting: false
timeout: 9000
vars:
configure_swap_size: 4096
devstack_localrc:
# NOTE(wxy): OVN package is not supported by openEuler yet. Build it
# from source instead.
OVN_BUILD_FROM_SOURCE: True
OVN_BRANCH: "v21.06.0"
OVS_BRANCH: "a4b04276ab5934d087669ff2d191a23931335c87"
OVS_SYSCONFDIR: "/usr/local/etc/openvswitch"
- job:
name: devstack-platform-openEuler-22.03-ovs
parent: tempest-full-py3
description: openEuler 22.03 LTS platform test (OVS)
nodeset: devstack-single-node-openeuler-22.03
voting: false
timeout: 9000
vars:
configure_swap_size: 8192
devstack_localrc:
Q_AGENT: openvswitch
Q_ML2_PLUGIN_MECHANISM_DRIVERS: openvswitch
Q_ML2_TENANT_NETWORK_TYPE: vxlan
devstack_services:
# Disable OVN services
ovn-northd: false
ovn-controller: false
ovs-vswitchd: false
ovsdb-server: false
# Disable Neutron ML2/OVN services
q-ovn-metadata-agent: false
# Enable Neutron ML2/OVS services
q-agt: true
q-dhcp: true
q-l3: true
q-meta: true
q-metering: true
group-vars:
subnode:
devstack_services:
# Disable OVN services
ovn-controller: false
ovs-vswitchd: false
ovsdb-server: false
# Disable Neutron ML2/OVN services
q-ovn-metadata-agent: false
# Enable Neutron ML2/OVS services
q-agt: true
- job:
name: devstack-no-tls-proxy
parent: tempest-full-py3
@ -885,6 +951,8 @@
- devstack-platform-ubuntu-focal
- devstack-platform-ubuntu-jammy-ovn-source
- devstack-platform-ubuntu-jammy-ovs
- devstack-platform-openEuler-22.03-ovn-source
- devstack-platform-openEuler-22.03-ovs
- devstack-multinode
- devstack-unit-tests
- openstack-tox-bashate
@ -1017,3 +1085,7 @@
periodic:
jobs:
- devstack-no-tls-proxy
periodic-weekly:
jobs:
- devstack-platform-openEuler-22.03-ovn-source
- devstack-platform-openEuler-22.03-ovs

View File

@ -38,7 +38,8 @@ Install Linux
Start with a clean and minimal install of a Linux system. DevStack
attempts to support the two latest LTS releases of Ubuntu, the
latest/current Fedora version, CentOS/RHEL/Rocky Linux 9 and OpenSUSE.
latest/current Fedora version, CentOS/RHEL/Rocky Linux 9, OpenSUSE and
openEuler.
If you do not have a preference, Ubuntu 22.04 (Jammy) is the
most tested, and will probably go the smoothest.

View File

@ -1,3 +1,3 @@
ceph # NOPRIME
redhat-lsb-core # not:rhel9
redhat-lsb-core # not:rhel9,openEuler-22.03
xfsprogs

View File

@ -26,9 +26,9 @@ pkgconfig
postgresql-devel # psycopg2
psmisc
python3-devel
python3-pip
python3-pip # not:openEuler-22.03
python3-systemd
redhat-rpm-config # missing dep for gcc hardening flags, see rhbz#1217376
redhat-rpm-config # not:openEuler-22.03 missing dep for gcc hardening flags, see rhbz#1217376
tar
tcpdump
unzip

View File

@ -4,7 +4,7 @@ ebtables
genisoimage # not:rhel9 required for config_drive
iptables
iputils
kernel-modules
kernel-modules # not:openEuler-22.03
kpartx
parted
polkit

View File

@ -399,7 +399,7 @@ function _ensure_lsb_release {
elif [[ -x $(command -v zypper 2>/dev/null) ]]; then
sudo zypper -n install lsb-release
elif [[ -x $(command -v dnf 2>/dev/null) ]]; then
sudo dnf install -y redhat-lsb-core
sudo dnf install -y redhat-lsb-core || sudo dnf install -y openeuler-lsb
else
die $LINENO "Unable to find or auto-install lsb_release"
fi
@ -474,6 +474,8 @@ function GetDistro {
# Drop the . release as we assume it's compatible
# XXX re-evaluate when we get RHEL10
DISTRO="rhel${os_RELEASE::1}"
elif [[ "$os_VENDOR" =~ (openEuler) ]]; then
DISTRO="openEuler-$os_RELEASE"
else
# We can't make a good choice here. Setting a sensible DISTRO
# is part of the problem, but not the major issue -- we really
@ -525,6 +527,7 @@ function is_fedora {
fi
[ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \
[ "$os_VENDOR" = "openEuler" ] || \
[ "$os_VENDOR" = "RedHatEnterpriseServer" ] || \
[ "$os_VENDOR" = "RedHatEnterprise" ] || \
[ "$os_VENDOR" = "Rocky" ] || \
@ -575,6 +578,14 @@ function is_ubuntu {
[ "$os_PACKAGE" = "deb" ]
}
# Determine if current distribution is an openEuler distribution
# is_openeuler
function is_openeuler {
if [[ -z "$os_PACKAGE" ]]; then
GetOSVersion
fi
[ "$os_VENDOR" = "openEuler" ]
}
# Git Functions
# =============

View File

@ -95,7 +95,7 @@ function install_apache_uwsgi {
# didn't fix Python 3.10 compatibility before release. Should be
# fixed in uwsgi 4.9.0; can remove this when packages available
# or we drop this release
elif is_fedora && ! [[ $DISTRO =~ f36 ]]; then
elif is_fedora && ! is_openeuler && ! [[ $DISTRO =~ f36 ]]; then
# Note httpd comes with mod_proxy_uwsgi and it is loaded by
# default; the mod_proxy_uwsgi package actually conflicts now.
# See:

View File

@ -82,11 +82,17 @@ function install_libvirt {
sudo dnf copr enable -y @virtmaint-sig/virt-preview
fi
if is_openeuler; then
qemu_package=qemu
else
qemu_package=qemu-kvm
fi
# Note that in CentOS/RHEL this needs to come from the RDO
# repositories (qemu-kvm-ev ... which provides this package)
# as the base system version is too old. We should have
# pre-installed these
install_package qemu-kvm
install_package $qemu_package
install_package libvirt libvirt-devel python3-libvirt
if is_arch "aarch64"; then

View File

@ -64,6 +64,7 @@
'Debian': '/etc/apache2/sites-enabled/'
'Suse': '/etc/apache2/conf.d/'
'RedHat': '/etc/httpd/conf.d/'
'openEuler': '/etc/httpd/conf.d/'
- name: Discover configurations
find:

View File

@ -229,7 +229,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``
SUPPORTED_DISTROS="bullseye|focal|jammy|f36|opensuse-15.2|opensuse-tumbleweed|rhel8|rhel9"
SUPPORTED_DISTROS="bullseye|focal|jammy|f36|opensuse-15.2|opensuse-tumbleweed|rhel8|rhel9|openEuler-22.03"
if [[ ! ${DISTRO} =~ $SUPPORTED_DISTROS ]]; then
echo "WARNING: this script has not been tested on $DISTRO"
@ -394,6 +394,15 @@ elif [[ $DISTRO == "rhel9" ]]; then
sudo dnf config-manager --set-enabled crb
# rabbitmq and other packages are provided by RDO repositories.
_install_rdo
elif [[ $DISTRO == "openEuler-22.03" ]]; then
# There are some problem in openEuler. We should fix it first. Some required
# package/action runs before fixup script. So we can't fix there.
#
# 1. the hostname package is not installed by default
# 2. Some necessary packages are in openstack repo, for example liberasurecode-devel
# 3. python3-pip can be uninstalled by `get_pip.py` automaticly.
install_package hostname openstack-release-wallaby
uninstall_package python3-pip
fi
# Ensure python is installed