diff --git a/kubernetes/kubernetes-launch.sh b/kubernetes/kubernetes-launch.sh
new file mode 100644
index 0000000..c6ea4bd
--- /dev/null
+++ b/kubernetes/kubernetes-launch.sh
@@ -0,0 +1,181 @@
+#!/bin/bash
+###############################################################################
+#
+# Script used to assist in launching Kubernetes jobs/pods. Expects to be used
+# as an supplemental script to the build-setup.sh script as such will use some
+# of the variables it expects to carry over from that script.
+#
+###############################################################################
+#
+# Requirements:
+#  - Docker login credentials defined inside ~/.docker/config.json
+#  - Kubectl installed and configured on machine running the script
+#  - Access to a Kubernetes Cluster using v1.5.2 or newer
+#  - NFS directories for OpenBMC repo cache, BitBake shared state cache, and
+#    shared Jenkins home directory that holds workspaces.
+#  - All NFS directories should have RWX permissions for user being used to run
+#    the build-setup.sh script
+#  - Persistent Volume and Claims created and mounted to NFS directories
+#  - Image pull secret exists for image pulls in Kubernetes cluster namespace
+#
+###############################################################################
+# Variables used to create Kubernetes Job:
+#  namespace    = the namespace to be used within the Kubernetes cluster
+#  hclaim       = name of the Jenkins slave home PVC on Kubernetes cluster
+#  sclaim       = name of the shared state cache PVC on Kubernetes cluster
+#  oclaim       = name of OpenBMC cache repo PVC on the Kubernetes cluster
+#  registry     = the registry to use to pull and push images
+#  imgplsec     = the image pull secret used to access registry if needed
+#  timeout      = the amount of time in seconds that the build will wait for
+#                 the pod to start running on the cluster
+#  imgname      = the name the image will be given when built, must include
+#                 the repo in name for the push command to work.
+#  podname      = the name of the pod, will be needed to trace down the logs
+#
+###############################################################################
+
+# Kubernetes Variables
+namespace=${namespace:-openbmc}
+hclaim=${hclaim:-jenkins}
+sclaim=${sclaim:-shared-state-cache}
+oclaim=${oclaim:-openbmc-reference-repo}
+imgrepo=${imgrepo:-master.cfc:8500/openbmc/}
+imgplsec=${imgplsec:-regkey}
+timeout=${timeout:-60}
+
+# Give the Docker image and the pod a name
+imgname=${imgname:-${imgrepo}${distro}:${imgtag}-${ARCH}}
+podname=${podname:-openbmc${BUILD_ID}-${target}-builder}
+
+# Build the Docker image, using the Dockerfile carried from build-setup.sh
+docker build -t ${imgname} - <<< "${Dockerfile}"
+
+# Push the image that was built to the image repository
+docker push ${imgname}
+
+if [[ "${launch}" == "pod" ]]; then
+  yamlfile=$(cat << EOF
+  apiVersion: v1
+  kind: Pod
+  metadata:
+    name: ${podname}
+    namespace: ${namespace}
+  spec:
+    nodeSelector:
+      worker: "true"
+      arch: ${ARCH}
+    volumes:
+    - name: home
+      persistentVolumeClaim:
+        claimName: ${hclaim}
+    - name: sscdir
+      persistentVolumeClaim:
+        claimName: ${sclaim}
+    - name: obmccache
+      persistentVolumeClaim:
+        claimName: ${oclaim}
+    hostNetwork: True
+    containers:
+    - image: ${imgname}
+      name: builder
+      command: ["${WORKSPACE}/build.sh"]
+      workingDir: ${HOME}
+      env:
+      - name: WORKSPACE
+        value: ${WORKSPACE}
+      - name: obmcdir
+        value: ${obmcdir}
+      securityContext:
+        capabilities:
+          add:
+          - SYS_ADMIN
+      volumeMounts:
+      - name: home
+        mountPath: ${HOME}
+      - name: sscdir
+        mountPath: ${sscdir}
+      - name: obmccache
+        mountPath: ${ocache}
+    imagePullSecrets:
+    - name: ${imgplsec}
+EOF
+)
+
+elif [[ "${launch}" == "job" ]]; then
+  yamlfile=$(cat << EOF
+  apiVersion: batch/v1
+  kind: Job
+  metadata:
+    name: openbmc${BUILD_ID}-${target}
+    namespace: ${namespace}
+    labels:
+      app: openbmc
+      stage: build
+  spec:
+    template:
+      metadata:
+        name: ${podname}
+        labels:
+          target: ${target}
+      spec:
+        nodeSelector:
+          worker: "true"
+          arch: ${ARCH}
+        volumes:
+        - name: home
+          persistentVolumeClaim:
+            claimName: ${hclaim}
+        - name: sscdir
+          persistentVolumeClaim:
+            claimName: ${sclaim}
+        - name: obmccache
+          persistentVolumeClaim:
+            claimName: ${oclaim}
+        restartPolicy: Never
+        hostNetwork: True
+        containers:
+        - image: ${imgname}
+          name: builder
+          command: ["${WORKSPACE}/build.sh"]
+          workingDir: ${HOME}
+          env:
+          - name: WORKSPACE
+            value: ${WORKSPACE}
+          - name: obmcdir
+            value: ${obmcdir}
+          securityContext:
+            capabilities:
+              add:
+              - SYS_ADMIN
+          volumeMounts:
+          - name: home
+            mountPath: ${HOME}
+          - name: sscdir
+            mountPath: ${sscdir}
+          - name: obmccache
+            mountPath: ${ocache}
+        imagePullSecrets:
+        - name: ${imgplsec}
+EOF
+)
+fi
+
+kubectl create -f - <<< "${yamlfile}"
+
+# Wait for Pod to be running before tailing log file
+while [ -z "$(kubectl describe pod ${podname} -n ${namespace} | grep Status: | grep Running)" ]; do
+  if [ ${timeout} -lt 0 ];then
+    kubectl delete -f - <<< "${yamlfile}"
+    echo "Timeout Occured: Job failed to start running in time"
+    exit 1
+  else
+    sleep 1
+    let timeout-=1
+  fi
+done
+
+# Once pod is running track logs
+kubectl logs -f ${podname} -n ${namespace}
+
+# When job is completed wipe the job
+kubectl delete -f - <<< "${yamlfile}"
\ No newline at end of file
