CORD-3058 adding kubespray install script test
Change-Id: Icd1ec03cda393bb84ca81f88a4855916c0fecfa4
diff --git a/jjb/k8install.yaml b/jjb/k8install.yaml
new file mode 100644
index 0000000..b35b41d
--- /dev/null
+++ b/jjb/k8install.yaml
@@ -0,0 +1,60 @@
+---
+# kubespray installation validation job
+
+- project:
+ name: kubespray-install-test
+
+ project-name: '{name}'
+
+ jobs:
+ - 'k8-install'
+
+- job-template:
+ id: 'k8-install'
+ name: 'k8-install'
+
+ description: |
+ <!-- Managed by Jenkins Job Builder -->
+ Created by {id} job-template from ci-management/jjb/k8install.yaml <br /><br />
+ Validation job for kubespray installation script provided to users/operators
+
+ properties:
+ - cord-infra-properties:
+ build-days-to-keep: '{build-days-to-keep}'
+ artifact-num-to-keep: '{artifact-num-to-keep}'
+
+ wrappers:
+ - lf-infra-wrappers:
+ build-timeout: '{build-timeout}'
+ jenkins-ssh-credential: '{jenkins-ssh-credential}'
+
+ parameters:
+ - string:
+ name: executorNode
+ default: 'qa-testvm-pod'
+ description: 'Name of the Jenkins node to run the job on'
+
+ - string:
+ name: branch
+ default: 'master'
+ description: 'Name of the repo branch to use'
+
+ - string:
+ name: configRepoUrl
+ default: 'https://gerrit.opencord.org/pod-configs'
+ description: 'The URL of the POD configs repository'
+
+ - string:
+ name: configRepoBaseDir
+ default: 'pod-configs/'
+ description: 'The directory inside the POD configs repository'
+
+ - string:
+ name: configRepoFile
+ default: 'kubernetes-configs/flex-onf-pod1.yml'
+ description: 'The deployment config file'
+
+ project-type: pipeline
+ concurrent: false
+
+ dsl: !include-raw-escape: pipeline/kubespray-install.groovy
diff --git a/jjb/pipeline/kubespray-install.groovy b/jjb/pipeline/kubespray-install.groovy
new file mode 100644
index 0000000..676f514
--- /dev/null
+++ b/jjb/pipeline/kubespray-install.groovy
@@ -0,0 +1,52 @@
+/*kubespray installation script test*/
+
+pipeline {
+
+ /* no label, executor is determined by JJB */
+ agent {
+ label "${params.executorNode}"
+ }
+ stages {
+
+ stage ("Parse deployment configuration file") {
+ steps {
+ sh returnStdout: true, script: 'rm -rf ${configRepoBaseDir}'
+ sh returnStdout: true, script: 'git clone -b ${branch} ${configRepoUrl}'
+ script { deployment_config = readYaml file: "${configRepoBaseDir}${configRepoFile}" }
+ }
+ }
+
+ stage ('Checkout Automation-Tools Repo') {
+ steps {
+ sh '''
+ pushd $WORKSPACE
+ git clone https://gerrit.opencord.org/automation-tools
+ popd
+ '''
+ }
+ }
+
+ stage ('Install Kubespray on Nodes') {
+ steps {
+ sh '''
+ pushd $WORKSPACE/automation-tools/kubespray-installer
+ ./setup.sh -i flex-onf-pod1 ${deployment_config.node1.ip} ${deployment_config.node2.ip} ${deployment_config.node3.ip}
+ popd
+ '''
+ }
+ }
+
+ stage ('Validate Kube Config File') {
+ steps {
+ sh '''
+ pushd $WORKSPACE/automation-tools/kubespray-installer/configs
+ #Validate the conf file
+ export KUBECONFIG=$WORKSPACE/automation-tools/kubespray-installer/configs${deployment_config.pod_config}
+ kubectl get pods
+ popd
+ '''
+ }
+ }
+ }
+
+}