Add support for for CentOS Stream 9

CentOS has published the official mirror for CentOS Stream 9 [1]. In RDO,
we are working to get ready for it ASAP and we have the required repos
to run p-o-i on CS9 [2].

This patch is adding support to CS9 in p-o-i repo with the required
fixes. Also is adding integrations jobs for scenarios 0-4 and adding
them as non-voting. Note that we don't have promotion pipeline working
so i think it's better to not make it voting yet.

[1] http://mirror.stream.centos.org/9-stream/
[2] https://trunk.rdoproject.org/centos9-master/report.html

Change-Id: I9da46a6aaef3559b24d5a47fb0bde9ae1d09abdb
This commit is contained in:
Alfredo Moralejo 2021-05-27 17:34:06 +02:00 committed by Takashi Kajinami
parent 1bd2ad0eb4
commit f384effdb4
7 changed files with 113 additions and 17 deletions

View File

@ -14,7 +14,7 @@
# under the License.
source /etc/os-release
OS_NAME_VERS=${ID}${VERSION_ID}
export OS_NAME_VERS=${ID}${VERSION_ID}
# Write out facts to the facter folder when we generate them.
export WRITE_FACTS=${WRITE_FACTS:-true}
@ -40,8 +40,13 @@ if [ -f /etc/ci/mirror_info.sh ]; then
CEPH_MIRROR_HOST="http://download.ceph.com/debian-${CEPH_VERSION}"
NODEPOOL_PUPPETLABS_MIRROR="http://${NODEPOOL_MIRROR_HOST}/apt-puppetlabs"
else
CEPH_MIRROR_HOST="${CENTOS_MIRROR_HOST}/centos/${VERSION_ID}/storage/x86_64/ceph-${CEPH_VERSION}/"
NODEPOOL_PUPPETLABS_MIRROR="http://${NODEPOOL_MIRROR_HOST}/yum-puppetlabs"
# TODO centos9 content is still not mirrored
if [ "${OS_NAME_VERS}" == "centos9" ]; then
CEPH_MIRROR_HOST="https://buildlogs.centos.org/centos/9-stream/storage/x86_64/ceph-${CEPH_VERSION}/"
else
CEPH_MIRROR_HOST="${CENTOS_MIRROR_HOST}/centos/${VERSION_ID}/storage/x86_64/ceph-${CEPH_VERSION}/"
NODEPOOL_PUPPETLABS_MIRROR="http://${NODEPOOL_MIRROR_HOST}/yum-puppetlabs"
fi
fi
else
CENTOS_MIRROR_HOST='http://mirror.centos.org'
@ -52,14 +57,14 @@ else
CEPH_MIRROR_HOST="https://download.ceph.com/debian-${CEPH_VERSION}"
NODEPOOL_PUPPETLABS_MIRROR='https://apt.puppetlabs.com'
else
CEPH_MIRROR_HOST="${CENTOS_MIRROR_HOST}/centos/${VERSION_ID}/storage/x86_64/ceph-${CEPH_VERSION}/"
CEPH_MIRROR_HOST="${CENTOS_MIRROR_HOST}/centos/${VERSION_ID}-stream/storage/x86_64/ceph-${CEPH_VERSION}/"
NODEPOOL_PUPPETLABS_MIRROR="https://yum.puppetlabs.com"
fi
fi
curl -o /tmp/delorean.repo "${NODEPOOL_RDO_PROXY}/centos8-master/puppet-passed-ci/delorean.repo"
curl -o /tmp/delorean.repo "${NODEPOOL_RDO_PROXY}/${OS_NAME_VERS}-master/puppet-passed-ci/delorean.repo"
sed -i -e "s|https://trunk.rdoproject.org|${NODEPOOL_RDO_PROXY}|g" /tmp/delorean.repo
curl -o /tmp/delorean-deps.repo "${NODEPOOL_RDO_PROXY}/centos8-master/delorean-deps.repo"
curl -o /tmp/delorean-deps.repo "${NODEPOOL_RDO_PROXY}/${OS_NAME_VERS}-master/delorean-deps.repo"
sed -i -e "s|https://trunk.rdoproject.org|${NODEPOOL_RDO_PROXY}|g" /tmp/delorean-deps.repo
sed -i -e "s|http://mirror.centos.org|${CENTOS_MIRROR_HOST}|g" /tmp/delorean-deps.repo

View File

