Merge "Support CentOS Stream 10"

This commit is contained in:
Zuul
2025-08-12 20:44:04 +00:00
committed by Gerrit Code Review
8 changed files with 74 additions and 17 deletions

View File

@@ -38,6 +38,16 @@
nodes: nodes:
- controller - controller
- nodeset:
name: devstack-single-node-centos-10-stream
nodes:
- name: controller
label: centos-10-stream-8GB
groups:
- name: tempest
nodes:
- controller
- nodeset: - nodeset:
name: devstack-single-node-centos-9-stream name: devstack-single-node-centos-9-stream
nodes: nodes:
@@ -86,6 +96,36 @@
nodes: nodes:
- controller - controller
- nodeset:
name: openstack-two-node-centos-10-stream
nodes:
- name: controller
label: centos-10-stream-8GB
- name: compute1
label: centos-10-stream-8GB
groups:
# Node where tests are executed and test results collected
- name: tempest
nodes:
- controller
# Nodes running the compute service
- name: compute
nodes:
- controller
- compute1
# Nodes that are not the controller
- name: subnode
nodes:
- compute1
# Switch node for multinode networking setup
- name: switch
nodes:
- controller
# Peer nodes for multinode networking setup
- name: peers
nodes:
- compute1
- nodeset: - nodeset:
name: openstack-two-node-centos-9-stream name: openstack-two-node-centos-9-stream
nodes: nodes:
@@ -729,6 +769,14 @@
# we often have to rush things through devstack to stabilise the gate, # 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 # and these platforms don't have the round-the-clock support to avoid
# becoming blockers in that situation. # becoming blockers in that situation.
- job:
name: devstack-platform-centos-10-stream
parent: tempest-full-py3
description: CentOS 10 Stream platform test
nodeset: devstack-single-node-centos-10-stream
timeout: 9000
voting: false
- job: - job:
name: devstack-platform-centos-9-stream name: devstack-platform-centos-9-stream
parent: tempest-full-py3 parent: tempest-full-py3
@@ -911,6 +959,7 @@
- devstack - devstack
- devstack-ipv6 - devstack-ipv6
- devstack-enforce-scope - devstack-enforce-scope
- devstack-platform-centos-10-stream
- devstack-platform-centos-9-stream - devstack-platform-centos-9-stream
- devstack-platform-debian-bookworm - devstack-platform-debian-bookworm
- devstack-platform-rocky-blue-onyx - devstack-platform-rocky-blue-onyx
@@ -994,6 +1043,7 @@
- devstack-no-tls-proxy - devstack-no-tls-proxy
periodic-weekly: periodic-weekly:
jobs: jobs:
- devstack-platform-centos-10-stream
- devstack-platform-centos-9-stream - devstack-platform-centos-9-stream
- devstack-platform-debian-bookworm - devstack-platform-debian-bookworm
- devstack-platform-rocky-blue-onyx - devstack-platform-rocky-blue-onyx

View File

@@ -10,9 +10,10 @@ glibc-langpack-en # dist:rhel9
graphviz # needed only for docs graphviz # needed only for docs
httpd httpd
httpd-devel httpd-devel
iptables-nft # dist:rhel9 iptables-nft # dist:rhel9,rhel10
iptables-services iptables-services
java-1.8.0-openjdk-headless java-1.8.0-openjdk-headless # not:rhel10
java-21-openjdk-headless # dist:rhel10
libffi-devel libffi-devel
libjpeg-turbo-devel # Pillow 3.0.0 libjpeg-turbo-devel # Pillow 3.0.0
libxml2-devel # lxml libxml2-devel # lxml
@@ -23,7 +24,8 @@ net-tools
openssh-server openssh-server
openssl openssl
openssl-devel # to rebuild pyOpenSSL if needed openssl-devel # to rebuild pyOpenSSL if needed
pcre-devel # for python-pcre pcre2-devel # dist:rhel10 for python-pcre2
pcre-devel # not:rhel10 for python-pcre
pkgconfig pkgconfig
postgresql-devel # psycopg2 postgresql-devel # psycopg2
psmisc psmisc

View File

@@ -1,6 +1,6 @@
cryptsetup cryptsetup
dosfstools dosfstools
genisoimage # not:rhel9 genisoimage # not:rhel9,rhel10
iscsi-initiator-utils iscsi-initiator-utils
libosinfo libosinfo
lvm2 lvm2

View File

@@ -1,7 +1,7 @@
conntrack-tools conntrack-tools
curl curl
ebtables ebtables
genisoimage # not:rhel9 required for config_drive genisoimage # not:rhel9,rhel10 required for config_drive
iptables iptables
iputils iputils
kernel-modules # not:openEuler-22.03 kernel-modules # not:openEuler-22.03

View File

@@ -4,4 +4,4 @@ memcached
rsync-daemon rsync-daemon
sqlite sqlite
xfsprogs xfsprogs
xinetd # not:f36,rhel9 xinetd # not:f36,rhel9,rhel10

View File

