Add support to select ceph version

We are closing in on adding Ceph Mimic support and
want to ensure we can select either Luminous or Mimic
for running our tests.

For example Ubuntu 18.04 must run Ceph Mimic because
Luminous is not available (yet), Debian doesn't have
Ceph Mimic packages so we must run Luminous there.

Depends-On: https://review.openstack.org/#/c/576247/
Change-Id: If84ecbf86f3ebde8e69a1a26759ad967d061725a
This commit is contained in:
Tobias Urdin 2018-06-19 17:32:27 +02:00
parent f80f25ad1a
commit eaacd3f841
6 changed files with 103 additions and 64 deletions

View File

@ -71,6 +71,10 @@
- ^.gitignore$
roles:
- zuul: openstack-infra/zuul-jobs
# NOTE(tobasco): The ceph variable must be provided with a default here
# or zuul will complain when it tries to render the run-integration-tests template.
vars:
ceph: luminous
- job:
name: puppet-openstack-integration-4
@ -83,19 +87,20 @@
parent: puppet-openstack-integration-4
vars:
scenario: scenario001
ceph: luminous
- job:
name: puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial
name: puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial-luminous
parent: puppet-openstack-integration-4-scenario001
nodeset: ubuntu-xenial
- job:
name: puppet-openstack-integration-4-scenario001-tempest-centos-7
name: puppet-openstack-integration-4-scenario001-tempest-centos-7-luminous
parent: puppet-openstack-integration-4-scenario001
nodeset: centos-7
- job:
name: puppet-openstack-integration-4-scenario001-tempest-debian-stable
name: puppet-openstack-integration-4-scenario001-tempest-debian-stable-luminous
parent: puppet-openstack-integration-4-scenario001
nodeset: debian-stable
@ -147,21 +152,24 @@
branches: ^(?!stable/newton).*$
vars:
scenario: scenario004
ceph: mimic
- job:
name: puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial
name: puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial-mimic
parent: puppet-openstack-integration-4-scenario004
nodeset: ubuntu-xenial
- job:
name: puppet-openstack-integration-4-scenario004-tempest-centos-7
name: puppet-openstack-integration-4-scenario004-tempest-centos-7-mimic
parent: puppet-openstack-integration-4-scenario004
nodeset: centos-7
- job:
name: puppet-openstack-integration-4-scenario004-tempest-debian-stable
name: puppet-openstack-integration-4-scenario004-tempest-debian-stable-luminous
parent: puppet-openstack-integration-4-scenario004
nodeset: debian-stable
vars:
ceph: luminous
- job:
name: puppet-openstack-integration-5
@ -175,19 +183,20 @@
parent: puppet-openstack-integration-5
vars:
scenario: scenario001
ceph: luminous
- job:
name: puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial
name: puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial-luminous
parent: puppet-openstack-integration-5-scenario001
nodeset: ubuntu-xenial
- job:
name: puppet-openstack-integration-5-scenario001-tempest-centos-7
name: puppet-openstack-integration-5-scenario001-tempest-centos-7-luminous
parent: puppet-openstack-integration-5-scenario001
nodeset: centos-7
- job:
name: puppet-openstack-integration-5-scenario001-tempest-debian-stable
name: puppet-openstack-integration-5-scenario001-tempest-debian-stable-luminous
parent: puppet-openstack-integration-5-scenario001
nodeset: debian-stable
@ -239,94 +248,97 @@
branches: ^(?!stable/newton).*$
vars:
scenario: scenario004
ceph: mimic
- job:
name: puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial
name: puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial-mimic
parent: puppet-openstack-integration-5-scenario004
nodeset: ubuntu-xenial
- job:
name: puppet-openstack-integration-5-scenario004-tempest-centos-7
name: puppet-openstack-integration-5-scenario004-tempest-centos-7-mimic
parent: puppet-openstack-integration-5-scenario004
nodeset: centos-7
- job:
name: puppet-openstack-integration-5-scenario004-tempest-debian-stable
parent: puppet-openstack-integration-5-scenario001
name: puppet-openstack-integration-5-scenario004-tempest-debian-stable-luminous
parent: puppet-openstack-integration-5-scenario004
nodeset: debian-stable
vars:
ceph: luminous
- project-template:
name: puppet-openstack-integration-jobs-all
check:
jobs:
- puppet-openstack-integration-4-scenario001-tempest-centos-7
- puppet-openstack-integration-4-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-4-scenario002-tempest-centos-7
- puppet-openstack-integration-4-scenario003-tempest-centos-7
- puppet-openstack-integration-4-scenario004-tempest-centos-7
- puppet-openstack-integration-5-scenario001-tempest-centos-7
- puppet-openstack-integration-4-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-5-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-5-scenario002-tempest-centos-7
- puppet-openstack-integration-5-scenario003-tempest-centos-7
- puppet-openstack-integration-5-scenario004-tempest-centos-7
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-4-scenario002-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario003-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-5-scenario002-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario003-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario001-tempest-debian-stable:
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-4-scenario001-tempest-debian-stable-luminous:
voting: false
- puppet-openstack-integration-4-scenario002-tempest-debian-stable:
voting: false
- puppet-openstack-integration-4-scenario003-tempest-debian-stable:
voting: false
- puppet-openstack-integration-4-scenario004-tempest-debian-stable:
- puppet-openstack-integration-4-scenario004-tempest-debian-stable-luminous:
voting: false
gate:
jobs:
- puppet-openstack-integration-4-scenario001-tempest-centos-7
- puppet-openstack-integration-4-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-4-scenario002-tempest-centos-7
- puppet-openstack-integration-4-scenario003-tempest-centos-7
- puppet-openstack-integration-4-scenario004-tempest-centos-7
- puppet-openstack-integration-5-scenario001-tempest-centos-7
- puppet-openstack-integration-4-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-5-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-5-scenario002-tempest-centos-7
- puppet-openstack-integration-5-scenario003-tempest-centos-7
- puppet-openstack-integration-5-scenario004-tempest-centos-7
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-4-scenario002-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario003-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-5-scenario002-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario003-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial-mimic
experimental:
jobs:
- puppet-openstack-integration-5-scenario001-tempest-debian-stable
- puppet-openstack-integration-5-scenario001-tempest-debian-stable-luminous
- puppet-openstack-integration-5-scenario002-tempest-debian-stable
- puppet-openstack-integration-5-scenario003-tempest-debian-stable
- puppet-openstack-integration-5-scenario004-tempest-debian-stable
- puppet-openstack-integration-5-scenario004-tempest-debian-stable-luminous
- project-template:
name: puppet-openstack-integration-jobs-scenario001
check:
jobs:
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario001-tempest-centos-7
- puppet-openstack-integration-5-scenario001-tempest-centos-7
- puppet-openstack-integration-4-scenario001-tempest-debian-stable:
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-4-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-5-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-4-scenario001-tempest-debian-stable-luminous:
voting: false
gate:
jobs:
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario001-tempest-centos-7
- puppet-openstack-integration-5-scenario001-tempest-centos-7
- puppet-openstack-integration-4-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-5-scenario001-tempest-ubuntu-xenial-luminous
- puppet-openstack-integration-4-scenario001-tempest-centos-7-luminous
- puppet-openstack-integration-5-scenario001-tempest-centos-7-luminous
experimental:
jobs:
- puppet-openstack-integration-5-scenario001-tempest-debian-stable
- puppet-openstack-integration-5-scenario001-tempest-debian-stable-luminous
- project-template:
name: puppet-openstack-integration-jobs-scenario002
@ -372,21 +384,21 @@
name: puppet-openstack-integration-jobs-scenario004
check:
jobs:
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario004-tempest-centos-7
- puppet-openstack-integration-5-scenario004-tempest-centos-7
- puppet-openstack-integration-4-scenario004-tempest-debian-stable:
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-4-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-5-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-4-scenario004-tempest-debian-stable-luminous:
voting: false
gate:
jobs:
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial
- puppet-openstack-integration-4-scenario004-tempest-centos-7
- puppet-openstack-integration-5-scenario004-tempest-centos-7
- puppet-openstack-integration-4-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-5-scenario004-tempest-ubuntu-xenial-mimic
- puppet-openstack-integration-4-scenario004-tempest-centos-7-mimic
- puppet-openstack-integration-5-scenario004-tempest-centos-7-mimic
experimental:
jobs:
- puppet-openstack-integration-5-scenario004-tempest-debian-stable
- puppet-openstack-integration-5-scenario004-tempest-debian-stable-luminous
- job:
name: puppet-openstack-module-base

