diff --git a/scripts/wait_for_pods.sh b/scripts/wait_for_pods.sh
new file mode 100644
index 0000000..6d58010
--- /dev/null
+++ b/scripts/wait_for_pods.sh
@@ -0,0 +1,116 @@
+#!/usr/bin/env bash
+
+# Copyright 2018-present Open Networking Foundation
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+# wait_for_pods.sh
+# waits for all kubernetes pods to complete before exiting, optionally only
+# pods in a specific namespace passed as first argument
+# inspired by similar scripts in Kolla-Kubernetes and Openstack Helm
+
+set -e -o pipefail
+fail_wfp=0
+
+# Set these to configure maximum timeout, and interval for checks
+PODS_TIMEOUT=${PODS_TIMEOUT:-600}
+CHECK_INTERVAL=${CHECK_INTERVAL:-5}
+KUBECTL_ARGS=${KUBECTL_ARGS:-}
+
+# use namespace if passed as first arg, or "all" for all namespaces
+if [ ! -z "$1" ]
+then
+  if [[ "$1" == "all" ]]
+  then
+    KUBECTL_ARGS+=" --all-namespaces"
+  else
+    KUBECTL_ARGS+=" --namespace=$1"
+  fi
+fi
+set -u
+
+# calculate timeout time
+START_TIME=$(date +%s)
+END_TIME=$((START_TIME + PODS_TIMEOUT))
+
+echo "wait_for_pods.sh - Waiting up to ${PODS_TIMEOUT} seconds for all Kubernetes pods to be ready"
+echo "Number printed is number of jobs/pods/containers waiting to be ready"
+
+prev_total_unready=0
+
+while true; do
+  NOW=$(date +%s)
+
+  # handle timeout without completion
+  if [ "$NOW" -gt "$END_TIME" ]
+  then
+    echo "Pods/Containers/Jobs not ready before timeout of ${PODS_TIMEOUT} seconds"
+    fail_wfp=1
+    break
+  fi
+
+  # get list of uncompleted items with jsonpath, then count them with wc
+  # ref: https://kubernetes.io/docs/reference/kubectl/jsonpath/
+  # jsonpath is picky about string vs comparison quoting, so may need to
+  # disable SC2026 for these lines. SC2086 allows for multiple args.
+
+  # shellcheck disable=SC2026,SC2086
+  pending_pods=$(kubectl get pods ${KUBECTL_ARGS} -o=jsonpath='{range .items[?(@.status.phase=="Pending")]}{.metadata.name}{"\n"}{end}')
+  # check for empty string before counting lines, echo adds a newline
+  if [ -z "$pending_pods" ]; then
+    pending_pod_count=0
+  else
+    pending_pod_count=$( echo "$pending_pods" | wc -l)
+  fi
+
+  # shellcheck disable=SC2026,SC2086
+  unready_containers=$(kubectl get pods ${KUBECTL_ARGS} -o=jsonpath='{range .items[?(@.status.phase=="Running")]}{range .status.containerStatuses[?(@.ready==false)]}{.name}: {.ready}{"\n"}{end}{end}')
+  if [ -z "$unready_containers" ]; then
+    unready_container_count=0
+  else
+    unready_container_count=$(echo "$unready_containers" | wc -l)
+  fi
+
+  # shellcheck disable=SC2026,SC2086
+  active_jobs=$(kubectl get jobs $KUBECTL_ARGS -o=jsonpath='{range .items[?(@.status.active=='1')]}{.metadata.name}{"\n"}{end}')
+  if [ -z "$active_jobs" ]; then
+    active_job_count=0
+  else
+    active_job_count=$(echo "$active_jobs" | wc -l)
+  fi
+
+  total_unready=$((pending_pod_count + unready_container_count + active_job_count))
+
+  # if everything is ready, print runtime and break
+  if [ "$total_unready" -eq 0 ]
+  then
+    runtime=$((NOW - START_TIME))
+    echo ""
+    echo "All pods ready in $runtime seconds"
+    break
+  fi
+
+  # deal with changes in number of jobs
+  if [ "$total_unready" -ne "$prev_total_unready" ]
+  then
+    echo ""
+    echo "Change in unready pods - Pending Pods: $pending_pod_count, Unready Containers: $unready_container_count, Active Jobs: $active_job_count"
+  fi
+  prev_total_unready=$total_unready
+
+  # print number of unready pods every $CHECK_INTERVAL
+  echo -n "$total_unready "
+  sleep "$CHECK_INTERVAL"
+done
+
+exit ${fail_wfp}
