Add CentOS Stream 9 preview support

CentOS is publishing some preview composes of CentOS Stream 9. In RDO,
we are working to get ready for it ASAP.

This patch is proposing some hacks needed for current status of
CentOS9 so that i can use this patch for it:

- Force rsync to be executed without xinetd (xinetd is not in CS9)
- Added the creation of initiatorname.iscsi
- Fix URI.escape issue in puppetlabs-stdlib

Change-Id: I64edd1876ccc32f98ab2330024d9ab513f42a158
This commit is contained in:
Joel Capitao 2021-06-07 17:51:34 +02:00
parent 4f28c22b97
commit 75b41ba3d7
8 changed files with 411 additions and 11 deletions

View File

@ -60,6 +60,16 @@
label: centos-8-stream
run: playbooks/packstack-integration-tempest.yaml
- job:
name: packstack-centos9
parent: packstack-base
vars:
selinux_enforcing: "false"
delorean: "https://trunk.rdoproject.org/centos9/current/delorean.repo"
delorean_deps: "https://trunk.rdoproject.org/centos9/delorean-deps.repo"
pre-run: playbooks/packstack-centos9-pre.yaml
run: playbooks/packstack-integration-tempest.yaml
- job:
name: packstack-multinode-centos8s
parent: packstack-base
@ -76,6 +86,17 @@
label: centos-8-stream
run: playbooks/packstack-multinode.yaml
- job:
name: packstack-multinode-centos9
parent: packstack-base
vars:
selinux_enforcing: "false"
delorean: "https://trunk.rdoproject.org/centos9/current/delorean.repo"
delorean_deps: "https://trunk.rdoproject.org/centos9/delorean-deps.repo"
pre-run: playbooks/packstack-centos9-pre.yaml
post-run: playbooks/packstack-post-compute.yaml
run: playbooks/packstack-multinode.yaml
- job:
name: packstack-centos8s-integration-scenario001
parent: packstack-centos8s

170
Puppetfile-8 Executable file
View File

@ -0,0 +1,170 @@
moduledir '/usr/share/openstack-puppet/modules'
## OpenStack modules
mod 'aodh',
:git => 'https://github.com/openstack/puppet-aodh',
:ref => 'master'
mod 'ceilometer',
:git => 'https://github.com/openstack/puppet-ceilometer',
:ref => 'master'
mod 'cinder',
:git => 'https://github.com/openstack/puppet-cinder',
:ref => 'master'
mod 'glance',
:git => 'https://github.com/openstack/puppet-glance',
:ref => 'master'
mod 'gnocchi',
:git => 'https://github.com/openstack/puppet-gnocchi',
:ref => 'master'
mod 'heat',
:git => 'https://github.com/openstack/puppet-heat',
:ref => 'master'
mod 'magnum',
:git => 'https://github.com/openstack/puppet-magnum',
:ref => 'master'
mod 'horizon',
:git => 'https://github.com/openstack/puppet-horizon',
:ref => 'master'
mod 'ironic',
:git => 'https://github.com/openstack/puppet-ironic',
:ref => 'master'
mod 'keystone',
:git => 'https://github.com/openstack/puppet-keystone',
:ref => 'master'
mod 'manila',
:git => 'https://github.com/openstack/puppet-manila',
:ref => 'master'
mod 'neutron',
:git => 'https://github.com/openstack/puppet-neutron',
:ref => 'master'
mod 'nova',
:git => 'https://github.com/openstack/puppet-nova',
:ref => 'master'
mod 'openstack_extras',
:git => 'https://github.com/openstack/puppet-openstack_extras',
:ref => 'master'
mod 'openstacklib',
:git => 'https://github.com/openstack/puppet-openstacklib',
:ref => 'master'
mod 'oslo',
:git => 'https://github.com/openstack/puppet-oslo',
:ref => 'master'
mod 'ovn',
:git => 'https://github.com/openstack/puppet-ovn',
:ref => 'master'
mod 'placement',
:git => 'https://github.com/openstack/puppet-placement',
:ref => 'master'
mod 'sahara',
:git => 'https://github.com/openstack/puppet-sahara',
:ref => 'master'
mod 'swift',
:git => 'https://github.com/openstack/puppet-swift',
:ref => 'master'
mod 'tempest',
:git => 'https://github.com/openstack/puppet-tempest',
:ref => 'master'
mod 'trove',
:git => 'https://github.com/openstack/puppet-trove',
:ref => 'master'
mod 'vswitch',
:git => 'https://github.com/openstack/puppet-vswitch',
:ref => 'master'
## Non-OpenStack modules
mod 'apache',
:git => 'https://github.com/puppetlabs/puppetlabs-apache',
:ref => 'main'
mod 'certmonger',
:git => 'https://github.com/rcritten/puppet-certmonger',
:ref => 'master'
mod 'concat',
:git => 'https://github.com/puppetlabs/puppetlabs-concat',
:ref => 'main'
mod 'firewall',
:git => 'https://github.com/puppetlabs/puppetlabs-firewall',
:ref => 'main'
mod 'inifile',
:git => 'https://github.com/puppetlabs/puppetlabs-inifile',
:ref => 'main'
mod 'memcached',
:git => 'https://github.com/saz/puppet-memcached',
:ref => 'master'
mod 'mysql',
:git => 'https://github.com/puppetlabs/puppetlabs-mysql',
:ref => 'main'
mod 'nssdb',
:git => 'https://github.com/rcritten/puppet-nssdb',
:ref => 'master'
mod 'rabbitmq',
:git => 'https://github.com/voxpupuli/puppet-rabbitmq',
:ref => 'master'
mod 'redis',
:git => 'https://github.com/arioch/puppet-redis',
:ref => 'master'
mod 'remote',
:git => 'https://github.com/paramite/puppet-remote',
:ref => 'master'
mod 'rsync',
:git => 'https://github.com/puppetlabs/puppetlabs-rsync',
:ref => 'master'
mod 'ssh',
:git => 'https://github.com/saz/puppet-ssh',
:ref => 'master'
mod 'stdlib',
:git => 'https://github.com/puppetlabs/puppetlabs-stdlib',
:ref => 'main'
mod 'sysctl',
:git => 'https://github.com/duritong/puppet-sysctl',
:ref => 'master'
mod 'systemd',
:git => 'https://github.com/camptocamp/puppet-systemd',
:ref => '8f68b0dcf3bbbafc60c025879a28004fc9815aab'
mod 'vcsrepo',
:git => 'https://github.com/puppetlabs/puppetlabs-vcsrepo',
:ref => 'main'
mod 'xinetd',
:git => 'https://github.com/puppetlabs/puppetlabs-xinetd',
:ref => 'master'

