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 committed by Alfredo Moralejo
parent 6479d15382
commit 940bbfc450
8 changed files with 411 additions and 11 deletions

View File

@ -60,6 +60,16 @@
label: centos-8-stream label: centos-8-stream
run: playbooks/packstack-integration-tempest.yaml run: playbooks/packstack-integration-tempest.yaml
- job:
name: packstack-centos9
parent: packstack-base
vars:
selinux_enforcing: "false"
delorean: "https://trunk.rdoproject.org/centos9-master/current/delorean.repo"
delorean_deps: "https://trunk.rdoproject.org/centos9-master/delorean-deps.repo"
pre-run: playbooks/packstack-centos9-pre.yaml
run: playbooks/packstack-integration-tempest.yaml
- job: - job:
name: packstack-multinode-centos8s name: packstack-multinode-centos8s
parent: packstack-base parent: packstack-base
@ -76,6 +86,17 @@
label: centos-8-stream label: centos-8-stream
run: playbooks/packstack-multinode.yaml 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: - job:
name: packstack-centos8s-integration-scenario001 name: packstack-centos8s-integration-scenario001
parent: packstack-centos8s 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 => 'main'
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'

View File

@ -7,9 +7,17 @@ class packstack::swift::ringbuilder ()
require => Class['swift'], require => Class['swift'],
} }
# sets up an rsync db that can be used to sync the ring DB if ($::operatingsystem == 'CentOS') and (versioncmp($::operatingsystemmajrelease, '9') == 0) {
class { 'swift::ringserver': # sets up an rsync db that can be used to sync the ring DB
local_net_ip => hiera('CONFIG_STORAGE_HOST_URL'), 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) { 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: - shell:
cmd: | 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 recover_default_logs
mv /tmp/logs/* /tmp/compute mv /tmp/logs/* /tmp/compute
mv /tmp/compute /tmp/logs mv /tmp/compute /tmp/logs

View File

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