@@ -423,7 +423,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 openeuler-lsb sudo dnf install -y python3-distro || 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
@@ -436,9 +436,9 @@ function _ensure_lsb_release {
# - os_VENDOR # - os_VENDOR
# - os_PACKAGE # - os_PACKAGE
function GetOSVersion { function GetOSVersion {
# CentOS Stream 9 and RHEL 9 do not provide lsb_release # CentOS Stream 9 or later and RHEL 9 or later do not provide lsb_release
source /etc/os-release source /etc/os-release
if [[ "${ID}${VERSION}" == "centos9" ]] || [[ "${ID}${VERSION}" =~ "rhel9" ]]; then if [[ "${ID}${VERSION}" =~ "centos" ]] || [[ "${ID}${VERSION}" =~ "rhel" ]]; then
os_RELEASE=${VERSION_ID} os_RELEASE=${VERSION_ID}
os_CODENAME="n/a" os_CODENAME="n/a"
os_VENDOR=$(echo $NAME | tr -d '[:space:]') os_VENDOR=$(echo $NAME | tr -d '[:space:]')
@@ -485,9 +485,8 @@ function GetDistro {
"$os_VENDOR" =~ (OracleServer) || \ "$os_VENDOR" =~ (OracleServer) || \
"$os_VENDOR" =~ (Rocky) || \ "$os_VENDOR" =~ (Rocky) || \
"$os_VENDOR" =~ (Virtuozzo) ]]; then "$os_VENDOR" =~ (Virtuozzo) ]]; then
# Drop the . release as we assume it's compatible MAJOR_VERSION=$(echo $os_RELEASE | cut -d. -f1)
# XXX re-evaluate when we get RHEL10 DISTRO="rhel${MAJOR_VERSION}"
DISTRO="rhel${os_RELEASE::1}"
elif [[ "$os_VENDOR" =~ (openEuler) ]]; then elif [[ "$os_VENDOR" =~ (openEuler) ]]; then
DISTRO="openEuler-$os_RELEASE" DISTRO="openEuler-$os_RELEASE"
else else

View File

@@ -230,7 +230,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="bookworm|jammy|noble|rhel9" SUPPORTED_DISTROS="bookworm|jammy|noble|rhel9|rhel10"
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"
@@ -302,16 +302,17 @@ function _install_epel {
} }
function _install_rdo { function _install_rdo {
if [[ $DISTRO == "rhel9" ]]; then if [[ $DISTRO =~ "rhel" ]]; then
VERSION=${DISTRO:4:2}
rdo_release=${TARGET_BRANCH#*/} rdo_release=${TARGET_BRANCH#*/}
if [[ "$TARGET_BRANCH" == "master" ]]; then if [[ "$TARGET_BRANCH" == "master" ]]; then
# adding delorean-deps repo to provide current master rpms # adding delorean-deps repo to provide current master rpms
sudo wget https://trunk.rdoproject.org/centos9-master/delorean-deps.repo -O /etc/yum.repos.d/delorean-deps.repo sudo wget https://trunk.rdoproject.org/centos${VERSION}-master/delorean-deps.repo -O /etc/yum.repos.d/delorean-deps.repo
else else
if sudo dnf provides centos-release-openstack-${rdo_release} >/dev/null 2>&1; then if sudo dnf provides centos-release-openstack-${rdo_release} >/dev/null 2>&1; then
sudo dnf -y install centos-release-openstack-${rdo_release} sudo dnf -y install centos-release-openstack-${rdo_release}
else else
sudo wget https://trunk.rdoproject.org/centos9-${rdo_release}/delorean-deps.repo -O /etc/yum.repos.d/delorean-deps.repo sudo wget https://trunk.rdoproject.org/centos${VERSION}-${rdo_release}/delorean-deps.repo -O /etc/yum.repos.d/delorean-deps.repo
fi fi
fi fi
fi fi
@@ -408,6 +409,11 @@ elif [[ $DISTRO == "rhel9" ]]; then
if is_package_installed curl-minimal; then if is_package_installed curl-minimal; then
sudo dnf swap -y curl-minimal curl sudo dnf swap -y curl-minimal curl
fi fi
elif [[ $DISTRO == "rhel10" ]]; then
# for CentOS Stream 10 repository
sudo dnf config-manager --set-enabled crb
# rabbitmq and other packages are provided by RDO repositories.
_install_rdo
elif [[ $DISTRO == "openEuler-22.03" ]]; then elif [[ $DISTRO == "openEuler-22.03" ]]; then
# There are some problem in openEuler. We should fix it first. Some required # 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. # package/action runs before fixup script. So we can't fix there.

View File

@@ -127,7 +127,7 @@ if [[ -n $PYPI_ALTERNATIVE_URL ]]; then
configure_pypi_alternative_url configure_pypi_alternative_url
fi fi
if is_fedora && [[ ${DISTRO} == f* || ${DISTRO} == rhel9 ]]; then if is_fedora && [[ ${DISTRO} == f* || ${DISTRO} == rhel* ]]; then
# get-pip.py will not install over the python3-pip package in # get-pip.py will not install over the python3-pip package in
# Fedora 34 any more. # Fedora 34 any more.
# https://bugzilla.redhat.com/show_bug.cgi?id=1988935 # https://bugzilla.redhat.com/show_bug.cgi?id=1988935