View File

@ -24,10 +24,15 @@ if [ -f /etc/ci/mirror_info.sh ]; then
CENTOS_MIRROR_HOST="http://${NODEPOOL_MIRROR_HOST}"
DEPS_MIRROR_HOST="${NODEPOOL_RDO_PROXY}/centos7-master/deps/latest/"
if uses_debs; then
CEPH_MIRROR_HOST="${CENTOS_MIRROR_HOST}/ceph-deb-luminous"
CEPH_MIRROR_HOST="${CENTOS_MIRROR_HOST}/ceph-deb-${CEPH_VERSION}"
NODEPOOL_PUPPETLABS_MIRROR="http://${NODEPOOL_MIRROR_HOST}/apt-puppetlabs"
else
CEPH_MIRROR_HOST="${NODEPOOL_BUILDLOGS_CENTOS_PROXY}/centos/7/storage/x86_64/ceph-luminous/"
# TODO(tobasco): Remove this CBS candidate repo for Mimic when Storage SIG release it.
if [ "$CEPH_VERSION" == "mimic" ]; then
CEPH_MIRROR_HOST='http://cbs.centos.org/repos/storage7-ceph-mimic-candidate/x86_64/os/'
else
CEPH_MIRROR_HOST="${NODEPOOL_BUILDLOGS_CENTOS_PROXY}/centos/7/storage/x86_64/ceph-${CEPH_VERSION}/"
fi
NODEPOOL_PUPPETLABS_MIRROR="http://${NODEPOOL_MIRROR_HOST}/yum-puppetlabs"
fi
else
@ -36,10 +41,15 @@ else
NODEPOOL_RDO_PROXY='https://trunk.rdoproject.org'
NODEPOOL_UCA_MIRROR='http://ubuntu-cloud.archive.canonical.com/ubuntu'
if uses_debs; then
CEPH_MIRROR_HOST='https://download.ceph.com/debian-luminous'
CEPH_MIRROR_HOST="https://download.ceph.com/debian-${CEPH_VERSION}"
NODEPOOL_PUPPETLABS_MIRROR='https://apt.puppetlabs.com'
else
CEPH_MIRROR_HOST='https://buildlogs.centos.org/centos/7/storage/x86_64/ceph-luminous/'
# TODO(tobasco): Remove this CBS candidate repo for Mimic when Storage SIG releases it.
if [ "$CEPH_VERSION" == "mimic" ]; then
CEPH_MIRROR_HOST='http://cbs.centos.org/repos/storage7-ceph-mimic-candidate/x86_64/os/'
else
CEPH_MIRROR_HOST="https://buildlogs.centos.org/centos/7/storage/x86_64/ceph-${CEPH_VERSION}/"
fi
NODEPOOL_PUPPETLABS_MIRROR="https://yum.puppetlabs.com"
fi
fi
@ -56,13 +66,15 @@ export FACTER_uca_mirror_host=$NODEPOOL_UCA_MIRROR
export FACTER_deps_mirror_host=$DEPS_MIRROR_HOST
export FACTER_ceph_mirror_host=$CEPH_MIRROR_HOST
export FACTER_rdo_mirror_host=$RDO_MIRROR_HOST
export FACTER_ceph_version=$CEPH_VERSION
MIRROR_FACTS="\
centos_mirror_host=${FACTER_centos_mirror_host}
uca_mirror_host=${FACTER_uca_mirror_host}
deps_mirror_host=${FACTER_deps_mirror_host}
ceph_mirror_host=${FACTER_ceph_mirror_host}
rdo_mirror_host=${FACTER_rdo_mirror_host}"
rdo_mirror_host=${FACTER_rdo_mirror_host}
ceph_version=${FACTER_ceph_version}"
if [ "${WRITE_FACTS}" = true ]; then
$SUDO mkdir -p /etc/facter/facts.d/

