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
+            '''
+            }
+        }
+    }
+
+}