diff --git a/build-jenkins.sh b/build-jenkins.sh
index 91f032e..9d41bc9 100755
--- a/build-jenkins.sh
+++ b/build-jenkins.sh
@@ -1,56 +1,65 @@
 #!/bin/bash
 ################################################################################
+#
 # Script used to create a Jenkins master that can run amd64 or ppc64le. It can
 # be used to launch the Jenkins master as a Docker container locally or as a
 # Kubernetes Deployment in a Kubernetes cluster.
+#
 ################################################################################
-# Launch Variables:
-#  These variables are used to determine how the master will be launched
-#  workspace          The directory that hold files used to deploy the Jenkins
-#                     master
-#                     Default: "${HOME}/jenkins-build-${RANDOM}"
-#  launch             Method in which the container will be launched, either as
-#                     a Docker container launched via Docker or by using a
-#                     helper script to launch into Kubernetes (docker or k8s)
-#                     Default: "docker"
-#  home_mnt           The directory on the host used as the Jenkins home
+#
+# Script Variables:
+#  build_scripts_dir  The path of the openbmc-build-scripts directory.
+#                     Default: The directory containing this script
+#  workspace          The directory that holds files used to build the Jenkins
+#                     master master image and volumes used to deploy it.
+#                     Default: "~/jenkins-build-${RANDOM}"
+#
+# Jenkins Dockerfile Variables:
+#  agent_port         The port used as the Jenkins slave agent port.
+#                     Default: "50000"
+#  http_port          The port used as Jenkins UI port.
+#                     Default: "8080"
+#  img_tag            The tag of the OpenJDK image used as the base image.
+#                     Default: "/8-jdk"
+#  j_vrsn             The version of the Jenkins war file you wish to use.
+#                     Default: "2.60.3"
+#  j_user             Username tag the container will use to run Jenkins.
+#                     Default: "jenkins"
+#  j_group            Group name tag the container will use to run Jenkins.
+#                     Default: "jenkins"
+#  j_uid              Jenkins user ID the container will use to run Jenkins.
+#                     Default: "1000"
+#  j_gif              Jenkins group ID the container will use to run Jenkins.
+#                     Default: "1000"
+#  j_home             Directory used as the Jenkins Home in the container.
+#                     Default: "/var/jenkins_home"
+#  out_img            The name given to the Docker image when it is built.
+#                     Default: "openbmc/jenkins-master-${ARCH}:${JENKINS_VRSN}"
+#  tini_vrsn          The version of Tini to use in the Dockerfile, 0.16.1 is
+#                     the first release with ppc64le release support.
+#                     Default: "0.16.1"
+#
+# Deployment Variables:
+#  cont_import_mnt    The directory on the container used to import extra files.
+#                     Default: "/mnt/jenkins_import", ignored if above not set
+#  home_mnt           The directory on the host used as the Jenkins home.
 #                     Default: "${WORKSPACE}/jenkins_home"
-#  host_import_mnt    The directory on the host used to import extra files
-#                     Default: "", variable ignored by default
-#  cont_import_mnt    The directory on the container used to import extra files
-#                     Default: "/mnt/jenkins_import", will be ignored by default
+#  host_import_mnt    The directory on the host used to import extra files.
+#                     Default: "", import mount is ignored if not set
 #  jenkins_options    What will be passed as the environment variable for the
 #                     JENKINS_OPTS environment variable.
 #                     Default: "--prefix=/jenkins"
 #  java_options       What will be passed as the environment variable for the
 #                     JAVA_OPTS environment variable.
 #                     Default: "-Xmx4096m"
-# Build Variables:
-#  img_tag            The tag for the OpenJDK image used to build the Dockerfile
-#                     Default: "/8-jdk"
-#  tini_vrsn          The version of Tini to use in the dockerfile, 0.16.1 is
-#                     the first release with ppc64le release support
-#                     Default: "0.16.1"
-#  j_vrsn             The version of the Jenkins war file you wish to use
-#                     Default: "2.60.3"
-#  j_user             Username tag the container will use to run Jenkins
-#                     Default: "jenkins"
-#  j_group            Group name tag the container will use to run Jenkins
-#                     Default: "jenkins"
-#  j_uid              Jenkins user ID the container will use to run Jenkins
-#                     Default: "1000"
-#  j_gif              Jenkins group ID the container will use to run Jenkins
-#                     Default: "1000"
-#  j_home             Directory used as the Jenkins Home in the container
-#                     Default: "/var/jenkins_home"
-#  http_port          The port used as Jenkins UI port
-#                     Default: "8080"
-#  agent_port         The port used as the Jenkins slave agent port
-#                     Default: "50000"
-#  out_img            The name given to the Docker image when it is built
-#                     Default: "openbmc/jenkins-master-${ARCH}:${JENKINS_VRSN}"
+#  launch             docker|k8s
+#                     Method in which the container will be launched. Either as
+#                     a Docker container launched via Docker, or by using a
+#                     helper script to launch into a Kubernetes cluster.
+#                     Default: "docker"
 #
 ################################################################################
