diff options
Diffstat (limited to 'jjb/multisite')
-rwxr-xr-x | jjb/multisite/fuel-deploy-for-multisite.sh | 116 | ||||
-rw-r--r-- | jjb/multisite/multisite-daily-jobs.yml | 137 | ||||
-rw-r--r-- | jjb/multisite/multisite-verify-jobs.yml | 69 | ||||
-rw-r--r-- | jjb/multisite/multisite.yml | 149 |
4 files changed, 278 insertions, 193 deletions
diff --git a/jjb/multisite/fuel-deploy-for-multisite.sh b/jjb/multisite/fuel-deploy-for-multisite.sh new file mode 100755 index 000000000..fab9ace84 --- /dev/null +++ b/jjb/multisite/fuel-deploy-for-multisite.sh @@ -0,0 +1,116 @@ +#!/bin/bash +# SPDX-license-identifier: Apache-2.0 +############################################################################## +# Copyright (c) 2016 Ericsson 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 + +# do not continue with the deployment if FRESH_INSTALL is not requested +if [[ "$FRESH_INSTALL" == "true" ]]; then + echo "Fresh install requested. Proceeding with the installation." +else + echo "Fresh install is not requested. Skipping the installation." + exit 0 +fi + +export TERM="vt220" + +# get the latest successful job console log and extract the properties filename +FUEL_DEPLOY_BUILD_URL="https://build.opnfv.org/ci/job/fuel-deploy-virtual-daily-master/lastSuccessfulBuild/consoleText" +FUEL_PROPERTIES_FILE=$(curl -s -L ${FUEL_DEPLOY_URL} | grep 'ISO:' | awk '{print $2}' | sed 's/iso/properties/g') +if [[ -z "FUEL_PROPERTIES_FILE" ]]; then + echo "Unable to extract the url to Fuel ISO properties from ${FUEL_DEPLOY_URL}" + exit 1 +fi +curl -L -s -o $WORKSPACE/latest.properties http://artifacts.opnfv.org/fuel/$FUEL_PROPERTIES_FILE + +# source the file so we get OPNFV vars +source latest.properties + +# echo the info about artifact that is used during the deployment +echo "Using ${OPNFV_ARTIFACT_URL/*\/} for deployment" + +# download the iso +echo "Downloading the ISO using the link http://$OPNFV_ARTIFACT_URL" +curl -L -s -o $WORKSPACE/opnfv.iso http://$OPNFV_ARTIFACT_URL > gsutil.iso.log 2>&1 + +echo "Checking out $OPNFV_GIT_SHA1" +git checkout $OPNFV_GIT_SHA1 --quiet + +# set deployment parameters +DEPLOY_SCENARIO="os-nosdn-nofeature-noha" +export TMPDIR=$HOME/tmpdir +BRIDGE=${BRIDGE:-pxebr} +LAB_NAME=${NODE_NAME/-*} +POD_NAME=${NODE_NAME/*-} + +if [[ "$NODE_NAME" =~ "virtual" ]]; then + POD_NAME="virtual_kvm" +fi + +# we currently support ericsson, intel, lf and zte labs +if [[ ! "$LAB_NAME" =~ (ericsson|intel|lf|zte) ]]; then + echo "Unsupported/unidentified lab $LAB_NAME. Cannot continue!" + exit 1 +else + echo "Using configuration for $LAB_NAME" +fi + +# create TMPDIR if it doesn't exist +export TMPDIR=$HOME/tmpdir +mkdir -p $TMPDIR + +# change permissions down to TMPDIR +chmod a+x $HOME +chmod a+x $TMPDIR + +# clone the securedlab repo +cd $WORKSPACE +echo "Cloning securedlab repo ${GIT_BRANCH##origin/}" +git clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet \ + --branch ${GIT_BRANCH##origin/} + +# log file name +FUEL_LOG_FILENAME="${JOB_NAME}_${BUILD_NUMBER}.log.tar.gz" + +# construct the command +DEPLOY_COMMAND="sudo $WORKSPACE/ci/deploy.sh -b file://$WORKSPACE/securedlab \ + -l $LAB_NAME -p $POD_NAME -s $DEPLOY_SCENARIO -i file://$WORKSPACE/opnfv.iso \ + -H -B $BRIDGE -S $TMPDIR -L $WORKSPACE/$FUEL_LOG_FILENAME" + +# log info to console +echo "Deployment parameters" +echo "--------------------------------------------------------" +echo "Scenario: $DEPLOY_SCENARIO" +echo "Lab: $LAB_NAME" +echo "POD: $POD_NAME" +echo "ISO: ${OPNFV_ARTIFACT_URL/*\/}" +echo +echo "Starting the deployment using $INSTALLER_TYPE. This could take some time..." +echo "--------------------------------------------------------" +echo + +# start the deployment +echo "Issuing command" +echo "$DEPLOY_COMMAND" +echo + +$DEPLOY_COMMAND +exit_code=$? + +echo +echo "--------------------------------------------------------" +echo "Deployment is done!" + +if [[ $exit_code -ne 0 ]]; then + echo "Deployment failed!" + exit $exit_code +else + echo "Deployment is successful!" + exit 0 +fi diff --git a/jjb/multisite/multisite-daily-jobs.yml b/jjb/multisite/multisite-daily-jobs.yml index cfb40a1fa..f2b287169 100644 --- a/jjb/multisite/multisite-daily-jobs.yml +++ b/jjb/multisite/multisite-daily-jobs.yml @@ -8,12 +8,16 @@ - 'multisite-{phase}-{stream}' phase: - - 'fuel-deploy-regionone-virtual' - - 'fuel-deploy-regiontwo-virtual' - - 'register-endpoints' - - 'update-auth' - - 'kingbird-deploy-virtual' - - 'kingbird-functest' + - 'fuel-deploy-regionone-virtual': + slave-label: ericsson-virtual12 + - 'fuel-deploy-regiontwo-virtual': + slave-label: ericsson-virtual13 + - 'register-endpoints': + slave-label: ericsson-virtual12 + - 'update-auth': + slave-label: ericsson-virtual13 + - 'kingbird-deploy-virtual': + slave-label: ericsson-virtual12 stream: - master: @@ -34,13 +38,15 @@ parameters: - project-parameter: project: '{project}' + - choice: + name: FRESH_INSTALL + choices: + - 'true' + - 'false' - string: name: KINGBIRD_LOG_FILE default: $WORKSPACE/kingbird.log - - 'multisite-virtual-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-multisite-noha' + - 'opnfv-build-defaults' triggers: - timed: '{timed}' @@ -56,26 +62,28 @@ current-parameters: false predefined-parameters: | FUEL_VERSION=latest - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + DEPLOY_SCENARIO=os-nosdn-nofeature-noha OS_REGION=RegionOne - REGIONONE_IP=10.2.117.79 - REGIONTWO_IP=10.2.117.181 + REGIONONE_IP=100.64.209.10 + REGIONTWO_IP=100.64.209.11 + FRESH_INSTALL=$FRESH_INSTALL node-parameters: false node-label-name: SLAVE_LABEL - node-label: intel-virtual2 + node-label: ericsson-virtual12 kill-phase-on: FAILURE abort-all-job: true - name: 'multisite-fuel-deploy-regiontwo-virtual-{stream}' current-parameters: false predefined-parameters: | FUEL_VERSION=latest - DEPLOY_SCENARIO=$DEPLOY_SCENARIO + DEPLOY_SCENARIO=os-nosdn-nofeature-noha OS_REGION=RegionTwo - REGIONONE_IP=10.2.117.79 - REGIONTWO_IP=10.2.117.181 + REGIONONE_IP=100.64.209.10 + REGIONTWO_IP=100.64.209.11 + FRESH_INSTALL=$FRESH_INSTALL node-parameters: false node-label-name: SLAVE_LABEL - node-label: intel-virtual6 + node-label: ericsson-virtual13 kill-phase-on: FAILURE abort-all-job: true - multijob: @@ -86,22 +94,24 @@ current-parameters: false predefined-parameters: | OS_REGION=RegionOne - REGIONONE_IP=10.2.117.79 - REGIONTWO_IP=10.2.117.181 + REGIONONE_IP=100.64.209.10 + REGIONTWO_IP=100.64.209.11 + FRESH_INSTALL=$FRESH_INSTALL node-parameters: false node-label-name: SLAVE_LABEL - node-label: intel-virtual2 + node-label: ericsson-virtual12 kill-phase-on: FAILURE abort-all-job: true - name: 'multisite-update-auth-{stream}' current-parameters: false predefined-parameters: | OS_REGION=RegionTwo - REGIONONE_IP=10.2.117.79 - REGIONTWO_IP=10.2.117.181 + REGIONONE_IP=100.64.209.10 + REGIONTWO_IP=100.64.209.11 + FRESH_INSTALL=$FRESH_INSTALL node-parameters: false node-label-name: SLAVE_LABEL - node-label: intel-virtual6 + node-label: ericsson-virtual13 kill-phase-on: FAILURE abort-all-job: true - multijob: @@ -112,26 +122,30 @@ current-parameters: false predefined-parameters: | OS_REGION=RegionOne - REGIONONE_IP=10.2.117.79 - REGIONTWO_IP=10.2.117.181 + REGIONONE_IP=100.64.209.10 + REGIONTWO_IP=100.64.209.11 + FRESH_INSTALL=$FRESH_INSTALL node-parameters: false node-label-name: SLAVE_LABEL - node-label: intel-virtual2 + node-label: ericsson-virtual12 kill-phase-on: FAILURE abort-all-job: true - multijob: name: kingbird-functest condition: SUCCESSFUL projects: - - name: 'multisite-kingbird-functest-{stream}' + - name: 'functest-fuel-virtual-suite-{stream}' current-parameters: false predefined-parameters: | + DEPLOY_SCENARIO='os-nosdn-multisite-noha' + FUNCTEST_SUITE_NAME='multisite' OS_REGION=RegionOne - REGIONONE_IP=10.2.117.79 - REGIONTWO_IP=10.2.117.181 + REGIONONE_IP=100.64.209.10 + REGIONTWO_IP=100.64.209.11 + FRESH_INSTALL=$FRESH_INSTALL node-parameters: false node-label-name: SLAVE_LABEL - node-label: intel-virtual2 + node-label: ericsson-virtual12 kill-phase-on: NEVER abort-all-job: false @@ -140,6 +154,29 @@ concurrent: false + disabled: '{obj:disabled}' + + concurrent: false + + parameters: + - project-parameter: + project: '{project}' + - string: + name: KINGBIRD_LOG_FILE + default: $WORKSPACE/kingbird.log + - gerrit-parameter: + branch: '{branch}' + - 'fuel-defaults' + - '{slave-label}-defaults' + - choice: + name: FRESH_INSTALL + choices: + - 'true' + - 'false' + + scm: + - git-scm + builders: - description-setter: description: "Built on $NODE_NAME" @@ -155,39 +192,57 @@ - builder: name: 'multisite-fuel-deploy-regionone-virtual-builder' builders: + - shell: + !include-raw-escape: ./fuel-deploy-for-multisite.sh - shell: | #!/bin/bash echo "This is where we deploy fuel, extract passwords and save into file" + + cd $WORKSPACE/tools/keystone/ + ./run.sh -t controller -r fetchpass.sh -o servicepass.ini + - builder: name: 'multisite-fuel-deploy-regiontwo-virtual-builder' builders: + - shell: + !include-raw-escape: ./fuel-deploy-for-multisite.sh - shell: | #!/bin/bash echo "This is where we deploy fuel, extract publicUrl, privateUrl, and adminUrl and save into file" + + cd $WORKSPACE/tools/keystone/ + ./run.sh -t controller -r endpoint.sh -o endpoints.ini - builder: name: 'multisite-register-endpoints-builder' builders: - copyartifact: project: 'multisite-fuel-deploy-regiontwo-virtual-{stream}' which-build: multijob-build - filter: "RegionTwo-Endpoints.txt" + filter: "endpoints.ini" - shell: | #!/bin/bash - echo "This is where we register RegionTwo in RegionOne keystone" + echo "This is where we register RegionTwo in RegionOne keystone using endpoints.ini" + + cd $WORKSPACE/tools/keystone/ + ./run.sh -t controller -r region.sh -d $WORKSPACE/endpoints.ini - builder: name: 'multisite-update-auth-builder' builders: - copyartifact: project: 'multisite-fuel-deploy-regionone-virtual-{stream}' which-build: multijob-build - filter: "RegionOne-Passwords.txt" + filter: "servicepass.ini" - shell: | #!/bin/bash - echo "This is where we read passwords from RegionOne-passwords.txt and replace passwords in RegionTwo" + echo "This is where we read passwords from servicepass.ini and replace passwords in RegionTwo" + + cd $WORKSPACE/tools/keystone/ + ./run.sh -t controller -r writepass.sh -d $WORKSPACE/servicepass.ini + ./run.sh -t compute -r writepass.sh -d $WORKSPACE/servicepass.ini - builder: name: 'multisite-kingbird-deploy-virtual-builder' builders: @@ -195,13 +250,7 @@ #!/bin/bash echo "This is where we install kingbird" -- builder: - name: 'multisite-kingbird-functest-builder' - builders: - - shell: | - #!/bin/bash - - echo "This is where we run kingbird-functest" + $WORKSPACE/tools/kingbird/deploy.sh ######################## # publisher macros ######################## @@ -209,7 +258,7 @@ name: 'multisite-fuel-deploy-regionone-virtual-publisher' publishers: - archive: - artifacts: '/root/servicepass.ini' + artifacts: 'servicepass.ini' allow-empty: false only-if-success: true fingerprint: true @@ -217,7 +266,7 @@ name: 'multisite-fuel-deploy-regiontwo-virtual-publisher' publishers: - archive: - artifacts: '/root/endpoints.ini' + artifacts: 'endpoints.ini' allow-empty: false only-if-success: true fingerprint: true diff --git a/jjb/multisite/multisite-verify-jobs.yml b/jjb/multisite/multisite-verify-jobs.yml new file mode 100644 index 000000000..fdcc8d539 --- /dev/null +++ b/jjb/multisite/multisite-verify-jobs.yml @@ -0,0 +1,69 @@ +################################################### +# All the jobs except verify have been removed! +# They will only be enabled on request by projects! +################################################### +- project: + name: multisite + + project: '{name}' + + jobs: + - 'multisite-verify-{stream}' + + stream: + - master: + branch: '{stream}' + gs-pathname: '' + disabled: false + timed: '@midnight' + - danube: + branch: 'stable/{stream}' + gs-pathname: '/{stream}' + disabled: true + timed: '' + +- job-template: + name: 'multisite-verify-{stream}' + + disabled: '{obj:disabled}' + + concurrent: true + + parameters: + - project-parameter: + project: '{project}' + - gerrit-parameter: + branch: '{branch}' + - 'opnfv-build-ubuntu-defaults' + + scm: + - git-scm-gerrit + + triggers: + - gerrit: + server-name: 'gerrit.opnfv.org' + trigger-on: + - patchset-created-event: + exclude-drafts: 'false' + exclude-trivial-rebase: 'false' + exclude-no-code-change: 'false' + - draft-published-event + - comment-added-contains-event: + comment-contains-value: 'recheck' + - comment-added-contains-event: + comment-contains-value: 'reverify' + projects: + - project-compare-type: 'ANT' + project-pattern: '{project}' + branches: + - branch-compare-type: 'ANT' + branch-pattern: '**/{branch}' + forbidden-file-paths: + - compare-type: ANT + pattern: 'docs/**|.gitignore' + + builders: + - shell: | + #!/bin/bash + + echo "Hello World" diff --git a/jjb/multisite/multisite.yml b/jjb/multisite/multisite.yml deleted file mode 100644 index 6b6406983..000000000 --- a/jjb/multisite/multisite.yml +++ /dev/null @@ -1,149 +0,0 @@ -################################################### -# All the jobs except verify have been removed! -# They will only be enabled on request by projects! -################################################### -- project: - name: multisite - - project: '{name}' - - jobs: - - 'multisite-verify-{stream}' - - 'multisite-kingbird-daily-{stream}' - - 'multisite-kingbird-deploy-{stream}' - - stream: - - master: - branch: '{stream}' - gs-pathname: '' - disabled: false - timed: '@midnight' - - danube: - branch: 'stable/{stream}' - gs-pathname: '/{stream}' - disabled: false - timed: '' - -- job-template: - name: 'multisite-verify-{stream}' - - disabled: '{obj:disabled}' - - concurrent: true - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - - 'opnfv-build-ubuntu-defaults' - - scm: - - git-scm-gerrit - - triggers: - - gerrit: - server-name: 'gerrit.opnfv.org' - trigger-on: - - patchset-created-event: - exclude-drafts: 'false' - exclude-trivial-rebase: 'false' - exclude-no-code-change: 'false' - - draft-published-event - - comment-added-contains-event: - comment-contains-value: 'recheck' - - comment-added-contains-event: - comment-contains-value: 'reverify' - projects: - - project-compare-type: 'ANT' - project-pattern: '{project}' - branches: - - branch-compare-type: 'ANT' - branch-pattern: '**/{branch}' - forbidden-file-paths: - - compare-type: ANT - pattern: 'docs/**|.gitignore' - - builders: - - shell: | - #!/bin/bash - - echo "Hello World" - -- job-template: - name: 'multisite-kingbird-daily-{stream}' - - project-type: freestyle - - disabled: '{obj:disabled}' - - concurrent: false - - parameters: - - project-parameter: - project: '{project}' - - gerrit-parameter: - branch: '{branch}' - - string: - name: KINGBIRD_LOG_FILE - default: $WORKSPACE/kingbird.log - - 'intel-virtual6-defaults' - - string: - name: DEPLOY_SCENARIO - default: 'os-nosdn-multisite-ha' - - scm: - - git-scm - - triggers: - - timed: '{timed}' - - builders: - - trigger-builds: - - project: 'multisite-kingbird-deploy-{stream}' - current-parameters: true - same-node: true - block: true - - trigger-builds: - - project: 'functest-fuel-virtual-suite-{stream}' - current-parameters: true - predefined-parameters: - FUNCTEST_SUITE_NAME=multisite - same-node: true - block: true - block-thresholds: - build-step-failure-threshold: 'never' - failure-threshold: 'never' - unstable-threshold: 'FAILURE' - -- job-template: - name: 'multisite-kingbird-deploy-{stream}' - - concurrent: false - - scm: - - git-scm-gerrit - - builders: - - 'multisite-kingbird-deploy' - - 'multisite-kingbird-log-upload' - -######################## -# builder macros -######################## -- builder: - name: 'multisite-kingbird-deploy' - builders: - - shell: | - #!/bin/bash - - $WORKSPACE/tools/kingbird/deploy.sh -- builder: - name: 'multisite-kingbird-log-upload' - builders: - - shell: | - #!/bin/bash - - echo "Here is where we upload kingbird logs to artifact repo" - echo "We just check the existence of log file" - ls -al $KINGBIRD_LOG_FILE |