Merge "[neutron] Don't configure firewall_driver for core ML2 plugin"
diff --git a/.zuul.yaml b/.zuul.yaml
index 471ca10..8e20f6e 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -109,6 +109,16 @@
- 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:
- name: controller
@@ -778,6 +788,62 @@
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
description: |
@@ -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
diff --git a/doc/source/index.rst b/doc/source/index.rst
index 3f206f4..1e932f8 100644
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -38,7 +38,8 @@
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.
diff --git a/files/rpms/ceph b/files/rpms/ceph
index 33a55f8..19f158f 100644
--- a/files/rpms/ceph
+++ b/files/rpms/ceph
@@ -1,3 +1,3 @@
ceph # NOPRIME
-redhat-lsb-core # not:rhel9
+redhat-lsb-core # not:rhel9,openEuler-22.03
xfsprogs
diff --git a/files/rpms/general b/files/rpms/general
index 7697513..b6866de 100644
--- a/files/rpms/general
+++ b/files/rpms/general
@@ -26,9 +26,9 @@
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
diff --git a/files/rpms/nova b/files/rpms/nova
index f2824ee..e0f13b8 100644
--- a/files/rpms/nova
+++ b/files/rpms/nova
@@ -4,7 +4,7 @@
genisoimage # not:rhel9 required for config_drive
iptables
iputils
-kernel-modules
+kernel-modules # not:openEuler-22.03
kpartx
parted
polkit
diff --git a/functions-common b/functions-common
index 0aee5d1..4eed5d8 100644
--- a/functions-common
+++ b/functions-common
@@ -399,7 +399,7 @@
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 @@
# 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 @@
fi
[ "$os_VENDOR" = "Fedora" ] || [ "$os_VENDOR" = "Red Hat" ] || \
+ [ "$os_VENDOR" = "openEuler" ] || \
[ "$os_VENDOR" = "RedHatEnterpriseServer" ] || \
[ "$os_VENDOR" = "RedHatEnterprise" ] || \
[ "$os_VENDOR" = "Rocky" ] || \
@@ -575,6 +578,14 @@
[ "$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
# =============
diff --git a/lib/apache b/lib/apache
index 705776c..dd8c9a0 100644
--- a/lib/apache
+++ b/lib/apache
@@ -95,7 +95,7 @@
# 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:
diff --git a/lib/nova_plugins/functions-libvirt b/lib/nova_plugins/functions-libvirt
index 3e7d280..c0e45eb 100644
--- a/lib/nova_plugins/functions-libvirt
+++ b/lib/nova_plugins/functions-libvirt
@@ -82,11 +82,17 @@
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
diff --git a/lib/tempest b/lib/tempest
index b232f24..ec2949a 100644
--- a/lib/tempest
+++ b/lib/tempest
@@ -779,7 +779,12 @@
# install_tempest() - Collect source and prepare
function install_tempest {
git_clone $TEMPEST_REPO $TEMPEST_DIR $TEMPEST_BRANCH
- pip_install 'tox!=2.8.0'
+ # NOTE(gmann): Pinning tox<4.0.0 for stable/zed and lower. Tox 4.0.0
+ # released after zed was released and has some incompatible changes
+ # and it is ok not to fix the issues caused by tox 4.0.0 in stable
+ # beanches jobs. We can continue testing the stable/zed and lower
+ # branches with tox<4.0.0
+ pip_install 'tox!=2.8.0,<4.0.0'
pushd $TEMPEST_DIR
# NOTE(gmann): checkout the TEMPEST_BRANCH in case TEMPEST_BRANCH
# is tag name not master. git_clone would not checkout tag because
diff --git a/playbooks/tox/pre.yaml b/playbooks/tox/pre.yaml
index d7e4670..68d5254 100644
--- a/playbooks/tox/pre.yaml
+++ b/playbooks/tox/pre.yaml
@@ -5,4 +5,10 @@
bindep_profile: test
bindep_dir: "{{ zuul_work_dir }}"
- test-setup
- - ensure-tox
+ # NOTE(gmann): Pinning tox<4.0.0 for stable/zed and lower. Tox 4.0.0
+ # released after zed was released and has some incompatible changes
+ # and it is ok not to fix the issues caused by tox 4.0.0 in stable
+ # beanches jobs. We can continue testing the stable/zed and lower
+ # branches with tox<4.0.0
+ - role: ensure-tox
+ ensure_tox_version: "<4"
diff --git a/roles/apache-logs-conf/tasks/main.yaml b/roles/apache-logs-conf/tasks/main.yaml
index bd64574..6b7ea37 100644
--- a/roles/apache-logs-conf/tasks/main.yaml
+++ b/roles/apache-logs-conf/tasks/main.yaml
@@ -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:
diff --git a/stack.sh b/stack.sh
index cc90fca..28576d1 100755
--- a/stack.sh
+++ b/stack.sh
@@ -229,7 +229,7 @@
# 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 @@
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