From 834ab8a5fbd83147c45e86e5df123fe3bbb36c9d Mon Sep 17 00:00:00 2001 From: Emilien Macchi Date: Thu, 8 Sep 2016 13:43:30 -0400 Subject: [PATCH] Align the stars to bring our CI back 1) Add 2GB swap by default Add some swap when running CI jobs, so we can reduce the number of failures in CI related to missing memory. By default 2GB, can be disabled or increased/decreased with parameters. 2) Promote RDO repository to have Oslo DB from master python-oslo-db 4.13.x releases are known to break Gnocchi. https://review.openstack.org/367221 will fix it, but it is not yet in any release, so RDO unpinned oslo.db until that happens. 3) Disable Ironic testing on Ubuntu. Packages are broken in recent Newton upgrade. They are working on it. 4) Enable br_netfilter kernel module on Ubuntu. See https://bugs.launchpad.net/cloud-archive/+bug/1621651 Even if it's not critical, it's a nice-to-have because it removed the ERROR that we had in neutron logs. We'll see how the bug report evolve and maybe remove this workaround. 5) Export lsmod in logs, easier for us to debug later. 6) Disable linuxbridge on scenario003 for Ubuntu Also see https://bugs.launchpad.net/cloud-archive/+bug/1621651 7) Pin Puppetlabs release package. Context: https://tickets.puppetlabs.com/browse/CPR-378 Change-Id: I732ef375a681f03af751ebb6ebd5b12df55a0ecc --- copy_logs.sh | 1 + fixtures/scenario002.pp | 13 +++++++++---- fixtures/scenario003.pp | 5 ++++- functions | 9 ++++++++- manifests/repos.pp | 2 +- run_tests.sh | 12 ++++++++++++ 6 files changed, 35 insertions(+), 7 deletions(-) diff --git a/copy_logs.sh b/copy_logs.sh index fb4475581..5dbbab447 100755 --- a/copy_logs.sh +++ b/copy_logs.sh @@ -177,6 +177,7 @@ fi # system status & informations df -h > $LOG_DIR/df.txt free -m > $LOG_DIR/free.txt +lsmod > $LOG_DIR/lsmod.txt cat /proc/cpuinfo > $LOG_DIR/cpuinfo.txt ps -eo user,pid,ppid,lwp,%cpu,%mem,size,rss,cmd > $LOG_DIR/ps.txt diff --git a/fixtures/scenario002.pp b/fixtures/scenario002.pp index 0032e3666..58cc2c9c7 100644 --- a/fixtures/scenario002.pp +++ b/fixtures/scenario002.pp @@ -34,10 +34,13 @@ case $::osfamily { } # Disable SSL (workaround for Xenial) +# Also disable Ironic. Newton latest packages in Ubuntu are broken. if ($::operatingsystem == 'Ubuntu') and (versioncmp($::operatingsystemmajrelease, '16') >= 0) { - $ssl_enabled = false + $ssl_enabled = false + $ironic_enabled = false } else { - $ssl_enabled = true + $ssl_enabled = true + $ironic_enabled = true } include ::openstack_integration @@ -55,7 +58,9 @@ class { '::openstack_integration::glance': } include ::openstack_integration::neutron include ::openstack_integration::swift -include ::openstack_integration::ironic +if $ironic_enabled { + include ::openstack_integration::ironic +} include ::openstack_integration::zaqar include ::openstack_integration::mongodb include ::openstack_integration::provision @@ -75,7 +80,7 @@ if $barbican_enabled { class { '::openstack_integration::tempest': cinder => true, swift => true, - ironic => true, + ironic => $ironic_enabled, zaqar => $zaqar_enabled, attach_encrypted_volume => $barbican_enabled, } diff --git a/fixtures/scenario003.pp b/fixtures/scenario003.pp index 0b048a6bb..50ee5594b 100644 --- a/fixtures/scenario003.pp +++ b/fixtures/scenario003.pp @@ -36,10 +36,13 @@ case $::osfamily { if ($::operatingsystem == 'Ubuntu') and (versioncmp($::operatingsystemmajrelease, '16') >= 0) { $ssl_enabled = false $trove_enabled = false + # https://bugs.launchpad.net/cloud-archive/+bug/1621651 + $neutron_driver = 'openvswitch' } else { $ssl_enabled = true # https://bugs.launchpad.net/trove/+bug/1597857 $trove_enabled = true + $neutron_driver = 'linuxbridge' } include ::openstack_integration @@ -56,7 +59,7 @@ class { '::openstack_integration::keystone': } include ::openstack_integration::glance class { '::openstack_integration::neutron': - driver => 'linuxbridge', + driver => $neutron_driver, } include ::openstack_integration::nova if $trove_enabled { diff --git a/functions b/functions index a38d1249d..8b09e8dd4 100644 --- a/functions +++ b/functions @@ -168,7 +168,14 @@ install_puppet() { fi $SUDO rm -f /tmp/puppet.rpm - wget http://yum.puppetlabs.com/${PUPPET_RELEASE_FILE}-el-7.noarch.rpm -O /tmp/puppet.rpm + # https://tickets.puppetlabs.com/browse/CPR-378 + if [ $PUPPET_RELEASE_FILE == "puppetlabs-release" ]; then + RELEASE_URL='http://yum.puppetlabs.com/el/7Server/products/x86_64/puppetlabs-release-7-12.noarch.rpm' + else + RELEASE_URL='https://yum.puppetlabs.com/el/7Server/PC1/x86_64/puppetlabs-release-pc1-1.0.0-2.el7.noarch.rpm' + fi + + wget $RELEASE_URL -O /tmp/puppet.rpm $SUDO rpm -ivh /tmp/puppet.rpm $SUDO yum install -y ${PUPPET_PKG} fi diff --git a/manifests/repos.pp b/manifests/repos.pp index 01e146713..f026b5af7 100644 --- a/manifests/repos.pp +++ b/manifests/repos.pp @@ -31,7 +31,7 @@ class openstack_integration::repos { manage_epel => false, repo_hash => { 'newton-current' => { - 'baseurl' => 'https://trunk.rdoproject.org/centos7-master/10/e9/10e94f9a07b339754056ae2461355cb2a0661d15_518ae121/', + 'baseurl' => 'https://trunk.rdoproject.org/centos7-master/13/22/13223e459babddd74792699b20b52843a0ff9576_466d3f91/', 'descr' => 'Newton current', 'gpgcheck' => 'no', 'priority' => 1, diff --git a/run_tests.sh b/run_tests.sh index 8c2d7a535..3c6a5c23c 100755 --- a/run_tests.sh +++ b/run_tests.sh @@ -17,6 +17,8 @@ export PUPPET_MAJ_VERSION=${PUPPET_MAJ_VERSION:-3} export SCENARIO=${SCENARIO:-scenario001} export MANAGE_PUPPET_MODULES=${MANAGE_PUPPET_MODULES:-true} export MANAGE_REPOS=${MANAGE_REPOS:-true} +export ADD_SWAP=${ADD_SWAP:-true} +export SWAP_SIZE_GB=${SWAP_SIZE_GB:-2} export SCRIPT_DIR=$(cd `dirname $0` && pwd -P) export HIERA_CONFIG=${HIERA_CONFIG:-${SCRIPT_DIR}/hiera/hiera.yaml} export MANAGE_HIERA=${MANAGE_HIERA:-true} @@ -64,6 +66,14 @@ if [ $(id -u) != 0 ]; then export SUDO='sudo -E' fi +if [ "${ADD_SWAP}" = true ]; then + print_header "Create $SWAP_SIZE_GB GB swapfile" + $SUDO dd if=/dev/zero of=/swapfile count=${SWAP_SIZE_GB}k bs=1M + $SUDO chmod 0600 /swapfile + $SUDO mkswap /swapfile + $SUDO swapon /swapfile +fi + print_header 'Clone Tempest and plugins' # TODO(pabelanger): Move this into tools/install_tempest.sh and add logic so we # can clone tempest outside of the gate. Also, tempest should be sandboxed into @@ -96,6 +106,8 @@ fi if uses_debs; then $SUDO apt-get install -y dstat + # https://bugs.launchpad.net/cloud-archive/+bug/1621651 + $SUDO modprobe br_netfilter elif is_fedora; then $SUDO yum install -y dstat setools setroubleshoot audit $SUDO service auditd start