New workflow for standalone upgrade.

Implement the standalone upgrade in CI.

This deploy a N-1 standalone deployment, upgrade the repository, the
packages, and run tripleo upgrade.

The upgrade coverage is limited to:
 - upgrade_tasks.
 - non-HA services.

This means that no upgrade orchestration is tested and that HA is not
covered.

Change-Id: Id4877152ca6c233e193593995dd13890e17a535b
Depends-On: I2a4ffd8ae26e0965028422c649243a65fef79e65
This commit is contained in:
Sofer Athlan-Guyot 2018-10-05 17:29:28 +02:00 committed by Alex Schultz
parent 803a03682c
commit e7c0dced93
6 changed files with 62 additions and 7 deletions

View File

@ -99,6 +99,7 @@ esac
EXTRA_TAGS=""
MIXED_UPGRADE_TYPE=''
# Order matters. ffu featureset has both mixed version and ffu_overcloud_upgrade.
if is_featureset ffu_overcloud_upgrade "{{ job_featureset_file }}"; then
MIXED_UPGRADE_TYPE='ffu_upgrade'
@ -126,7 +127,7 @@ QUICKSTART_RELEASE="promotion-testing-hash-${QUICKSTART_RELEASE}"
EMIT_RELEASES_EXTRA_ARGS="$EMIT_RELEASES_EXTRA_ARGS --is-periodic"
{% endif %}
if [[ -f "$RELEASES_SCRIPT" ]] && [[ {{ featureset }} =~ 010|011|037|047|050 ]]; then
if [[ -f "$RELEASES_SCRIPT" ]] && [[ {{ featureset }} =~ 010|011|037|047|050|056 ]]; then
python $RELEASES_SCRIPT \
--stable-release ${STABLE_RELEASE:-"master"} \

View File

@ -80,6 +80,12 @@ if [[ -f "$RELEASES_FILE_OUTPUT" ]]; then
$OVERCLOUD_TARGET_RELEASE $OVERCLOUD_TARGET_HASH)
["multinode-validate.yml"]=$(get_extra_vars_from_release \
$OVERCLOUD_TARGET_RELEASE $OVERCLOUD_TARGET_HASH)
["multinode-standalone.yml"]=$(get_extra_vars_from_release \
$STANDALONE_DEPLOY_RELEASE $STANDALONE_DEPLOY_HASH \
$STANDALONE_DEPLOY_NEWEST_HASH)
["multinode-standalone-upgrade.yml"]=$(get_extra_vars_from_release \
$STANDALONE_TARGET_RELEASE $STANDALONE_TARGET_HASH \
$STANDALONE_TARGET_NEWEST_HASH)
)
fi

View File

