diff --git a/.zuul.yaml b/.zuul.yaml index aa67f5be2..b50499cff 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -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-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: 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 diff --git a/Puppetfile b/Puppetfile-7 similarity index 100% rename from Puppetfile rename to Puppetfile-7 diff --git a/Puppetfile-8 b/Puppetfile-8 new file mode 100755 index 000000000..28c2db6ba --- /dev/null +++ b/Puppetfile-8 @@ -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' + diff --git a/Puppetfile-9 b/Puppetfile-9 new file mode 100755 index 000000000..e334286e3 --- /dev/null +++ b/Puppetfile-9 @@ -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' + diff --git a/packstack/puppet/modules/packstack/manifests/swift/ringbuilder.pp b/packstack/puppet/modules/packstack/manifests/swift/ringbuilder.pp index 584b17024..aeb70a04a 100644 --- a/packstack/puppet/modules/packstack/manifests/swift/ringbuilder.pp +++ b/packstack/puppet/modules/packstack/manifests/swift/ringbuilder.pp @@ -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) { diff --git a/playbooks/packstack-centos9-pre.yaml b/playbooks/packstack-centos9-pre.yaml new file mode 100644 index 000000000..c692ef087 --- /dev/null +++ b/playbooks/packstack-centos9-pre.yaml @@ -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 }}' diff --git a/playbooks/packstack-post-compute.yaml b/playbooks/packstack-post-compute.yaml index 6f1e46ec0..a52c33371 100644 --- a/playbooks/packstack-post-compute.yaml +++ b/playbooks/packstack-post-compute.yaml @@ -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 diff --git a/run_tests.sh b/run_tests.sh index ff7672acf..97afcea2f 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -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