View File

@ -19,15 +19,23 @@ install_external() {
# - ``SCRIPT_DIR`` must be set to script path
# - ``ZUUL_BRANCH`` must be set to Zuul branch. Fallback to 'master'.
install_openstack() {
# Periodic jobs run without ref on master
ZUUL_BRANCH=${ZUUL_BRANCH:-master}
if [ $ZUUL_PROJECT != "openstack/puppet-ceph" ] && [ -n "$CEPH_VERSION" ]; then
if [ $CEPH_VERSION == "mimic" ]; then
ZUUL_BRANCH="master"
else
ZUUL_BRANCH="stable/$CEPH_VERSION"
fi
fi
cat > clonemap.yaml <<EOF
clonemap:
- name: '(.*?)/puppet-(.*)'
dest: '$PUPPETFILE_DIR/\2'
EOF
# Periodic jobs run without ref on master
ZUUL_BRANCH=${ZUUL_BRANCH:-master}
local project_names=$(awk '{ if ($1 == ":git") print $3 }' \
${SCRIPT_DIR}/Puppetfile0 | tr -d "'," | cut -d '/' -f 4- | xargs
)

View File

@ -31,7 +31,7 @@ class openstack_integration::repos {
}
$enable_sig = false
$enable_epel = false
$ceph_mirror = pick($::ceph_mirror_host, 'http://download.ceph.com/debian-luminous/')
$ceph_mirror = pick($::ceph_mirror_host, "http://download.ceph.com/debian-${::ceph_version}/")
}
'RedHat': {
class { '::openstack_extras::repo::redhat::redhat':
@ -52,7 +52,12 @@ class openstack_integration::repos {
},
},
}
$ceph_mirror = pick($::ceph_mirror_host, 'https://buildlogs.centos.org/centos/7/storage/x86_64/ceph-luminous/')
# TODO(tobasco): Remove this CBS candidate repo for Mimic when Storage SIG release it.
$ceph_mirror_fallback = $::ceph_version ? {
'mimic' => 'http://cbs.centos.org/repos/storage7-ceph-mimic-candidate/x86_64/os/',
default => "https://buildlogs.centos.org/centos/7/storage/x86_64/ceph-${::ceph_version}/"
}
$ceph_mirror = pick($::ceph_mirror_host, $ceph_mirror_fallback)
# On CentOS, deploy Ceph using SIG repository and get rid of EPEL.
# https://wiki.centos.org/SpecialInterestGroup/Storage/
if $::operatingsystem == 'CentOS' {

View File

@ -4,10 +4,11 @@
cmd: |
set -ex
trap "./copy_logs.sh" EXIT
export CEPH_VERSION={{ ceph }}
export PUPPET_MAJ_VERSION={{ puppet }}
export SCENARIO={{ scenario }}
export GEM_HOME=`pwd`/.bundled_gems
./run_tests.sh
executable: /bin/bash
chdir: '{{ ansible_user_dir }}/workspace/puppet-openstack-integration'
environment: '{{ zuul | zuul_legacy_vars }}'
environment: '{{ zuul | zuul_legacy_vars }}'

View File

@ -18,6 +18,7 @@ source ${SCRIPT_DIR}/functions
export WORKSPACE=${WORKSPACE:-/tmp}
export PUPPET_URL_SUFFIX=
export CEPH_VERSION=${CEPH_VERSION:-luminous}
export PUPPET_MAJ_VERSION=${PUPPET_MAJ_VERSION:-4}
export SCENARIO=${SCENARIO:-scenario001}
export MANAGE_PUPPET_MODULES=${MANAGE_PUPPET_MODULES:-true}