@ -105,20 +105,31 @@ for JOB_TYPE_PART in $(sed 's/-/ /g' <<< "${TOCI_JOBTYPE:-}") ; do
case $JOB_TYPE_PART in
featureset*)
FEATURESET_FILE="$LWD/config/general_config/$JOB_TYPE_PART.yml"
# featurset_file is not yet in its final destination so we
# have to use current_featureset_file.
CURRENT_FEATURESET_FILE="$TRIPLEO_ROOT/tripleo-quickstart/config/general_config/$JOB_TYPE_PART.yml"
FEATURESET_CONF="$FEATURESET_CONF --extra-vars @$FEATURESET_FILE"
MIXED_UPGRADE_TYPE=''
# Order matters. ffu featureset has both mixed version and ffu_overcloud_upgrade.
if is_featureset ffu_overcloud_upgrade "$TRIPLEO_ROOT/tripleo-quickstart/config/general_config/$JOB_TYPE_PART.yml"; then
if is_featureset ffu_overcloud_upgrade "${CURRENT_FEATURESET_FILE}"; then
MIXED_UPGRADE_TYPE='ffu_upgrade'
elif is_featureset mixed_upgrade "$TRIPLEO_ROOT/tripleo-quickstart/config/general_config/$JOB_TYPE_PART.yml"; then
elif is_featureset mixed_upgrade "${CURRENT_FEATURESET_FILE}"; then
MIXED_UPGRADE_TYPE='mixed_upgrade'
elif is_featureset overcloud_update "$TRIPLEO_ROOT/tripleo-quickstart/config/general_config/$JOB_TYPE_PART.yml"; then
elif is_featureset overcloud_update "${CURRENT_FEATURESET_FILE}"; then
TAGS="$TAGS,overcloud-update"
elif is_featureset undercloud_upgrade "$TRIPLEO_ROOT/tripleo-quickstart/config/general_config/$JOB_TYPE_PART.yml"; then
elif is_featureset undercloud_upgrade "${CURRENT_FEATURESET_FILE}"; then
TAGS="$TAGS,undercloud-upgrade"
export UPGRADE_RELEASE=$QUICKSTART_RELEASE
export QUICKSTART_RELEASE=$(previous_release_mixed_upgrade_case "${UPGRADE_RELEASE}")
fi
# The case is iterating over TOCI_JOBTYPE which is
# standalone-featureset. So featureset comes after and we
# can override TAGS safely.
if is_featureset standalone_upgrade "${CURRENT_FEATURESET_FILE}" ; then
# We don't want "build" as it would wrongly build test
# package under the N-1 version.
TAGS="standalone,standalone-upgrade"
fi
# Set UPGRADE_RELEASE if applicable
if [ -n "${MIXED_UPGRADE_TYPE}" ]; then
export UPGRADE_RELEASE=$(previous_release_from "${STABLE_RELEASE}" "${MIXED_UPGRADE_TYPE}")
@ -186,7 +197,8 @@ for JOB_TYPE_PART in $(sed 's/-/ /g' <<< "${TOCI_JOBTYPE:-}") ; do
standalone)
ENVIRONMENT="osinfra"
UNDERCLOUD="127.0.0.2"
export PLAYBOOKS=${PLAYBOOKS:-"quickstart.yml multinode-standalone.yml"}
# Adding upgrade playbook here to be consistant with the v3 definition.
export PLAYBOOKS=${PLAYBOOKS:-"quickstart.yml multinode-standalone.yml multinode-standalone-upgrade.yml "}
FEATURESET_CONF=" --extra-vars @$LWD/config/general_config/featureset-multinode-common.yml $FEATURESET_CONF"
ENV_VARS="$ENV_VARS --extra-vars @$TRIPLEO_ROOT/tripleo-ci/toci-quickstart/config/testenv/multinode.yml"
if [[ $NODEPOOL_PROVIDER == "rdo-cloud"* ]]; then
@ -212,7 +224,7 @@ for JOB_TYPE_PART in $(sed 's/-/ /g' <<< "${TOCI_JOBTYPE:-}") ; do
done
if [[ -f "$RELEASES_SCRIPT" ]] && [[ $FEATURESET_FILE =~ 010|011|037|047|050 ]]; then
if [[ -f "$RELEASES_SCRIPT" ]] && [[ $FEATURESET_FILE =~ 010|011|037|047|050|056 ]]; then
python $RELEASES_SCRIPT \
--stable-release ${STABLE_RELEASE:-"master"} \

View File

@ -80,6 +80,12 @@ if [[ -f "$RELEASES_FILE_OUTPUT" ]]; then
$OVERCLOUD_TARGET_RELEASE $OVERCLOUD_TARGET_HASH)
["multinode-validate.yml"]=$(get_extra_vars_from_release \
$OVERCLOUD_TARGET_RELEASE $OVERCLOUD_TARGET_HASH)
["multinode-standalone.yml"]=$(get_extra_vars_from_release \
$STANDALONE_DEPLOY_RELEASE $STANDALONE_DEPLOY_HASH \
$STANDALONE_DEPLOY_NEWEST_HASH)
["multinode-standalone-upgrade.yml"]=$(get_extra_vars_from_release \
$STANDALONE_TARGET_RELEASE $STANDALONE_TARGET_HASH \
$STANDALONE_TARGET_NEWEST_HASH)
)
fi

View File

@ -23,6 +23,7 @@
- tripleo-ci-centos-7-scenario000-multinode-oooq-container-upgrades
- tripleo-ci-centos-7-standalone
- tripleo-ci-fedora-28-standalone
- tripleo-ci-centos-7-standalone-upgrade
gate:
queue: tripleo
@ -47,6 +48,7 @@
- tripleo-ci-centos-7-scenario000-multinode-oooq-container-upgrades
- tripleo-ci-centos-7-standalone
- tripleo-ci-fedora-28-standalone
- tripleo-ci-centos-7-standalone-upgrade
gate:
queue: tripleo
jobs:

View File

@ -46,3 +46,31 @@
- ^Puppetfile.*$
- tox.ini
# like parent but with requirements.txt and setup.py removed
- job:
name: tripleo-ci-centos-7-standalone-upgrade
parent: tripleo-ci-base-standalone
nodeset: single-centos-7-node
voting: false
branches: ^(?!stable/(newton|ocata|pike|queens)).*$
vars:
featureset: '056'
playbooks:
- quickstart.yml
- multinode-standalone.yml
- multinode-standalone-upgrade.yml
tags:
- standalone
- standalone-upgrade
irrelevant-files:
- ^.*\.md$
- ^.*\.rst$
- ^doc/.*$
- ^etc/.*$
- ^metadata.json$
- ^releasenotes/.*$
- ^test-requirements.txt$
- ^spec/.*$
- ^Puppetfile.*$
- tox.ini
# like parent but with requirements.txt and setup.py removed