+build_scripts_dir=${build_scripts_dir:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"}
 
 set -xeo pipefail
 ARCH=$(uname -m)
@@ -251,5 +260,5 @@
   # launch using the k8s template
   echo "Not yet Implemented"
   exit 1
-  source ./kubernetes/kubernetes-launch.sh Build-Jenkins false false
+  source ${build_scripts_dir}/kubernetes/kubernetes-launch.sh Build-Jenkins false false
 fi
diff --git a/build-setup.sh b/build-setup.sh
index 09d87df..6ec337c 100755
--- a/build-setup.sh
+++ b/build-setup.sh
@@ -6,41 +6,55 @@
 #
 ###############################################################################
 #
-# Variables used for Jenkins build job matrix:
-#  target       = barreleye|palmetto|witherspoon|firestone|garrison|evb-ast2500
-#                 zaius|romulus|qemu
-#  distro       = fedora|ubuntu
-#  imgtag       = Varies by distro. latest|16.04|14.04|trusty|xenial; 23|24|25
-#  obmcext      = Path of the OpenBMC repo directory used in creating a copy
-#                 inside the container that is not mounted to external storage
-#                 default directory location "${WORKSPACE}/openbmc"
-#  builddir     = Path of the OpenBMC directory where the build occurs inside
-#                 the container, cannot be placed on external storage default
-#                 directory location "/tmp/openbmc"
-#  sscdir       = Path of the BitBake shared-state cache directoy, will default
-#                 to directory "/home/${USER}", used to speed up builds.
-#  WORKSPACE    = Path of the workspace directory where some intermediate files
-#                 and the images will be saved to.
+# Script Variables:
+#  build_scripts_dir  The path of the openbmc-build-scripts directory.
+#                     Default: The directory containing this script
+#  http_proxy         The HTTP address of the proxy server to connect to.
+#                     Default: "", proxy is not setup if this is not set
+#  WORKSPACE          Path of the workspace directory where some intermediate
+#                     files and the images will be saved to.
+#                     Default: "~/{RandomNumber}"
 #
-#  extraction   = Path where the ombcdir contents will be copied out to when
-#                 the build completes. Defaults to ${obmcext}/build/tmp.
+# Docker Image Build Variables:
+#  BITBAKE_OPTS       Set to "-c populate_sdk" or whatever other bitbake options
+#                     you'd like to pass into the build.
+#                     Default: "", no options set
+#  builddir           Path where the actual bitbake build occurs in inside the
+#                     container, path cannot be located on network storage.
+#                     Default: "/tmp/openbmc"
+#  distro             The distro used as the base image for the build image:
+#                     fedora|ubuntu
+#                     Default: "ubuntu"
+#  imgname            The name given to the target build's docker image.
+#                     Default: "openbmc/${distro}:${imgtag}-${target}-${ARCH}"
+#  imgtag             The base docker image distro tag:
+#                     ubuntu: latest|16.04|14.04|trusty|xenial
+#                     fedora: 23|24|25
+#                     Default: "latest"
+#  target             The target we aim to build:
+#                     barreleye|evb-ast2500|firestone|garrison|palmetto|qemu
+#                     romulus|witherspoon|zaius
+#                     Default: "qemu"
 #
-# Optional Variables:
-#  launch       = job|pod
-#                 Can be left blank to launch via Docker if not using
-#                 Kubernetes to launch the container.
-#                 Job lets you keep a copy of job and container logs on the
-#                 api, can be useful if not using Jenkins as you can run the
-#                 job again via the api without needing this script.
-#                 Pod launches a container which runs to completion without
-#                 saving anything to the api when it completes.
-#  imgname      = Defaults to a relatively long but descriptive name, can be
-#                 changed or passed to give a specific name to created image.
-#  http_proxy   = The HTTP address for the proxy server you wish to connect to.
-#  BITBAKE_OPTS = Set to "-c populate_sdk" or whatever other bitbake options
-#                 you'd like to pass into the build.
+# Deployment Variables:
+#  extraction         Path where the ombcdir contents will be copied out to when
+#                     the build completes.
+#                     Default: "${obmcext}/build/tmp"
+#  launch             ""|job|pod
+#                     Can be left blank to launch the container via Docker
+#                     Job lets you keep a copy of job and container logs on the
+#                     api, can be useful if not using Jenkins as you can run the
+#                     job again via the api without needing this script.
+#                     Pod launches a container which runs to completion without
+#                     saving anything to the api when it completes.
+#  obmcext            Path of the OpenBMC repo directory used as a reference
+#                     for the build inside the container.
+#                     Default: "${WORKSPACE}/openbmc"
+#  sscdir             Path to use as the BitBake shared-state cache directory.
+#                     Default: "/home/${USER}"
 #
 ###############################################################################
+build_scripts_dir=${build_scripts_dir:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"}
 
 # Trace bash processing. Set -e so when a step fails, we fail the build
 set -xeo pipefail
@@ -330,7 +344,7 @@
 elif [[ "${launch}" == "job" || "${launch}" == "pod" ]]; then
 
   # Source and run the helper script to launch the pod or job
-  . ./kubernetes/kubernetes-launch.sh OpenBMC-build true true
+  . ${build_scripts_dir}/kubernetes/kubernetes-launch.sh OpenBMC-build true true
 
 else
   echo "Launch Parameter is invalid"
diff --git a/kubernetes/kubernetes-launch.sh b/kubernetes/kubernetes-launch.sh
index 1273af1..3917a92 100755
--- a/kubernetes/kubernetes-launch.sh
+++ b/kubernetes/kubernetes-launch.sh
@@ -19,38 +19,55 @@
 #  - 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
-#  registry     = the registry to use to pull and push images
-#  imgplsec     = the image pull secret used to access registry if needed
-#  jobtimeout   = the amount of time in seconds that the build will wait for
-#                 the job to be created in the api of the cluster.
-#  podtimeout   = 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 that will be passed to the kubernetes api
-#                 to build the containers. The image with the tag imgname will
-#                 be built in the invoker script. This script will then tag it
-#                 to include the registry in the name, push it, and update the
-#                 imgname to be what was pushed to the registry. Users should
-#                 not include the registry in the original imgname.
-#  podname      = the name of the pod, will be needed to trace down the logs
+# Script Variables:
+#  build_scripts_dir  The path for the openbmc-build-scripts directory.
+#                     Default: The parent directory containing this script
+#
+# Kubernetes Variables:
+#  imgplsec           The image pull secret used to access registry if needed
+#                     Default: "regkey"
+#  imgrepo            The registry to use to pull and push images
+#                     Default: "master.cfc:8500/openbmc/""
+#  jobtimeout         The amount of time in seconds that the build will wait for
+#                     the job to be created in the api of the cluster.
+#                     Default: "60"
+#  namespace          The namespace to be used within the Kubernetes cluster
+#                     Default: "openbmc"
+#  podtimeout         The amount of time in seconds that the build will wait for
+#                     the pod to start running on the cluster.
+#                     Default: "600"
+#
+# YAML File Variables (No Defaults):
+#  imgname            The name the image that will be passed to the kubernetes
+#                     api to build the containers. The image with the tag
+#                     imgname will be built in the invoker script. This script
+#                     will then tag it to include the registry in the name, push
+#                     it, and update the imgname to be what was pushed to the
+#                     registry. Users should not include the registry in the
+#                     original imgname.
+#  podname            The name of the pod, needed to trace down the logs.
+#
+# Deployment Option Variables (No Defaults):
+#  invoker            Name of what this script is being called by or for, used
+#                     to determine the template to use for YAML file.
+#  launch             Used to determine the template used for the YAML file,
+#                     normally carried in by sourcing this script in another
+#                     script that has declared it.
+#  log                If set to true the script will tail the container logs
+#                     as part of the bash script.
+#  purge              If set to true it will delete the created object once this
+#                     script ends.
+#  workaround         Used to enable the logging workaround, when set will
+#                     launch a modified template that waits for a command. In
+#                     most cases it will be waiting to have a script run via
+#                     kubectl exec. Required when using a version of Kubernetes
+#                     that has known issues that impact the retrieval of
+#                     container logs when using kubectl. Defaulting to be true
+#                     whenever logging is enabled until ICP upgrades their
+#                     Kubernetes version to a version that doesn't need this.
 #
 ###############################################################################
-# Variables that act as script options:
-#  invoker      = name of what this script is being called by or for, used to
-#                 determine the template to use for YAML file
-#  log          = set to true to make the script tail the container logs of pod
-#  purge        = set to true delete the created object once script completes
-#  launch       = used to determine the template for YAML file, Usually brought
-#                 in by sourcing from another script but can be declared
-#  workaround   = Used to enable the logging workaround, when set will launch a
-#                 modified template that waits for a command. In most cases it
-#                 will be waiting to have a script run via kubectl exec. Needed
-#                 when using a version of Kubernetes that has known issues that
-#                 impact the retrieval of container logs when using kubectl.
-#                 Defaulting to be true whenever logging is enabled until ICP
-#                 upgrades their Kubernetes version.
-###############################################################################
+build_scripts_dir=${build_scripts_dir:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )/.."}
 
 # Kubernetes Variables
 namespace=${namespace:-openbmc}
@@ -115,7 +132,7 @@
   extras+="-v2"
 fi
 
-yamlfile=$(eval "echo \"$(<./kubernetes/Templates/${invoker}-${launch}${extras}.yaml)\"")
+yamlfile=$(eval "echo \"$(<${build_scripts_dir}/kubernetes/Templates/${invoker}-${launch}${extras}.yaml)\"")
 kubectl create -f - <<< "${yamlfile}"
 
 # If launch is a job we have to find the podname with identifiers
diff --git a/qemu-build.sh b/qemu-build.sh
index 33a2a00..ea61393 100755
--- a/qemu-build.sh
+++ b/qemu-build.sh
@@ -6,29 +6,38 @@
 #
 ###############################################################################
 #
-# Variables used for in the build:
-#  WORKSPACE    = Path of the workspace directory where some intermediate files
-#                 and the images will be saved to.
-#  qemudir      = Path of the directory that holds the QEMU repo, if none
-#                 exists will clone in the OpenBMC/QEMU repo to WORKSPACE.
-#  builddir     = Path of the directory that is created within the docker
-#                 container where the build is actually done. Done this way to
-#                 allow external volumes to be used for the qemudir.
+# Script Variables:
+#  build_scripts_dir  The path of the openbmc-build-scripts directory.
+#                     Default: The directory containing this script
+#  http_proxy         The HTTP address of the proxy server to connect to.
+#                     Default: "", proxy is not setup if this is not set
+#  qemudir            Path of the directory that holds the QEMU repo, if none
+#                     exists will clone in the OpenBMC/QEMU repo to WORKSPACE.
+#                     Default: "${WORKSPACE}/qemu"
+#  WORKSPACE          Path of the workspace directory where some intermediate
+#                     files and the images will be saved to.
+#                     Default: "~/{RandomNumber}"
 #
-# Optional Variables:
-#  launch       = job|pod
-#                 Can be left blank to launch via Docker if not using
-#                 Kubernetes to launch the container.
-#                 Job lets you keep a copy of job and container logs on the
-#                 api, can be useful if not using Jenkins as you can run the
-#                 job again via the api without needing this script.
-#                 Pod launches a container which runs to completion without
-#                 saving anything to the api when it completes.
-#  imgname      = Defaults to qemu-build with the arch as its tag, can be
-#                 changed or passed to give a specific name to created image.
-#  http_proxy   = The HTTP address for the proxy server you wish to connect to.
+# Docker Image Build Variables:
+#  builddir           Path of the directory that is created within the docker
+#                     container where the build is actually done. Done this way
+#                     to allow NFS volumes to be used as the qemudir.
+#                     Default: "/tmp/qemu"
+#  imgname            Defaults to qemu-build with the arch as its tag, can be
+#                     changed or passed to give a specific name to created image
+#
+# Deployment Variables:
+#  launch             ""|job|pod
+#                     Leave blank to launch via Docker if not using kubernetes
+#                     to launch the container.
+#                     Job lets you keep a copy of job and container logs on the
+#                     api, can be useful if not using Jenkins as you can run the
+#                     job again via the api without needing this script.
+#                     Pod launches a container which runs to completion without
+#                     saving anything to the api when it completes.
 #
 ###############################################################################
+build_scripts_dir=${build_scripts_dir:-"$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"}
 
 # Trace bash processing
 set -x
@@ -160,9 +169,7 @@
       -t ${imgname} \
       ${WORKSPACE}/build.sh
 elif [[ "${launch}" == "pod" || "${launch}" == "job" ]]; then
-  . ./kubernetes/kubernetes-launch.sh QEMU-build true true
+  . ${build_scripts_dir}/kubernetes/kubernetes-launch.sh QEMU-build true true
 else
   echo "Launch Parameter is invalid"
 fi
-
-