170
Puppetfile-9 Executable file
View File

@ -0,0 +1,170 @@
moduledir '/usr/share/openstack-puppet/modules'
## OpenStack modules
mod 'aodh',
:git => 'https://github.com/openstack/puppet-aodh',
:ref => 'master'
mod 'ceilometer',
:git => 'https://github.com/openstack/puppet-ceilometer',
:ref => 'master'
mod 'cinder',
:git => 'https://github.com/openstack/puppet-cinder',
:ref => 'master'
mod 'glance',
:git => 'https://github.com/openstack/puppet-glance',
:ref => 'master'
mod 'gnocchi',
:git => 'https://github.com/openstack/puppet-gnocchi',
:ref => 'master'
mod 'heat',
:git => 'https://github.com/openstack/puppet-heat',
:ref => 'master'
mod 'magnum',
:git => 'https://github.com/openstack/puppet-magnum',
:ref => 'master'
mod 'horizon',
:git => 'https://github.com/openstack/puppet-horizon',
:ref => 'master'
mod 'ironic',
:git => 'https://github.com/openstack/puppet-ironic',
:ref => 'master'
mod 'keystone',
:git => 'https://github.com/openstack/puppet-keystone',
:ref => 'master'
mod 'manila',
:git => 'https://github.com/openstack/puppet-manila',
:ref => 'master'
mod 'neutron',
:git => 'https://github.com/openstack/puppet-neutron',
:ref => 'master'
mod 'nova',
:git => 'https://github.com/openstack/puppet-nova',
:ref => 'master'
mod 'openstack_extras',
:git => 'https://github.com/openstack/puppet-openstack_extras',
:ref => 'master'
mod 'openstacklib',
:git => 'https://github.com/openstack/puppet-openstacklib',
:ref => 'master'
mod 'oslo',
:git => 'https://github.com/openstack/puppet-oslo',
:ref => 'master'
mod 'ovn',
:git => 'https://github.com/openstack/puppet-ovn',
:ref => 'master'
mod 'placement',
:git => 'https://github.com/openstack/puppet-placement',
:ref => 'master'
mod 'sahara',
:git => 'https://github.com/openstack/puppet-sahara',
:ref => 'master'
mod 'swift',
:git => 'https://github.com/jcapiitao/puppet-swift',
:ref => 'xinetd_as_arg'
mod 'tempest',
:git => 'https://github.com/openstack/puppet-tempest',
:ref => 'master'
mod 'trove',
:git => 'https://github.com/openstack/puppet-trove',
:ref => 'master'
mod 'vswitch',
:git => 'https://github.com/openstack/puppet-vswitch',
:ref => 'master'
## Non-OpenStack modules
mod 'apache',
:git => 'https://github.com/puppetlabs/puppetlabs-apache',
:ref => 'main'
mod 'certmonger',
:git => 'https://github.com/rcritten/puppet-certmonger',
:ref => 'master'
mod 'concat',
:git => 'https://github.com/puppetlabs/puppetlabs-concat',
:ref => 'main'
mod 'firewall',
:git => 'https://github.com/puppetlabs/puppetlabs-firewall',
:ref => 'main'
mod 'inifile',
:git => 'https://github.com/puppetlabs/puppetlabs-inifile',
:ref => 'main'
mod 'memcached',
:git => 'https://github.com/saz/puppet-memcached',
:ref => 'master'
mod 'mysql',
:git => 'https://github.com/puppetlabs/puppetlabs-mysql',
:ref => 'main'
mod 'nssdb',
:git => 'https://github.com/rcritten/puppet-nssdb',
:ref => 'master'
mod 'rabbitmq',
:git => 'https://github.com/voxpupuli/puppet-rabbitmq',
:ref => 'master'
mod 'redis',
:git => 'https://github.com/arioch/puppet-redis',
:ref => 'master'
mod 'remote',
:git => 'https://github.com/paramite/puppet-remote',
:ref => 'master'
mod 'rsync',
:git => 'https://github.com/puppetlabs/puppetlabs-rsync',
:ref => 'master'
mod 'ssh',
:git => 'https://github.com/saz/puppet-ssh',
:ref => 'master'
mod 'stdlib',
:git => 'https://github.com/jcapiitao/puppetlabs-stdlib',
:ref => 'fix_uriescape'
mod 'sysctl',
:git => 'https://github.com/duritong/puppet-sysctl',
:ref => 'master'
mod 'systemd',
:git => 'https://github.com/camptocamp/puppet-systemd',
:ref => '8f68b0dcf3bbbafc60c025879a28004fc9815aab'
mod 'vcsrepo',
:git => 'https://github.com/puppetlabs/puppetlabs-vcsrepo',
:ref => 'main'
mod 'xinetd',
:git => 'https://github.com/puppetlabs/puppetlabs-xinetd',
:ref => 'master'

