diff --git a/tools/run_tests/stress_test/run_client.py b/tools/gcp/stress_test/run_client.py
similarity index 100%
rename from tools/run_tests/stress_test/run_client.py
rename to tools/gcp/stress_test/run_client.py
diff --git a/tools/run_tests/stress_test/run_server.py b/tools/gcp/stress_test/run_server.py
similarity index 100%
rename from tools/run_tests/stress_test/run_server.py
rename to tools/gcp/stress_test/run_server.py
diff --git a/tools/run_tests/stress_test/stress_test_utils.py b/tools/gcp/stress_test/stress_test_utils.py
similarity index 99%
rename from tools/run_tests/stress_test/stress_test_utils.py
rename to tools/gcp/stress_test/stress_test_utils.py
index 7adc0068f9ac211c38533aed5b99605caea2abba..c4b437e3459daf0d5314f21ac26caf4d37095e6f 100755
--- a/tools/run_tests/stress_test/stress_test_utils.py
+++ b/tools/gcp/stress_test/stress_test_utils.py
@@ -39,7 +39,7 @@ import time
 
 # Import big_query_utils module
 bq_utils_dir = os.path.abspath(os.path.join(
-    os.path.dirname(__file__), '../../big_query'))
+    os.path.dirname(__file__), '../utils'))
 sys.path.append(bq_utils_dir)
 import big_query_utils as bq_utils
 
diff --git a/tools/big_query/big_query_utils.py b/tools/gcp/utils/big_query_utils.py
similarity index 100%
rename from tools/big_query/big_query_utils.py
rename to tools/gcp/utils/big_query_utils.py
diff --git a/tools/gke/kubernetes_api.py b/tools/gcp/utils/kubernetes_api.py
similarity index 100%
rename from tools/gke/kubernetes_api.py
rename to tools/gcp/utils/kubernetes_api.py
diff --git a/tools/jenkins/build_interop_stress_image.sh b/tools/jenkins/build_interop_stress_image.sh
index 4c8e998a8a8da30d985dedd5b6641162f4c3e5c8..501dc5b7ca4a41ff801c5bf6550426b652adb8e2 100755
--- a/tools/jenkins/build_interop_stress_image.sh
+++ b/tools/jenkins/build_interop_stress_image.sh
@@ -79,7 +79,7 @@ CONTAINER_NAME="build_${BASE_NAME}_$(uuidgen)"
   $BASE_IMAGE \
   bash -l /var/local/jenkins/grpc/tools/dockerfile/$BASE_NAME/build_interop_stress.sh \
   && docker commit $CONTAINER_NAME $INTEROP_IMAGE \
-  && ( if [ -n $INTEROP_IMAGE_REPOSITORY_TAG ]; then docker tag $INTEROP_IMAGE $INTEROP_IMAGE_REPOSITORY_TAG ; fi ) \
+  && ( if [ -n "$INTEROP_IMAGE_REPOSITORY_TAG" ]; then docker tag -f $INTEROP_IMAGE $INTEROP_IMAGE_REPOSITORY_TAG ; fi ) \
   && echo "Successfully built image $INTEROP_IMAGE")
 EXITCODE=$?
 
diff --git a/tools/gke/run_stress_tests_on_gke.py b/tools/run_tests/stress_test/run_stress_tests_on_gke.py
similarity index 98%
rename from tools/gke/run_stress_tests_on_gke.py
rename to tools/run_tests/stress_test/run_stress_tests_on_gke.py
index d126e3db439936bce5f0e4acb556e97e195d1100..634eb1aca53265dc4fe6f2842f089d86c21b71bb 100755
--- a/tools/gke/run_stress_tests_on_gke.py
+++ b/tools/run_tests/stress_test/run_stress_tests_on_gke.py
@@ -35,14 +35,18 @@ import sys
 import time
 
 stress_test_utils_dir = os.path.abspath(os.path.join(
-    os.path.dirname(__file__), '../run_tests/stress_test'))
+    os.path.dirname(__file__), '../../gcp/stress_test'))
 sys.path.append(stress_test_utils_dir)
 from stress_test_utils import BigQueryHelper
 
+kubernetes_api_dir = os.path.abspath(os.path.join(
+    os.path.dirname(__file__), '../../gcp/utils'))
+sys.path.append(kubernetes_api_dir)
+
 import kubernetes_api
 
 _GRPC_ROOT = os.path.abspath(os.path.join(
-    os.path.dirname(sys.argv[0]), '../..'))
+    os.path.dirname(sys.argv[0]), '../../..'))
 os.chdir(_GRPC_ROOT)
 
 # num of seconds to wait for the GKE image to start and warmup
@@ -214,9 +218,7 @@ def _launch_server(gke_settings, stress_server_settings, bq_settings,
 
   # This is the wrapper script that is run in the container. This script runs
   # the actual stress test server
-  server_cmd_list = [
-      '/var/local/git/grpc/tools/run_tests/stress_test/run_server.py'
-  ]
+  server_cmd_list = ['/var/local/git/grpc/tools/gcp/stress_test/run_server.py']
 
   # run_server.py does not take any args from the command line. The args are
   # instead passed via environment variables (see server_env below)
@@ -269,9 +271,7 @@ def _launch_client(gke_settings, stress_server_settings, stress_client_settings,
 
   # This is the wrapper script that is run in the container. This script runs
   # the actual stress client
-  client_cmd_list = [
-      '/var/local/git/grpc/tools/run_tests/stress_test/run_client.py'
-  ]
+  client_cmd_list = ['/var/local/git/grpc/tools/gcp/stress_test/run_client.py']
 
   # run_client.py takes no args. All args are passed as env variables (see
   # client_env)