diff --git a/jjb/pipeline/tost-deploy.groovy b/jjb/pipeline/tost-deploy.groovy
new file mode 100644
index 0000000..42961ff
--- /dev/null
+++ b/jjb/pipeline/tost-deploy.groovy
@@ -0,0 +1,108 @@
+pipeline {
+    agent {
+        docker {
+            image 'ubuntu:18.04'
+            args '-u root:sudo'
+        }
+    }
+    environment {
+        KUBECONFIG = credentials("${params.k8s_config}")
+    }
+    stages {
+        stage('Install tools') {
+            steps {
+                sh '''
+                set -x
+                apt-get update -y
+                apt-get install -y curl wget jq git
+
+                # Install kubectl
+                curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.18.0/bin/linux/amd64/kubectl"
+                chmod +x ./kubectl
+                mv ./kubectl /usr/local/bin/kubectl
+
+                # Test Kubectl & Rancher
+                kubectl get nodes
+                '''
+            }
+        }
+        stage('Parallel Stage') {
+            parallel {
+                stage('onos') {
+                    steps {
+                        sh(script: "date -u")
+                        build(job: "${params.job_name}-onos")
+                    }
+                }
+                stage('stratum') {
+                    steps {
+                        sh(script: "date -u")
+                        build(job: "${params.job_name}-stratum")
+                    }
+                }
+                stage('telegraf') {
+                    steps {
+                        sh(script: "date -u")
+                        build(job: "${params.job_name}-telegraf")
+                    }
+                }
+            }
+        }
+        stage('E2E Testing') {
+            options {
+                timeout(time: 120, unit: "SECONDS")
+            }
+            steps {
+                sh """
+                echo ${params.target_server}
+                timestamp=\$(date +%s)
+                if [ ! -z "${params.target_server}" ]; then
+                    kubectl delete --wait=true ds -l test=e2e || true
+cat <<EOF > test.yaml
+apiVersion: apps/v1
+kind: DaemonSet
+metadata:
+  name: ping-test-\${timestamp}
+  labels:
+    test: e2e-\${timestamp}
+spec:
+  selector:
+    matchLabels:
+      test: e2e-\${timestamp}
+  template:
+    metadata:
+      labels:
+        test: e2e-\${timestamp}
+    spec:
+      hostNetwork: true
+      terminationGracePeriodSeconds: 5
+      initContainers:
+      - name: ping-test
+        image: alpine:3.12.0
+        command: ["sh", "-c", "until ping  ${params.target_server} -c1 -W 4; do echo 'ping retry'; sleep 3; done;"]
+      containers:
+      - name: ping-test-wait
+        image: alpine:3.12.0
+        command: ["sh", "-c", "sleep 100000"]
+      restartPolicy: Always
+EOF
+                    kubectl apply -f test.yaml
+                    number=\$(kubectl get --no-headers ds -ltest=e2e-\${timestamp} -o custom-columns=':.status.desiredNumberScheduled')
+                    echo "\${number}"
+                    until [ \${number} -eq \$(kubectl get pods -l test=e2e-\${timestamp} --no-headers  -o custom-columns=':.status.phase' | grep Running | wc -l) ]; do echo 'wait ping completed'; sleep 5; done;
+                fi
+                """
+             }
+        }
+    }
+    post {
+        always {
+            sh """
+            if [ ! -z "${params.target_server}" ]; then
+                kubectl delete -f test.yaml
+            fi
+            """
+            cleanWs()
+        }
+    }
+}