View File

@ -7,9 +7,17 @@ class packstack::swift::ringbuilder ()
require => Class['swift'],
}
# sets up an rsync db that can be used to sync the ring DB
class { 'swift::ringserver':
local_net_ip => hiera('CONFIG_STORAGE_HOST_URL'),
if ($::operatingsystem == 'CentOS') and (versioncmp($::operatingsystemmajrelease, '9') == 0) {
# sets up an rsync db that can be used to sync the ring DB
class { 'swift::ringserver':
local_net_ip => hiera('CONFIG_STORAGE_HOST_URL'),
rsync_use_xinetd => false,
}
} else {
# sets up an rsync db that can be used to sync the ring DB
class { 'swift::ringserver':
local_net_ip => hiera('CONFIG_STORAGE_HOST_URL'),
}
}
if str2bool($::selinux) {

View File

@ -0,0 +1,27 @@
- hosts: all
name: packstack-centos9-pre
tasks:
- name: Ensure legacy workspace directory
file:
path: '{{ ansible_user_dir }}/workspace'
state: directory
- shell:
cmd: |
cp -pr {{ ansible_user_dir }}/src/opendev.org/x/packstack {{ ansible_user_dir }}/workspace
- shell:
cmd: |
set -e
set -x
rm -rf /etc/yum.repos.d/delorean*
# Remove epel repos
rm -rf /etc/yum.repos.d/epel*
dnf clean all
sudo sed -i '/^exclude.*/d' /etc/dnf/dnf.conf
dnf -y install libxml2-devel libxslt-devel ruby-devel zlib-devel
dnf -y install gcc gettext diffstat doxygen patch patchutils subversion systemtap git python3-setuptools wget redhat-lsb-core python3-libselinux virt-what yum
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace'
become: true
environment: '{{ zuul }}'

View File

@ -13,7 +13,7 @@
- shell:
cmd: |
source /home/zuul/src/opendev.org/x/packstack/tools/copy-logs.sh
source {{ ansible_user_dir }}/src/opendev.org/x/packstack/tools/copy-logs.sh
recover_default_logs
mv /tmp/logs/* /tmp/compute
mv /tmp/compute /tmp/logs

View File

@ -83,7 +83,7 @@ EOF
#
# - ``GEM_BIN_DIR`` must be set to Gem bin directory
install_all() {
$SUDO ${GEM_BIN_DIR}r10k puppetfile install -v --puppetfile Puppetfile
$SUDO ${GEM_BIN_DIR}r10k puppetfile install -v --puppetfile Puppetfile-${VERSION_ID}
}
# Install Puppet OpenStack modules and dependencies by using
@ -96,7 +96,7 @@ install_all() {
install_modules() {
# If zuul-cloner is there, have it install modules using zuul refs
if [ -e /usr/zuul-env/bin/zuul-cloner ] ; then
csplit Puppetfile /'Non-OpenStack modules'/ \
csplit Puppetfile-${VERSION_ID} /'Non-OpenStack modules'/ \
--prefix Puppetfile \
--suffix '%d'
install_external
@ -163,7 +163,7 @@ $SUDO $PKG_MGR -y install puppet \
openstack-selinux \
policycoreutils \
rubygems \
wget \
curl \
gettext \
diffstat \
doxygen \
@ -210,14 +210,14 @@ if [ -f ~/cache/files/cirros-$CIRROS_VERSION-$CIRROS_ARCH-uec.tar.gz ]; then
tar -xzvf ~/cache/files/cirros-$CIRROS_VERSION-$CIRROS_ARCH-uec.tar.gz -C /tmp/cirros/
else
echo "No pre-cached uec archive found, downloading..."
wget --tries=10 https://download.cirros-cloud.net/$CIRROS_VERSION/cirros-$CIRROS_VERSION-$CIRROS_ARCH-uec.tar.gz -P /tmp/cirros/
curl -Lo /tmp/cirros/cirros-$CIRROS_VERSION-$CIRROS_ARCH-uec.tar.gz --retry 10 https://download.cirros-cloud.net/$CIRROS_VERSION/cirros-$CIRROS_VERSION-$CIRROS_ARCH-uec.tar.gz
tar -xzvf /tmp/cirros/cirros-$CIRROS_VERSION-$CIRROS_ARCH-uec.tar.gz -C /tmp/cirros/
fi
if [ -f ~/cache/files/cirros-$CIRROS_VERSION-$CIRROS_ARCH-disk.img ]; then
cp -p ~/cache/files/cirros-$CIRROS_VERSION-$CIRROS_ARCH-disk.img /tmp/cirros/
else
echo "No pre-cached disk image found, downloading..."
wget --tries=10 https://download.cirros-cloud.net/$CIRROS_VERSION/cirros-$CIRROS_VERSION-$CIRROS_ARCH-disk.img -P /tmp/cirros/
curl -Lo /tmp/cirros/cirros-$CIRROS_VERSION-$CIRROS_ARCH-disk.img --retry 10 https://download.cirros-cloud.net/$CIRROS_VERSION/cirros-$CIRROS_VERSION-$CIRROS_ARCH-disk.img
fi
echo "Using pre-cached images:"
find /tmp/cirros -type f -printf "%m %n %u %g %s %t" -exec md5sum \{\} \;
@ -275,8 +275,12 @@ if [ "${INSTALL_FROM_SOURCE}" = true ]; then
fi
export PUPPETFILE_DIR=/usr/share/openstack-puppet/modules
export GEM_HOME=/tmp/packstackgems
$SUDO gem install gettext -v 3.2.9 --no-ri --no-rdoc
$SUDO gem install r10k -v 2.6.4 --no-ri --no-rdoc
if ([ "$OS_NAME" = "RedHat" ] || [ "$OS_NAME" = "CentOS" ]) && [ $OS_VERSION -gt 8 ]; then
$SUDO gem install r10k
else
$SUDO gem install gettext -v 3.2.9 --no-ri --no-rdoc
$SUDO gem install r10k -v 2.6.4 --no-ri --no-rdoc
fi
# make sure there is no puppet module pre-installed
$SUDO rm -rf "${PUPPETFILE_DIR:?}/"*
install_modules