summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--jjb/fuel/fuel-ci-jobs-master.yml154
-rw-r--r--jjb/fuel/fuel-ci-jobs.yml48
-rwxr-xr-xjjb/fuel/fuel-deploy-master.sh59
-rwxr-xr-xjjb/fuel/fuel-deploy.sh2
-rw-r--r--jjb/functest/functest-ci-jobs.yml2
-rw-r--r--jjb/joid/joid-ci-jobs.yml16
-rw-r--r--jjb/joid/joid-deploy.sh64
-rw-r--r--jjb/opnfv/installer-params.yml4
-rw-r--r--jjb/opnfv/opnfv-docker.sh37
-rw-r--r--jjb/opnfv/opnfv-docker.yml4
-rw-r--r--jjb/opnfv/slave-params.yml5
-rw-r--r--jjb/qtip/qtip.yml48
12 files changed, 363 insertions, 80 deletions
diff --git a/jjb/fuel/fuel-ci-jobs-master.yml b/jjb/fuel/fuel-ci-jobs-master.yml
new file mode 100644
index 000000000..dffafe850
--- /dev/null
+++ b/jjb/fuel/fuel-ci-jobs-master.yml
@@ -0,0 +1,154 @@
+- project:
+
+ name: 'fuel-master'
+
+ project: 'fuel'
+
+ installer: '{project}'
+
+#--------------------------------
+# BRANCH ANCHORS
+#--------------------------------
+ master: &master
+ stream: master
+ branch: '{stream}'
+ gs-pathname: ''
+#--------------------------------
+# POD, INSTALLER, AND BRANCH MAPPING
+#--------------------------------
+ pod:
+ - ericsson-pod2:
+ <<: *master
+#--------------------------------
+
+# new scenario descriptions
+ scenario:
+ - 'os_ha'
+ - 'os_odl-l2_ha'
+ - 'os_odl-l3_ha'
+ - 'os_onos_ha'
+ - 'os_kvm_ha'
+ - 'os_ovs_ha'
+ - 'os_kvm_ovs_ha'
+
+ jobs:
+ - 'fuel-{scenario}-{pod}-daily-{stream}'
+ - 'fuel-deploy-{pod}-daily-{stream}-development'
+
+########################
+# job templates - new type of defining the scenario
+########################
+- job-template:
+ name: 'fuel-{scenario}-{pod}-daily-{stream}'
+
+ project-type: multijob
+
+ concurrent: false
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'fuel-os_.*'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+ parameters:
+ - project-parameter:
+ project: '{project}'
+ - '{pod}-defaults'
+ - '{installer}-defaults'
+ - string:
+ name: DEPLOY_SCENARIO
+ default: '{scenario}'
+ - fuel-ci-parameter:
+ gs-pathname: '{gs-pathname}'
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: '{branch}'
+
+ builders:
+ - multijob:
+ name: deploy
+ condition: SUCCESSFUL
+ projects:
+ - name: 'fuel-deploy-{pod}-daily-{stream}'
+ current-parameters: true
+ git-revision: true
+ kill-phase-on: FAILURE
+ - multijob:
+ name: functest
+ condition: COMPLETED
+ projects:
+ - name: 'functest-fuel-{pod}-daily-{stream}'
+ current-parameters: true
+ kill-phase-on: NEVER
+ - multijob:
+ name: yardstick
+ condition: COMPLETED
+ projects:
+ - name: 'yardstick-fuel-{pod}-daily-{stream}'
+ current-parameters: true
+ kill-phase-on: NEVER
+
+- job-template:
+ name: 'fuel-deploy-{pod}-daily-{stream}-development'
+
+ concurrent: false
+
+ properties:
+ - throttle:
+ enabled: true
+ max-total: 1
+ max-per-node: 1
+
+ parameters:
+ - project-parameter:
+ project: 'fuel'
+ - 'ericsson-pod2-defaults'
+ - 'fuel-defaults'
+ - fuel-ci-parameter-new:
+ gs-pathname: ''
+
+ scm:
+ - git-scm:
+ credentials-id: '{ssh-credentials}'
+ refspec: ''
+ branch: 'master'
+
+ wrappers:
+ - build-name:
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
+
+ builders:
+ - shell:
+ !include-raw-escape: ./fuel-download-artifact.sh
+ - shell:
+ !include-raw-escape: ./fuel-deploy-master.sh
+########################
+# parameter macros
+########################
+- parameter:
+ name: fuel-ci-parameter-new
+ parameters:
+ - string:
+ name: BUILD_DIRECTORY
+ default: $WORKSPACE/build_output
+ description: "Directory where the build artifact will be located upon the completion of the build."
+ - string:
+ name: CACHE_DIRECTORY
+ default: $HOME/opnfv/cache/$INSTALLER_TYPE
+ description: "Directory where the cache to be used during the build is located."
+ - string:
+ name: GS_URL
+ default: artifacts.opnfv.org/$PROJECT{gs-pathname}
+ description: "URL to Google Storage."
diff --git a/jjb/fuel/fuel-ci-jobs.yml b/jjb/fuel/fuel-ci-jobs.yml
index 37cf78849..c90d930c1 100644
--- a/jjb/fuel/fuel-ci-jobs.yml
+++ b/jjb/fuel/fuel-ci-jobs.yml
@@ -36,30 +36,20 @@
# please check the triggers before enabling any of the controllers!!!
sdn-controller:
- - 'nosdn':
- disabled: false
-# commented out below controllers to get nosdn scenario settled first
-# - 'odl':
-# disabled: true
-# - 'onos':
-# disabled: true
-# - 'opencontrail':
-# disabled: true
+ - 'nosdn'
jobs:
- 'fuel-{sdn-controller}-{pod}-daily-{stream}'
- 'fuel-deploy-{pod}-daily-{stream}'
########################
-# job templates
+# job templates - old type of defining the scenario
########################
- job-template:
name: 'fuel-{sdn-controller}-{pod}-daily-{stream}'
project-type: multijob
- disabled: '{obj:disabled}'
-
concurrent: false
properties:
@@ -67,6 +57,10 @@
enabled: true
max-total: 1
max-per-node: 1
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'fuel-{sdn-controller}-{pod}-daily-{stream}'
wrappers:
- build-name:
@@ -129,6 +123,12 @@
enabled: true
max-total: 1
max-per-node: 1
+ - build-blocker:
+ use-build-blocker: true
+ blocking-jobs:
+ - 'fuel-deploy-{pod}-daily-{stream}.*'
+ - 'functest-fuel-{pod}-daily-{stream}'
+ - 'yardstick-fuel-{pod}-daily-{stream}'
parameters:
- project-parameter:
@@ -146,13 +146,10 @@
wrappers:
- build-name:
- name: '$BUILD_NUMBER - SDN: $SDN_CONTROLLER Scenario: $DEPLOY_SCENARIO'
+ name: '$BUILD_NUMBER - Scenario: $DEPLOY_SCENARIO'
builders:
- - shell:
- !include-raw-escape: ./fuel-download-artifact.sh
- - shell:
- !include-raw-escape: ./fuel-deploy.sh
+ - 'builder-{stream}'
publishers:
- email:
@@ -176,6 +173,23 @@
default: artifacts.opnfv.org/$PROJECT{gs-pathname}
description: "URL to Google Storage."
########################
+# builder macros
+########################
+- builder:
+ name: 'builder-master'
+ builders:
+ - shell:
+ !include-raw: ./fuel-download-artifact.sh
+ - shell:
+ !include-raw: ./fuel-deploy-master.sh
+- builder:
+ name: 'builder-brahmaputra'
+ builders:
+ - shell:
+ !include-raw: ./fuel-download-artifact.sh
+ - shell:
+ !include-raw: ./fuel-deploy.sh
+########################
# trigger macros
########################
# trigger for opnfv-jump-2 is set to run 1 hour ahead of others
diff --git a/jjb/fuel/fuel-deploy-master.sh b/jjb/fuel/fuel-deploy-master.sh
new file mode 100755
index 000000000..4a7d1d9fb
--- /dev/null
+++ b/jjb/fuel/fuel-deploy-master.sh
@@ -0,0 +1,59 @@
+#!/bin/bash
+set -o errexit
+set -o nounset
+set -o pipefail
+
+# 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"
+
+# checkout the commit that was used for building the downloaded artifact
+# to make sure the ISO and deployment mechanism uses same versions
+echo "Checking out $OPNFV_GIT_SHA1"
+git checkout $OPNFV_GIT_SHA1 --quiet
+
+# set deployment parameters
+BRIDGE=pxebr
+export TMPDIR=$HOME/tmpdir
+LAB_NAME=${NODE_NAME/-*}
+POD_NAME=${NODE_NAME/*-}
+
+# create TMPDIR if it doesn't exist
+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 clone ssh://jenkins-ericsson@gerrit.opnfv.org:29418/securedlab --quiet
+
+# 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"
+
+# log info to console
+echo "Deployment parameters"
+echo "--------------------------------------------------------"
+echo "Scenario: $DEPLOY_SCENARIO"
+echo "Lab: $LAB_NAME"
+echo "POD: $POD_NAME"
+echo "ISO: $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f3)"
+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
+
+echo
+echo "--------------------------------------------------------"
+echo "Done!"
diff --git a/jjb/fuel/fuel-deploy.sh b/jjb/fuel/fuel-deploy.sh
index 334307448..dc3d81a3a 100755
--- a/jjb/fuel/fuel-deploy.sh
+++ b/jjb/fuel/fuel-deploy.sh
@@ -7,7 +7,7 @@ set -o pipefail
source latest.properties
# echo the info about artifact that is used during the deployment
-echo "Using $(echo $OPNFV_ARTIFACT_URL | cut -d'/' -f3) for deployment"
+echo "Using $OPNFV_ARTIFACT_URL for deployment"
# checkout the commit that was used for building the downloaded artifact
# to make sure the ISO and deployment mechanism uses same versions
diff --git a/jjb/functest/functest-ci-jobs.yml b/jjb/functest/functest-ci-jobs.yml
index bd7affef3..3c993c6a3 100644
--- a/jjb/functest/functest-ci-jobs.yml
+++ b/jjb/functest/functest-ci-jobs.yml
@@ -208,7 +208,7 @@
$res_volume="-v ${dir_result}:/home/opnfv/functest/results"
docker pull opnfv/functest:latest_stable
- cmd="docker run -id -e $envs ${labconfig} ${sshkey} ${res_volume} opnfv/functest:latest_stable /bin/bash"
+ cmd="sudo docker run --privileged=true -id -e $envs ${labconfig} ${sshkey} ${res_volume} opnfv/functest:latest_stable /bin/bash"
echo "Functest: Running docker run command: ${cmd}"
${cmd}
docker ps -a
diff --git a/jjb/joid/joid-ci-jobs.yml b/jjb/joid/joid-ci-jobs.yml
index 0cc931085..e3b010028 100644
--- a/jjb/joid/joid-ci-jobs.yml
+++ b/jjb/joid/joid-ci-jobs.yml
@@ -43,8 +43,8 @@
# commented out below controllers to get Arno scenario settled first
# - 'nosdn':
# disabled: true
-# - 'onos':
-# disabled: true
+ - 'onos':
+ disabled: true
# - 'opencontrail':
# disabled: true
@@ -173,3 +173,15 @@
name: 'joid-orange-pod2-odl-trigger'
triggers:
- timed: ''
+- trigger:
+ name: 'joid-intel-pod5-onos-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-intel-pod6-onos-trigger'
+ triggers:
+ - timed: ''
+- trigger:
+ name: 'joid-orange-pod2-onos-trigger'
+ triggers:
+ - timed: ''
diff --git a/jjb/joid/joid-deploy.sh b/jjb/joid/joid-deploy.sh
index 1348ca0be..e23afac1c 100644
--- a/jjb/joid/joid-deploy.sh
+++ b/jjb/joid/joid-deploy.sh
@@ -5,6 +5,19 @@ set -o nounset
PWD_FILENAME="passwords.sh"
##
+##
+##
+function exit_on_error {
+ RES=$1
+ MSG=$2
+ if [ $RES != 0 ]; then
+ echo "FAILED - $MSG"
+ exit $RES
+ fi
+}
+
+
+##
## Create LAB_CONFIG folder if not exists
##
mkdir -p $LAB_CONFIG
@@ -49,11 +62,7 @@ else
sed -i -- "s/password: ubuntu/password: $MAAS_PASSWORD/" $MAASCONFIG
echo "------ Redeploy MAAS ------"
./02-maasdeploy.sh $POD_NAME
- RES=$?
- if [ $RES != 0 ]; then
- echo "MAAS Deploy FAILED"
- exit $RES
- fi
+ exit_on_error $? "MAAS Deploy FAILED"
fi
##
@@ -92,11 +101,7 @@ echo "------ Deploy with juju ------"
echo "Execute: ./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME"
./deploy.sh -t $HA_MODE -o $OS_RELEASE -s $SDN_CONTROLLER -l $POD_NAME
-RES=$?
-if [ $RES != 0 ]; then
- echo "Deploy FAILED"
- exit $RES
-fi
+exit_on_error $? "Main deploy FAILED"
##
## Set Admin RC
@@ -141,10 +146,39 @@ curl -i -sw '%{http_code}' -H "Content-Type: application/json" -d "
}
}
}" http://$KEYSTONE:5000/v3/auth/tokens |grep "HTTP/1.1 20" 2>&1 >/dev/null;
-RES=$?
-if [ $RES == 0 ]; then
- echo "Deploy SUCCESS"
+exit_on_error $? "Deploy FAILED to auth to openstack"
+
+
+##
+## Create external network if needed
+##
+
+EXTERNAL_NETWORK=${EXTERNAL_NETWORK:-}
+# split EXTERNAL_NETWORK=name;type;first ip;last ip; gateway;network
+IFS=';' read -r -a EXTNET <<< "$EXTERNAL_NETWORK"
+EXTNET_NAME=${EXTNET[0]}
+EXTNET_TYPE=${EXTNET[1]}
+EXTNET_FIP=${EXTNET[2]}
+EXTNET_LIP=${EXTNET[3]}
+EXTNET_GW=${EXTNET[4]}
+EXTNET_NET=${EXTNET[5]}
+# If we have more information than only the name, try to create it
+if [ -z "$EXTNET_TYPE" ]; then
+ echo "------ No data for external network creation, pass ------"
else
- echo "Deploy FAILED to auth to openstack"
+ echo "------ External network creation ------"
+ neutron net-create $EXTNET_NAME --router:external True \
+ --provider:physical_network external --provider:network_type $EXTNET_TYPE
+ exit_on_error $? "External network creation failed"
+ neutron subnet-create $EXTNET_NAME --name $EXTNET_NAME \
+ --allocation-pool start=$EXTNET_FIP,end=$EXTNET_LIP \
+ --disable-dhcp --gateway $EXTNET_GW $EXTNET_NET
+ exit_on_error $? "External subnet creation failed"
fi
-exit $RES
+
+##
+## Exit success
+##
+
+echo "Deploy success"
+exit 0
diff --git a/jjb/opnfv/installer-params.yml b/jjb/opnfv/installer-params.yml
index b8d729796..4980889fd 100644
--- a/jjb/opnfv/installer-params.yml
+++ b/jjb/opnfv/installer-params.yml
@@ -99,8 +99,8 @@
description: 'OpenStack release (kilo|liberty)'
- string:
name: EXTERNAL_NETWORK
- default: 'net04_ext'
- description: 'external network for test'
+ default: ext-net;flat;192.168.0.2;192.168.0.253;192.168.0.1;192.168.0.0/24
+ description: "External network to create (name;type;first ip;last ip; gateway;network)"
- string:
name: CEPH_DISKS
default: '/srv'
diff --git a/jjb/opnfv/opnfv-docker.sh b/jjb/opnfv/opnfv-docker.sh
index 545aef6dd..81bab33bb 100644
--- a/jjb/opnfv/opnfv-docker.sh
+++ b/jjb/opnfv/opnfv-docker.sh
@@ -53,22 +53,6 @@ if [[ "$UPDATE_LATEST_STABLE" == "true" ]]; then
fi
-# Get tag version
-cd $WORKSPACE
-git clone https://gerrit.opnfv.org/gerrit/releng
-
-DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
- -n $DOCKER_REPO_NAME)
-
-ret_val=$?
-if [ $ret_val -ne 0 ]; then
- echo "Error retrieving the version tag."
- exit 1
-else
- echo "Tag version to be build and pushed: $DOCKER_TAG"
-fi
-
-
# cd to directory where Dockerfile is located
if [[ "$DOCKER_REPO_NAME" == "opnfv/functest" ]]; then
cd $WORKSPACE/docker
@@ -83,6 +67,27 @@ else
exit 1
fi
+
+# Get tag version
+branch=$(git rev-parse --abbrev-ref HEAD)
+if [ $branch == "master" ]; then
+ DOCKER_TAG="master"
+else
+ cd $WORKSPACE
+ git clone https://gerrit.opnfv.org/gerrit/releng
+
+ DOCKER_TAG=$($WORKSPACE/releng/utils/calculate_version.sh -t docker \
+ -n $DOCKER_REPO_NAME)
+
+ ret_val=$?
+ if [ $ret_val -ne 0 ]; then
+ echo "Error retrieving the version tag."
+ exit 1
+ fi
+fi
+echo "Tag version to be build and pushed: $DOCKER_TAG"
+
+
# Start the build
echo "Building docker image: $DOCKER_REPO_NAME:$DOCKER_TAG..."
diff --git a/jjb/opnfv/opnfv-docker.yml b/jjb/opnfv/opnfv-docker.yml
index fcbe60be2..13063e39b 100644
--- a/jjb/opnfv/opnfv-docker.yml
+++ b/jjb/opnfv/opnfv-docker.yml
@@ -17,7 +17,9 @@
stream:
- master:
- branch: 'master'
+ branch: '{stream}'
+ - brahmaputra:
+ branch: 'stable/{stream}'
########################
# job templates
diff --git a/jjb/opnfv/slave-params.yml b/jjb/opnfv/slave-params.yml
index 6dc0a2591..734343d88 100644
--- a/jjb/opnfv/slave-params.yml
+++ b/jjb/opnfv/slave-params.yml
@@ -374,6 +374,10 @@
name: CEPH_DISKS_CONTROLLERS
default: /dev/sdb
description: "Disks to use by ceph on controler nodes (space separated list)"
+ - string:
+ name: EXTERNAL_NETWORK
+ default: ext-net;flat;161.105.231.2;161.105.231.62;161.105.231.1;161.105.231.0/26
+ description: "External network to create (name;type;first ip;last ip; gateway;network)"
- parameter:
name: 'orange-test1-defaults'
@@ -427,4 +431,3 @@
name: SSH_KEY
default: /root/.ssh/id_rsa
description: 'SSH key to use for Apex'
-
diff --git a/jjb/qtip/qtip.yml b/jjb/qtip/qtip.yml
index 1b8a05178..c442c6cd9 100644
--- a/jjb/qtip/qtip.yml
+++ b/jjb/qtip/qtip.yml
@@ -136,7 +136,7 @@
name: qtip-run-suite
builders:
- shell: |
- #! /bin/bash
+ #!/bin/bash
QTIP_REPO=/home/opnfv/repos/qtip
docker exec -t ${container_id} $QTIP_REPO/docker/run_qtip.sh
@@ -145,34 +145,34 @@
name: qtip-cleanup
builders:
- shell: |
- #! /bin/bash
-
- echo "Cleaning up QTIP docker containers/images..."
- # Remove previous running containers if exist
- if [[ ! -z $(docker ps -a | grep opnfv/qtip) ]]; then
- echo "Removing existing opnfv/qtip containers..."
- running_containers= $(docker ps | grep opnfv/qtip | awk '{print $1}')
- docker stop ${running_containers}
- all_containers= $(docker ps -a | grep opnfv/qtip | awk '{print $1}')
- docker rm ${all_containers}
- fi
-
- # Remove existing images if exist
- if [[ ! -z $(docker images | grep opnfv/qtip) ]]; then
- echo "Docker images to remove:"
- docker images | head -1 && docker images | grep opnfv/qtip
- image_tags=($(docker images | grep opnfv/qtip | awk '{print $2}'))
- for tag in "${image_tags[@]}"; do
- echo "Removing docker image opnfv/qtip:$tag..."
- docker rmi opnfv/qtip:$tag
- done
- fi
+ #!/bin/bash
+
+ echo "Cleaning up QTIP docker containers/images..."
+ # Remove previous running containers if exist
+ if [[ ! -z $(docker ps -a | grep opnfv/qtip) ]]; then
+ echo "Removing existing opnfv/qtip containers..."
+ running_containers= $(docker ps | grep opnfv/qtip | awk '{print $1}')
+ docker stop ${running_containers}
+ all_containers= $(docker ps -a | grep opnfv/qtip | awk '{print $1}')
+ docker rm ${all_containers}
+ fi
+
+ # Remove existing images if exist
+ if [[ ! -z $(docker images | grep opnfv/qtip) ]]; then
+ echo "Docker images to remove:"
+ docker images | head -1 && docker images | grep opnfv/qtip
+ image_tags=($(docker images | grep opnfv/qtip | awk '{print $2}'))
+ for tag in "${image_tags[@]}"; do
+ echo "Removing docker image opnfv/qtip:$tag..."
+ docker rmi opnfv/qtip:$tag
+ done
+ fi
- builder:
name: qtip-fetch-os-cred
builders:
- shell: |
-
+ #!/bin/bash
echo $HOME
echo $WORKSPACE