@ -217,13 +217,13 @@ install_puppet() {
if rpm --quiet -q epel-release; then
$SUDO $YUM remove -y epel-release
fi
source /etc/os-release
if [ "${MANAGE_REPOS}" == "true" ] ; then
source /etc/os-release
$SUDO rpm --import ${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppetlabs
$SUDO rpm --import ${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppet
$SUDO rpm --import ${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppet-20250406
$SUDO bash -c "cat << EOF > /etc/yum.repos.d/puppetlabs.repo
if [ ${VERSION_ID} -ne 9 ] ; then
$SUDO rpm --import ${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppetlabs
$SUDO rpm --import ${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppet
$SUDO rpm --import ${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppet-20250406
$SUDO bash -c "cat << EOF > /etc/yum.repos.d/puppetlabs.repo
[puppetlabs-products]
name=Puppet Labs Products El ${VERSION_ID} - x86_64
baseurl=${NODEPOOL_PUPPETLABS_MIRROR}/puppet${PUPPET_MAJ_VERSION}/el/${VERSION_ID}/x86_64/
@ -233,6 +233,16 @@ gpgkey=${NODEPOOL_PUPPETLABS_MIRROR}/RPM-GPG-KEY-puppetlabs
enabled=1
gpgcheck=1
EOF"
else
# TODO we are using puppet from RDO in CS9 until there el9 in puppetlabs repo
$SUDO bash -c "cat << EOF > /etc/yum.repos.d/puppet-rdo.repo
[puppet-rdo]
name=Puppet from RDO repo for CentOS ${VERSION_ID} - x86_64
baseurl=https://trunk.rdoproject.org/centos9-master/deps/latest/
enabled=1
gpgcheck=0
EOF"
fi
fi
$SUDO $YUM install -y ${PUPPET_PKG}
fi

View File

@ -47,6 +47,14 @@ class openstack_integration::repos {
$ceph_mirror = pick($::ceph_mirror_host, "http://download.ceph.com/debian-${ceph_version_real}/")
}
'RedHat': {
# Set specific variables for CentOS Stream 9
if $::os['release']['major'] >= '9' {
$powertools_repo = 'crb'
$manage_virt = false
} else {
$powertools_repo = 'powertools'
$manage_virt = true
}
if defined('$::centos_mirror_host') and $::centos_mirror_host != '' {
$centos_mirror = $::centos_mirror_host
} else {
@ -68,6 +76,7 @@ class openstack_integration::repos {
class { 'openstack_extras::repo::redhat::redhat':
manage_rdo => false,
manage_epel => false,
manage_virt => $manage_virt,
centos_mirror_url => $centos_mirror,
repo_source_hash => {
'delorean.repo' => $delorean_repo,
@ -95,9 +104,9 @@ class openstack_integration::repos {
# PowerTools is required on CentOS8 since Ussuri.
if $::operatingsystem == 'CentOS' {
exec { 'enable-powertools':
command => 'dnf config-manager --enable powertools',
command => "dnf config-manager --enable ${powertools_repo}",
path => '/usr/bin/',
unless => 'test 0 -ne $(dnf repolist --enabled powertools | wc -l)'
unless => "test 0 -ne $(dnf repolist --enabled ${powertools_repo} | wc -l)"
}
}

View File

@ -84,6 +84,19 @@
- ansible_os_family == 'RedHat'
- ansible_distribution == "Fedora" or ansible_distribution_major_version >= "8"
- block:
- name: install required packages for CentOS 9
dnf:
name: "{{ item }}"
state: present
become: true
ignore_errors: true
with_items:
- rubygem-rexml
when:
- ansible_os_family == 'RedHat'
- ansible_distribution == "Fedora" or ansible_distribution_major_version >= "9"
- name: Install Ruby dependencies (Ubuntu)
apt:
name: "{{ item }}"

View File

@ -48,8 +48,14 @@ export WRITE_FACTS=false
source ${SCRIPT_DIR}/configure_facts.sh
export PATH=${PATH}:/opt/puppetlabs/bin:/opt/puppetlabs/puppet/bin
export PUPPET_BASE_PATH=/etc/puppetlabs/code
export PUPPET_PKG=${PUPPET_PKG:-puppet-agent}
# TODO In CentOS9 there is no puppetlabs package yet, so we use RDO one.
if [ "${OS_NAME_VERS}" == "centos9" ]; then
export PUPPET_BASE_PATH=/etc/puppet
export PUPPET_PKG="puppet"
else
export PUPPET_BASE_PATH=/etc/puppetlabs/code
export PUPPET_PKG=${PUPPET_PKG:-puppet-agent}
fi
print_header 'Start (run_tests.sh)'
@ -144,7 +150,7 @@ if uses_debs; then
$SUDO apt-get install -y dstat ebtables iotop sysstat
elif is_fedora; then
$SUDO $YUM install -y dstat setools setroubleshoot audit iotop sysstat
$SUDO service auditd start
$SUDO systemctl start auditd
# SElinux in permissive mode so later we can catch alerts
$SUDO selinuxenabled && $SUDO setenforce 0
fi

View File

@ -33,6 +33,14 @@
voting: false
nodeset: centos-8-stream
- job:
name: puppet-openstack-integration-7-scenario000-tempest-centos-9-stream
parent: puppet-openstack-integration-7-scenario000
voting: false
nodeset:
nodes:
- name: centos-9-stream
label: centos-9-stream
- job:
name: puppet-openstack-integration-6-scenario001
parent: puppet-openstack-integration-6
@ -60,6 +68,15 @@
parent: puppet-openstack-integration-7-scenario001
nodeset: centos-8-stream
- job:
name: puppet-openstack-integration-7-scenario001-tempest-centos-9-stream
parent: puppet-openstack-integration-7-scenario001
voting: false
nodeset:
nodes:
- name: centos-9-stream
label: centos-9-stream
- job:
name: puppet-openstack-integration-6-scenario002
parent: puppet-openstack-integration-6
@ -85,6 +102,15 @@
parent: puppet-openstack-integration-7-scenario002
nodeset: centos-8-stream
- job:
name: puppet-openstack-integration-7-scenario002-tempest-centos-9-stream
parent: puppet-openstack-integration-7-scenario002
voting: false
nodeset:
nodes:
- name: centos-9-stream
label: centos-9-stream
- job:
name: puppet-openstack-integration-6-scenario003
parent: puppet-openstack-integration-6
@ -110,6 +136,15 @@
parent: puppet-openstack-integration-7-scenario003
nodeset: centos-8-stream
- job:
name: puppet-openstack-integration-7-scenario003-tempest-centos-9-stream
parent: puppet-openstack-integration-7-scenario003
voting: false
nodeset:
nodes:
- name: centos-9-stream
label: centos-9-stream
- job:
name: puppet-openstack-integration-6-scenario004
parent: puppet-openstack-integration-6
@ -136,3 +171,12 @@
name: puppet-openstack-integration-7-scenario004-tempest-centos-8-stream
parent: puppet-openstack-integration-7-scenario004
nodeset: centos-8-stream
- job:
name: puppet-openstack-integration-7-scenario004-tempest-centos-9-stream
parent: puppet-openstack-integration-7-scenario004
voting: false
nodeset:
nodes:
- name: centos-9-stream
label: centos-9-stream

View File

@ -59,6 +59,11 @@
- puppet-openstack-integration-7-scenario002-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario003-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario004-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario000-tempest-centos-9-stream
- puppet-openstack-integration-7-scenario001-tempest-centos-9-stream
- puppet-openstack-integration-7-scenario002-tempest-centos-9-stream
- puppet-openstack-integration-7-scenario003-tempest-centos-9-stream
- puppet-openstack-integration-7-scenario004-tempest-centos-9-stream
gate:
jobs:
- puppet-openstack-integration-7-scenario001-tempest-centos-8-stream
@ -72,6 +77,7 @@
jobs:
- puppet-openstack-integration-6-scenario001-tempest-ubuntu-focal
- puppet-openstack-integration-7-scenario001-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario001-tempest-centos-9-stream
gate:
jobs:
- puppet-openstack-integration-7-scenario001-tempest-centos-8-stream
@ -82,6 +88,7 @@
jobs:
- puppet-openstack-integration-6-scenario002-tempest-ubuntu-focal
- puppet-openstack-integration-7-scenario002-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario002-tempest-centos-9-stream
gate:
jobs:
- puppet-openstack-integration-7-scenario002-tempest-centos-8-stream
@ -92,6 +99,7 @@
jobs:
- puppet-openstack-integration-6-scenario003-tempest-ubuntu-focal
- puppet-openstack-integration-7-scenario003-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario003-tempest-centos-9-stream
gate:
jobs:
- puppet-openstack-integration-7-scenario003-tempest-centos-8-stream
@ -102,6 +110,7 @@
jobs:
- puppet-openstack-integration-6-scenario004-tempest-ubuntu-focal
- puppet-openstack-integration-7-scenario004-tempest-centos-8-stream
- puppet-openstack-integration-7-scenario004-tempest-centos-9-stream
gate:
jobs:
- puppet-openstack-integration-7-scenario004-tempest-centos-8-stream