Support CentOS Stream 9
This patch includes changes required to run devstack on CentOS Stream 9 which has been already published in official repos by CentOS team [1]: - Add RDO deps repository for CS9. - remove xinetd package from installation for swift. Note that rsync-daemon is installed which should work fine. - Replace genisoimage by xorriso in CS9. - Use /etc/os-release to identify the distro in CS9 as it doesn't provide lsb_release command. - Use pip from rpm package instead of from get-pip.py as done in Fedora. - Add non-voting job devstack-platform-centos-9-stream to the check pipeline. Change-Id: Ic67cddabd5069211dc0611994b8b8360bcd61bef
This commit is contained in:
parent
f9a896c6e6
commit
5ea4c3c18c
21
.zuul.yaml
21
.zuul.yaml
@ -66,6 +66,16 @@
|
|||||||
nodes:
|
nodes:
|
||||||
- controller
|
- controller
|
||||||
|
|
||||||
|
- nodeset:
|
||||||
|
name: devstack-single-node-centos-9-stream
|
||||||
|
nodes:
|
||||||
|
- name: controller
|
||||||
|
label: centos-9-stream
|
||||||
|
groups:
|
||||||
|
- name: tempest
|
||||||
|
nodes:
|
||||||
|
- controller
|
||||||
|
|
||||||
- nodeset:
|
- nodeset:
|
||||||
name: devstack-single-node-opensuse-15
|
name: devstack-single-node-opensuse-15
|
||||||
nodes:
|
nodes:
|
||||||
@ -622,6 +632,16 @@
|
|||||||
vars:
|
vars:
|
||||||
configure_swap_size: 4096
|
configure_swap_size: 4096
|
||||||
|
|
||||||
|
- job:
|
||||||
|
name: devstack-platform-centos-9-stream
|
||||||
|
parent: tempest-full-py3
|
||||||
|
description: CentOS 9 Stream platform test
|
||||||
|
nodeset: devstack-single-node-centos-9-stream
|
||||||
|
voting: false
|
||||||
|
timeout: 9000
|
||||||
|
vars:
|
||||||
|
configure_swap_size: 4096
|
||||||
|
|
||||||
- job:
|
- job:
|
||||||
name: devstack-platform-debian-bullseye
|
name: devstack-platform-debian-bullseye
|
||||||
parent: tempest-full-py3
|
parent: tempest-full-py3
|
||||||
@ -766,6 +786,7 @@
|
|||||||
- devstack-enforce-scope
|
- devstack-enforce-scope
|
||||||
- devstack-platform-fedora-latest
|
- devstack-platform-fedora-latest
|
||||||
- devstack-platform-centos-8-stream
|
- devstack-platform-centos-8-stream
|
||||||
|
- devstack-platform-centos-9-stream
|
||||||
- devstack-platform-debian-bullseye
|
- devstack-platform-debian-bullseye
|
||||||
- devstack-multinode
|
- devstack-multinode
|
||||||
- devstack-unit-tests
|
- devstack-unit-tests
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
ceph # NOPRIME
|
ceph # NOPRIME
|
||||||
redhat-lsb-core
|
redhat-lsb-core # not:rhel9
|
||||||
xfsprogs
|
xfsprogs
|
||||||
|
@ -1,9 +1,10 @@
|
|||||||
cryptsetup
|
cryptsetup
|
||||||
dosfstools
|
dosfstools
|
||||||
genisoimage
|
genisoimage # not:rhel9
|
||||||
iscsi-initiator-utils
|
iscsi-initiator-utils
|
||||||
libosinfo
|
libosinfo
|
||||||
lvm2
|
lvm2
|
||||||
sg3_utils
|
sg3_utils
|
||||||
# Stuff for diablo volumes
|
# Stuff for diablo volumes
|
||||||
sysfsutils
|
sysfsutils
|
||||||
|
xorriso # not:rhel8
|
||||||
|
@ -3,7 +3,7 @@ curl
|
|||||||
dnsmasq # for q-dhcp
|
dnsmasq # for q-dhcp
|
||||||
dnsmasq-utils # for dhcp_release
|
dnsmasq-utils # for dhcp_release
|
||||||
ebtables
|
ebtables
|
||||||
genisoimage # required for config_drive
|
genisoimage # not:rhel9 required for config_drive
|
||||||
iptables
|
iptables
|
||||||
iputils
|
iputils
|
||||||
kernel-modules
|
kernel-modules
|
||||||
@ -13,3 +13,4 @@ polkit
|
|||||||
rabbitmq-server # NOPRIME
|
rabbitmq-server # NOPRIME
|
||||||
sqlite
|
sqlite
|
||||||
sudo
|
sudo
|
||||||
|
xorriso # not:rhel8
|
||||||
|
@ -4,4 +4,4 @@ memcached
|
|||||||
rsync-daemon
|
rsync-daemon
|
||||||
sqlite
|
sqlite
|
||||||
xfsprogs
|
xfsprogs
|
||||||
xinetd # not:f34
|
xinetd # not:f34,rhel9
|
||||||
|
@ -368,12 +368,19 @@ function _ensure_lsb_release {
|
|||||||
# - os_VENDOR
|
# - os_VENDOR
|
||||||
# - os_PACKAGE
|
# - os_PACKAGE
|
||||||
function GetOSVersion {
|
function GetOSVersion {
|
||||||
# We only support distros that provide a sane lsb_release
|
# CentOS Stream 9 does not provide lsb_release
|
||||||
_ensure_lsb_release
|
source /etc/os-release
|
||||||
|
if [[ "${ID}${VERSION}" == "centos9" ]]; then
|
||||||
|
os_RELEASE=${VERSION_ID}
|
||||||
|
os_CODENAME="n/a"
|
||||||
|
os_VENDOR=$(echo $NAME | tr -d '[:space:]')
|
||||||
|
else
|
||||||
|
_ensure_lsb_release
|
||||||
|
|
||||||
os_RELEASE=$(lsb_release -r -s)
|
os_RELEASE=$(lsb_release -r -s)
|
||||||
os_CODENAME=$(lsb_release -c -s)
|
os_CODENAME=$(lsb_release -c -s)
|
||||||
os_VENDOR=$(lsb_release -i -s)
|
os_VENDOR=$(lsb_release -i -s)
|
||||||
|
fi
|
||||||
|
|
||||||
if [[ $os_VENDOR =~ (Debian|Ubuntu|LinuxMint) ]]; then
|
if [[ $os_VENDOR =~ (Debian|Ubuntu|LinuxMint) ]]; then
|
||||||
os_PACKAGE="deb"
|
os_PACKAGE="deb"
|
||||||
|
3
lib/nova
3
lib/nova
@ -479,7 +479,8 @@ function create_nova_conf {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# nova defaults to genisoimage but only mkisofs is available for 15.0+
|
# nova defaults to genisoimage but only mkisofs is available for 15.0+
|
||||||
if is_suse; then
|
# rhel provides mkisofs symlink to genisoimage or xorriso appropiately
|
||||||
|
if is_suse || is_fedora; then
|
||||||
iniset $NOVA_CONF DEFAULT mkisofs_cmd /usr/bin/mkisofs
|
iniset $NOVA_CONF DEFAULT mkisofs_cmd /usr/bin/mkisofs
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
24
stack.sh
24
stack.sh
@ -227,7 +227,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|f34|opensuse-15.2|opensuse-tumbleweed|rhel8"
|
SUPPORTED_DISTROS="bullseye|focal|f34|opensuse-15.2|opensuse-tumbleweed|rhel8|rhel9"
|
||||||
|
|
||||||
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"
|
||||||
@ -300,13 +300,17 @@ function _install_epel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function _install_rdo {
|
function _install_rdo {
|
||||||
if [[ "$TARGET_BRANCH" == "master" ]]; then
|
if [[ $DISTRO == "rhel8" ]]; then
|
||||||
# rdo-release.el8.rpm points to latest RDO release, use that for master
|
if [[ "$TARGET_BRANCH" == "master" ]]; then
|
||||||
sudo dnf -y install https://rdoproject.org/repos/rdo-release.el8.rpm
|
# rdo-release.el8.rpm points to latest RDO release, use that for master
|
||||||
else
|
sudo dnf -y install https://rdoproject.org/repos/rdo-release.el8.rpm
|
||||||
# For stable branches use corresponding release rpm
|
else
|
||||||
rdo_release=$(echo $TARGET_BRANCH | sed "s|stable/||g")
|
# For stable branches use corresponding release rpm
|
||||||
sudo dnf -y install https://rdoproject.org/repos/openstack-${rdo_release}/rdo-release-${rdo_release}.el8.rpm
|
rdo_release=$(echo $TARGET_BRANCH | sed "s|stable/||g")
|
||||||
|
sudo dnf -y install https://rdoproject.org/repos/openstack-${rdo_release}/rdo-release-${rdo_release}.el8.rpm
|
||||||
|
fi
|
||||||
|
elif [[ $DISTRO == "rhel9" ]]; then
|
||||||
|
sudo curl -L -o /etc/yum.repos.d/delorean-deps.repo http://trunk.rdoproject.org/centos9-master/delorean-deps.repo
|
||||||
fi
|
fi
|
||||||
sudo dnf -y update
|
sudo dnf -y update
|
||||||
}
|
}
|
||||||
@ -385,6 +389,10 @@ if [[ $DISTRO == "rhel8" ]]; then
|
|||||||
# RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1154272
|
# RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1154272
|
||||||
# Patch: https://github.com/rpm-software-management/dnf/pull/1448
|
# Patch: https://github.com/rpm-software-management/dnf/pull/1448
|
||||||
echo "[]" | sudo tee /var/cache/dnf/expired_repos.json
|
echo "[]" | sudo tee /var/cache/dnf/expired_repos.json
|
||||||
|
elif [[ $DISTRO == "rhel9" ]]; then
|
||||||
|
sudo dnf config-manager --set-enabled crb
|
||||||
|
# rabbitmq and other packages are provided by RDO repositories.
|
||||||
|
_install_rdo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Ensure python is installed
|
# Ensure python is installed
|
||||||
|
@ -118,7 +118,7 @@ if [[ -n $PYPI_ALTERNATIVE_URL ]]; then
|
|||||||
configure_pypi_alternative_url
|
configure_pypi_alternative_url
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if is_fedora && [[ ${DISTRO} == f* ]]; then
|
if is_fedora && [[ ${DISTRO} == f* || ${DISTRO} == rhel9 ]]; 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
|
||||||
|
Loading…
Reference in New Issue
Block a user