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:
parent
818d1a225d
commit
6440c6d7e6
72
.zuul.yaml
72
.zuul.yaml
@ -108,6 +108,16 @@
|
|||||||
nodes:
|
nodes:
|
||||||
- controller
|
- controller
|
||||||
|
|
||||||
|
- nodeset:
|
||||||
|
name: devstack-single-node-openeuler-22.03
|
||||||
|
nodes:
|
||||||
|
- name: controller
|
||||||
|
label: openEuler-22-03-LTS
|
||||||
|
groups:
|
||||||
|
- name: tempest
|
||||||
|
nodes:
|
||||||
|
- controller
|
||||||
|
|
||||||
- nodeset:
|
- nodeset:
|
||||||
name: openstack-two-node
|
name: openstack-two-node
|
||||||
nodes:
|
nodes:
|
||||||
@ -777,6 +787,62 @@
|
|||||||
# Enable Neutron ML2/OVS services
|
# Enable Neutron ML2/OVS services
|
||||||
q-agt: true
|
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:
|
- job:
|
||||||
name: devstack-no-tls-proxy
|
name: devstack-no-tls-proxy
|
||||||
parent: tempest-full-py3
|
parent: tempest-full-py3
|
||||||
@ -885,6 +951,8 @@
|
|||||||
- devstack-platform-ubuntu-focal
|
- devstack-platform-ubuntu-focal
|
||||||
- devstack-platform-ubuntu-jammy-ovn-source
|
- devstack-platform-ubuntu-jammy-ovn-source
|
||||||
- devstack-platform-ubuntu-jammy-ovs
|
- devstack-platform-ubuntu-jammy-ovs
|
||||||
|
- devstack-platform-openEuler-22.03-ovn-source
|
||||||
|
- devstack-platform-openEuler-22.03-ovs
|
||||||
- devstack-multinode
|
- devstack-multinode
|
||||||
- devstack-unit-tests
|
- devstack-unit-tests
|
||||||
- openstack-tox-bashate
|
- openstack-tox-bashate
|
||||||
@ -1017,3 +1085,7 @@
|
|||||||
periodic:
|
periodic:
|
||||||
jobs:
|
jobs:
|
||||||
- devstack-no-tls-proxy
|
- devstack-no-tls-proxy
|
||||||
|
periodic-weekly:
|
||||||
|
jobs:
|
||||||
|
- devstack-platform-openEuler-22.03-ovn-source
|
||||||
|
- devstack-platform-openEuler-22.03-ovs
|
||||||
|
@ -38,7 +38,8 @@ Install Linux
|
|||||||
|
|
||||||
Start with a clean and minimal install of a Linux system. DevStack
|
Start with a clean and minimal install of a Linux system. DevStack
|
||||||
attempts to support the two latest LTS releases of Ubuntu, the
|
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
|
If you do not have a preference, Ubuntu 22.04 (Jammy) is the
|
||||||
most tested, and will probably go the smoothest.
|
most tested, and will probably go the smoothest.
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
ceph # NOPRIME
|
ceph # NOPRIME
|
||||||
redhat-lsb-core # not:rhel9
|
redhat-lsb-core # not:rhel9,openEuler-22.03
|
||||||
xfsprogs
|
xfsprogs
|
||||||
|
@ -26,9 +26,9 @@ pkgconfig
|
|||||||
postgresql-devel # psycopg2
|
postgresql-devel # psycopg2
|
||||||
psmisc
|
psmisc
|
||||||
python3-devel
|
python3-devel
|
||||||
python3-pip
|
python3-pip # not:openEuler-22.03
|
||||||
python3-systemd
|
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
|
tar
|
||||||
tcpdump
|
tcpdump
|
||||||
unzip
|
unzip
|
||||||
|
@ -4,7 +4,7 @@ ebtables
|
|||||||
genisoimage # not:rhel9 required for config_drive
|
genisoimage # not:rhel9 required for config_drive
|
||||||
iptables
|
iptables
|
||||||
iputils
|
iputils
|
||||||
kernel-modules
|
kernel-modules # not:openEuler-22.03
|
||||||
kpartx
|
kpartx
|
||||||
parted
|
parted
|
||||||
polkit
|
polkit
|
||||||
|
@ -399,7 +399,7 @@ function _ensure_lsb_release {
|
|||||||
elif [[ -x $(command -v zypper 2>/dev/null) ]]; then
|
elif [[ -x $(command -v zypper 2>/dev/null) ]]; then
|
||||||
sudo zypper -n install lsb-release
|
sudo zypper -n install lsb-release
|
||||||
elif [[ -x $(command -v dnf 2>/dev/null) ]]; then
|
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
|
else
|
||||||
die $LINENO "Unable to find or auto-install lsb_release"
|
die $LINENO "Unable to find or auto-install lsb_release"
|
||||||
fi
|
fi
|
||||||
@ -474,6 +474,8 @@ function GetDistro {
|
|||||||
# Drop the . release as we assume it's compatible
|
# Drop the . release as we assume it's compatible
|
||||||
# XXX re-evaluate when we get RHEL10
|
# XXX re-evaluate when we get RHEL10
|
||||||
DISTRO="rhel${os_RELEASE::1}"
|
DISTRO="rhel${os_RELEASE::1}"
|
||||||
|
elif [[ "$os_VENDOR" =~ (openEuler) ]]; then
|
||||||
|
DISTRO="openEuler-$os_RELEASE"
|
||||||
else
|
else
|
||||||
# We can't make a good choice here. Setting a sensible DISTRO
|
# We can't make a good choice here. Setting a sensible DISTRO
|
||||||
# is part of the problem, but not the major issue -- we really
|
# is part of the problem, but not the major issue -- we really
|
||||||
@ -525,6 +527,7 @@ function is_fedora {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
[ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \
|
[ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \
|
||||||
|
[ "$os_VENDOR" = "openEuler" ] || \
|
||||||
[ "$os_VENDOR" = "RedHatEnterpriseServer" ] || \
|
[ "$os_VENDOR" = "RedHatEnterpriseServer" ] || \
|
||||||
[ "$os_VENDOR" = "RedHatEnterprise" ] || \
|
[ "$os_VENDOR" = "RedHatEnterprise" ] || \
|
||||||
[ "$os_VENDOR" = "Rocky" ] || \
|
[ "$os_VENDOR" = "Rocky" ] || \
|
||||||
@ -575,6 +578,14 @@ function is_ubuntu {
|
|||||||
[ "$os_PACKAGE" = "deb" ]
|
[ "$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
|
# Git Functions
|
||||||
# =============
|
# =============
|
||||||
|
|
||||||
|
@ -95,7 +95,7 @@ function install_apache_uwsgi {
|
|||||||
# didn't fix Python 3.10 compatibility before release. Should be
|
# didn't fix Python 3.10 compatibility before release. Should be
|
||||||
# fixed in uwsgi 4.9.0; can remove this when packages available
|
# fixed in uwsgi 4.9.0; can remove this when packages available
|
||||||
# or we drop this release
|
# 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
|
# Note httpd comes with mod_proxy_uwsgi and it is loaded by
|
||||||
# default; the mod_proxy_uwsgi package actually conflicts now.
|
# default; the mod_proxy_uwsgi package actually conflicts now.
|
||||||
# See:
|
# See:
|
||||||
|
@ -82,11 +82,17 @@ function install_libvirt {
|
|||||||
sudo dnf copr enable -y @virtmaint-sig/virt-preview
|
sudo dnf copr enable -y @virtmaint-sig/virt-preview
|
||||||
fi
|
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
|
# Note that in CentOS/RHEL this needs to come from the RDO
|
||||||
# repositories (qemu-kvm-ev ... which provides this package)
|
# repositories (qemu-kvm-ev ... which provides this package)
|
||||||
# as the base system version is too old. We should have
|
# as the base system version is too old. We should have
|
||||||
# pre-installed these
|
# pre-installed these
|
||||||
install_package qemu-kvm
|
install_package $qemu_package
|
||||||
install_package libvirt libvirt-devel python3-libvirt
|
install_package libvirt libvirt-devel python3-libvirt
|
||||||
|
|
||||||
if is_arch "aarch64"; then
|
if is_arch "aarch64"; then
|
||||||
|
@ -64,6 +64,7 @@
|
|||||||
'Debian': '/etc/apache2/sites-enabled/'
|
'Debian': '/etc/apache2/sites-enabled/'
|
||||||
'Suse': '/etc/apache2/conf.d/'
|
'Suse': '/etc/apache2/conf.d/'
|
||||||
'RedHat': '/etc/httpd/conf.d/'
|
'RedHat': '/etc/httpd/conf.d/'
|
||||||
|
'openEuler': '/etc/httpd/conf.d/'
|
||||||
|
|
||||||
- name: Discover configurations
|
- name: Discover configurations
|
||||||
find:
|
find:
|
||||||
|
11
stack.sh
11
stack.sh
@ -229,7 +229,7 @@ write_devstack_version
|
|||||||
|
|
||||||
# Warn users who aren't on an explicitly supported distro, but allow them to
|
# Warn users who aren't on an explicitly supported distro, but allow them to
|
||||||
# override check and attempt installation with ``FORCE=yes ./stack``
|
# 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
|
if [[ ! ${DISTRO} =~ $SUPPORTED_DISTROS ]]; then
|
||||||
echo "WARNING: this script has not been tested on $DISTRO"
|
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
|
sudo dnf config-manager --set-enabled crb
|
||||||
# rabbitmq and other packages are provided by RDO repositories.
|
# rabbitmq and other packages are provided by RDO repositories.
|
||||||
_install_rdo
|
_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
|
fi
|
||||||
|
|
||||||
# Ensure python is installed
|
# Ensure python is installed
|
||||||
|
Loading…
Reference in New Issue
Block a user