diff --git a/.kokoro/pre-samples-test.sh b/.kokoro/pre-samples-test.sh
new file mode 100644
index 0000000000..a1ffa0cea3
--- /dev/null
+++ b/.kokoro/pre-samples-test.sh
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# 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
+#
+#     https://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.
+
+. .kokoro/setup-vars.sh
diff --git a/.kokoro/pre-system-test.sh b/.kokoro/pre-system-test.sh
index 00fafdf177..a1ffa0cea3 100755
--- a/.kokoro/pre-system-test.sh
+++ b/.kokoro/pre-system-test.sh
@@ -14,10 +14,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-# nodejs-storage's system tests require additional project and
-# system test key
-export GCN_STORAGE_2ND_PROJECT_ID=gcloud-node-whitelist-ci-tests
-export GCN_STORAGE_2ND_PROJECT_KEY=${KOKORO_GFILE_DIR}/no-whitelist-key.json
-
-export GOOGLE_CLOUD_KMS_KEY_ASIA="projects/long-door-651/locations/asia/keyRings/test-key-asia/cryptoKeys/test-key-asia"
-export GOOGLE_CLOUD_KMS_KEY_US="projects/long-door-651/locations/us/keyRings/test-key-us/cryptoKeys/test-key-us"
+. .kokoro/setup-vars.sh
diff --git a/.kokoro/sample_tests.cfg b/.kokoro/sample_tests.cfg
deleted file mode 100644
index 62eecd613c..0000000000
--- a/.kokoro/sample_tests.cfg
+++ /dev/null
@@ -1,10 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Download secrets from Cloud Storage.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/nodejs/storage"
-
-# Tell the trampoline which build file to use.
-env_vars: {
-    key: "TRAMPOLINE_BUILD_FILE"
-    value: "github/google-cloud-node-storage/.kokoro/sample_tests.sh"
-}
diff --git a/.kokoro/sample_tests.sh b/.kokoro/sample_tests.sh
deleted file mode 100755
index 443fdfd087..0000000000
--- a/.kokoro/sample_tests.sh
+++ /dev/null
@@ -1,44 +0,0 @@
-#!/bin/bash
-# Copyright 2017 Google Inc.
-#
-# 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.
-
-#!/bin/bash
-
-SYSTEM_TESTS_ENCRYPTION_KEY=$(cat $KOKORO_GFILE_DIR/SYSTEM_TESTS_ENCRYPTION_KEY)
-
-cd github/google-cloud-node-storage/
-
-# Each of these steps should match the `sample_tests` job in
-# `.circleci/config.yml`. Failure to keep these in sync will probably
-# result in failed test runs in Kokoro.
-
-# Decrypt credentials.
-openssl aes-256-cbc -d -in .circleci/key.json.enc \
-  -out .circleci/key.json \
-  -k "${SYSTEM_TESTS_ENCRYPTION_KEY}"
-
-# Install and link the module.
-npm install
-npm link
-
-# Link the module being tested to the samples.
-cd samples/
-npm install
-npm link @google-cloud/storage
-cd ..
-
-# Run sample tests.
-GCLOUD_PROJECT=long-door-651 \
-  GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/.circleci/key.json \
-  npm run samples-test
diff --git a/.kokoro/setup-vars.sh b/.kokoro/setup-vars.sh
new file mode 100644
index 0000000000..00fafdf177
--- /dev/null
+++ b/.kokoro/setup-vars.sh
@@ -0,0 +1,23 @@
+#!/bin/bash
+
+# Copyright 2018 Google LLC
+#
+# 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
+#
+#     https://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.
+
+# nodejs-storage's system tests require additional project and
+# system test key
+export GCN_STORAGE_2ND_PROJECT_ID=gcloud-node-whitelist-ci-tests
+export GCN_STORAGE_2ND_PROJECT_KEY=${KOKORO_GFILE_DIR}/no-whitelist-key.json
+
+export GOOGLE_CLOUD_KMS_KEY_ASIA="projects/long-door-651/locations/asia/keyRings/test-key-asia/cryptoKeys/test-key-asia"
+export GOOGLE_CLOUD_KMS_KEY_US="projects/long-door-651/locations/us/keyRings/test-key-us/cryptoKeys/test-key-us"
diff --git a/.kokoro/system_tests.cfg b/.kokoro/system_tests.cfg
deleted file mode 100644
index e99bec78ef..0000000000
--- a/.kokoro/system_tests.cfg
+++ /dev/null
@@ -1,10 +0,0 @@
-# Format: //devtools/kokoro/config/proto/build.proto
-
-# Download secrets from Cloud Storage.
-gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/nodejs/storage"
-
-# Tell the trampoline which build file to use.
-env_vars: {
-    key: "TRAMPOLINE_BUILD_FILE"
-    value: "github/google-cloud-node-storage/.kokoro/system_tests.sh"
-}
diff --git a/.kokoro/system_tests.sh b/.kokoro/system_tests.sh
deleted file mode 100755
index a4038c25c7..0000000000
--- a/.kokoro/system_tests.sh
+++ /dev/null
@@ -1,43 +0,0 @@
-#!/bin/bash
-# Copyright 2017 Google Inc.
-#
-# 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.
-
-#!/bin/bash
-
-SYSTEM_TESTS_ENCRYPTION_KEY=$(cat $KOKORO_GFILE_DIR/SYSTEM_TESTS_ENCRYPTION_KEY)
-
-cd github/google-cloud-node-storage/
-
-# Each of these steps should match the `system_tests` job in
-# `.circleci/config.yml`. Failure to keep these in sync will probably
-# result in failed test runs in Kokoro.
-
-# Decrypt credentials.
-openssl aes-256-cbc -d -in .circleci/key.json.enc \
-  -out .circleci/key.json \
-  -k "${SYSTEM_TESTS_ENCRYPTION_KEY}"
-
-# Decrypt second account credentials (storage-specific).
-openssl aes-256-cbc -d -in .circleci/no-whitelist-key.json.enc \
-  -out .circleci/no-whitelist-key.json \
-  -k "${SYSTEM_TESTS_ENCRYPTION_KEY}"
-
-# Install modules and dependencies.
-npm install
-
-# Run system tests.
-GCN_STORAGE_2ND_PROJECT_ID=gcloud-node-whitelist-ci-tests \
-  GCN_STORAGE_2ND_PROJECT_KEY=.circleci/no-whitelist-key.json \
-  GOOGLE_APPLICATION_CREDENTIALS=.circleci/key.json \
-  npm run system-test