X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=jjb%2Ffuel%2Ffuel-deploy.sh;h=dd89447e6e4fd4b3c02c984fa4345d015d8d986d;hb=de2e7d2c03750a80849dcdb5c47830dbe2c0c1d0;hp=4d7a9b9c51e33ea46e3ab7e6a3fc3b76c83c35b8;hpb=3e6f490c383798df22c208e5bb92a06a4c906827;p=releng.git diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh index 4d7a9b9c5..dd89447e6 100755 --- a/jjb/fuel/fuel-deploy.sh +++ b/jjb/fuel/fuel-deploy.sh @@ -1,49 +1,89 @@ #!/bin/bash -set -o errexit +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea Software AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## set -o nounset set -o pipefail -# source the file so we get OPNFV vars -source latest.properties +export TERM="vt220" -# echo the info about artifact that is used during the deployment -echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f4) for deployment" +# set deployment parameters +export TMPDIR=${HOME}/tmpdir +# shellcheck disable=SC2153 +LAB_NAME=${NODE_NAME/-*} +# shellcheck disable=SC2153 +POD_NAME=${NODE_NAME/*-} -# create TMPDIR if it doesn't exist -export TMPDIR=$HOME/tmpdir -[[ -d $TMPDIR ]] || mkdir -p $TMPDIR +# Fuel currently supports arm, enea, ericsson, intel, lf, unh, zte and itri labs +if [[ ! "${LAB_NAME}" =~ (arm|enea|ericsson|intel|lf|unh|zte|itri) ]]; then + echo "Unsupported/unidentified lab ${LAB_NAME}. Cannot continue!" + exit 1 +fi -# change permissions down to TMPDIR -chmod a+x $HOME -chmod a+x $TMPDIR +echo "Using configuration for ${LAB_NAME}" -# set CONFDIR, BRIDGE -export CONFDIR=$WORKSPACE/fuel/deploy/templates/hardware_environment/conf/linux_foundation_lab/pod2 -export BRIDGE=pxebr +# create TMPDIR if it doesn't exist, change permissions +mkdir -p "${TMPDIR}" +sudo chmod a+x "${HOME}" "${TMPDIR}" -# clone genesis repo and checkout the SR1 tag -echo "Cloning genesis repo" -cd $WORKSPACE -git clone https://gerrit.opnfv.org/gerrit/p/genesis.git genesis -cd genesis -git checkout arno.2015.2.0 +cd "${WORKSPACE}" || exit 1 -# cleanup first -sudo $WORKSPACE/genesis/common/ci/clean.sh -base_config $WORKSPACE/genesis/foreman/ci/inventory/lf_pod2_ksgen_settings.yml +# log file name +FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" -# prepare for Fuel Deployment -sudo $WORKSPACE/genesis/common/ci/setup.sh +# Limited scope for vPOD verify jobs running on armband-virtual +[[ ! "${JOB_NAME}" =~ verify-deploy-virtual-arm64 ]] || EXTRA_ARGS='-e' + +# turn on DEBUG mode +[[ ${CI_DEBUG,,} == true ]] && EXTRA_ARGS="-D ${EXTRA_ARGS:-}" + +# construct the command +DEPLOY_COMMAND="${WORKSPACE}/ci/deploy.sh \ + -l ${LAB_NAME} -p ${POD_NAME} -s ${DEPLOY_SCENARIO} \ + -S ${TMPDIR} ${EXTRA_ARGS:-} \ + -L ${WORKSPACE}/${FUEL_LOG_FILENAME}" # log info to console -echo "Starting the deployment using $INSTALLER. This could take some time..." +echo "Deployment parameters" +echo "--------------------------------------------------------" +echo "Scenario: ${DEPLOY_SCENARIO}" +echo "Lab: ${LAB_NAME}" +echo "POD: ${POD_NAME}" +echo +echo "Starting the deployment using ${INSTALLER_TYPE}. This could take some time..." echo "--------------------------------------------------------" echo # start the deployment echo "Issuing command" -echo "sudo $WORKSPACE/fuel/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh" -sudo $WORKSPACE/fuel/ci/deploy.sh -iso $WORKSPACE/opnfv.iso -dea $CONFDIR/dea.yaml -dha $CONFDIR/dha.yaml -s $TMPDIR -b $BRIDGE -nh +echo "${DEPLOY_COMMAND}" +echo + +${DEPLOY_COMMAND} +exit_code=$? echo echo "--------------------------------------------------------" -echo "Done!" +echo "Deployment is done!" + +# upload logs for baremetal deployments +# work with virtual deployments is still going on, so skip that for now +if [[ "${JOB_NAME}" =~ baremetal-daily ]]; then + echo "Uploading deployment logs" + gsutil cp "${WORKSPACE}/${FUEL_LOG_FILENAME}" \ + "gs://${GS_URL}/logs/${FUEL_LOG_FILENAME}" > /dev/null 2>&1 + echo "Logs are available at http://${GS_URL}/logs/${FUEL_LOG_FILENAME}" +fi + +if [[ "${exit_code}" -ne 0 ]]; then + echo "Deployment failed!" + exit "${exit_code}" +fi + +echo "Deployment is successful!" +exit 0