Files
my-rook-config/tests/pipeline/Jenkinsfile.k8sSetup
T
Divesh Angula f07b4cfa03 kubeadm join update for 1.8
- update default values for load test.

review changes
2017-11-01 15:26:34 -07:00

112 lines
4.9 KiB
Plaintext

// Jenkins Pipelines for setting up 3 node rook cluster
pipeline {
parameters {
choice(name: 'node', choices: 'gce-reg\ngce-load', description: 'select env to run tests in ')
choice(name: 'key', choices: 'master\nPR', description: 'Select master or a PR to run tests aganist - defaults to master')
string(name: 'PR', defaultValue: '', description: 'PR number, required if key value is set to PR')
string(name: 'version', defaultValue: '', description: 'Version to run tests against')
string(name: 'kube_version', defaultValue: 'v1.8.2', description: 'Version of kubernetes to tests against')
}
agent { label "${params.node}-master" }
options {
disableConcurrentBuilds()
timestamps()
}
stages {
stage('set up rook images') {
steps {
script {
if ( "${params.key}" == 'PR' ){
if ( "${params.PR}" == '' ){
echo '[FAILURE] Need A valid PR number to continue'
currentBuild.result = 'FAILURE'
error 'Exit pipeline need a pr number'
}
sh "wget -O rook.tar.gz https://release.rook.io/build/pr/${params.PR}/${params.version}/images/linux_amd64/rook.tar.gz"
sh "wget -O toolbox.tar.gz https://release.rook.io/build/pr/${params.PR}/${params.version}/images/linux_amd64/toolbox.tar.gz"
sh "wget -O version https://release.rook.io/build/pr/${params.PR}/${params.version}/version"
}else {
sh "wget -O rook.tar.gz https://release.rook.io/build/master/${params.version}/images/linux_amd64/rook.tar.gz"
sh "wget -O toolbox.tar.gz https://release.rook.io/build/master/${params.version}/images/linux_amd64/toolbox.tar.gz"
sh "wget -O version https://release.rook.io/build/master/${params.version}/version"
}
stash name: 'test-scripts',includes: 'tests/scripts/'
stash name: 'test-images', includes: 'rook.tar.gz,toolbox.tar.gz,version'
}
}
}
//start 3 node k8s cluster
stage ("Set Up k8s") {
steps{
script{
withEnv(["KUBE_VERSION=${env.kube_version}"]){
echo "setting up 3 node k8s ${env.kube_version} cluster"
setUpRookImages()
sh '''#!/bin/bash
echo " setting up master"
export KUBE_VERSION='''+ "${env.kube_version}" + '''
kubeadm_join_flags="$(tests/scripts/kubeadm.sh install master | grep '^ *kubeadm join' | sed 's/^ *kubeadm join //')"
echo ${kubeadm_join_flags} > ktoken'''
script{
token = readFile('ktoken').trim()
}
node("${params.node}-n1"){
unstash 'test-images'
setUpRookImages()
unstash 'test-scripts'
sh '''#!/bin/bash
echo " setting up node 1"
export KUBE_VERSION='''+ "${env.kube_version}" + '''
tests/scripts/kubeadm.sh install node ''' + "${token}"
}
node("${params.node}-n2"){
unstash 'test-images'
setUpRookImages()
unstash 'test-scripts'
sh '''#!/bin/bash
echo " setting up node 2"
export KUBE_VERSION='''+ "${env.kube_version}" + '''
tests/scripts/kubeadm.sh install node ''' + "${token}"
}
sh '''#!/bin/bash
export KUBECONFIG=$HOME/admin.conf
tests/scripts/kubeadm.sh wait 3'''
}
}
}
}
}
post {
always {
deleteDir()
}
}
}
def setUpRookImages(){
//tag rook images need for testing
env.versionId = readFile('version').trim()
sh'''
#!/bin/bash
docker load -i rook.tar.gz
docker load -i toolbox.tar.gz
docker images
rookImg=$(docker images |grep rook | awk '{print $1}')
echo $rookImg
toolboxImg=$(docker images |grep toolbox | awk '{print $1}')
echo $toolboxImg
echo "helm Image:"
echo ${versionId}
docker tag $rookImg rook/rook:master
docker tag $rookImg rook/rook:${versionId}
docker tag $toolboxImg rook/toolbox:master'''
}