diff --git a/Documentation/dev-running-db-tests.md b/Documentation/dev-integration-tests.md
similarity index 60%
rename from Documentation/dev-running-db-tests.md
rename to Documentation/dev-integration-tests.md
index c0eef62b70111fb8f1de48435209b6e3fe773293..0445205e15cf30391c6069d42bf26ee7ad0dd688 100644
--- a/Documentation/dev-running-db-tests.md
+++ b/Documentation/dev-integration-tests.md
@@ -1,12 +1,25 @@
-# Running database tests
+# Running integration tests
+
+## Kubernetes
+
+Kubernetes tests will only run if the `DEX_KUBECONFIG` environment variable is set.
+
+```
+$ export DEX_KUBECONFIG=~/.kube/config
+$ go test -v -i ./storage/kubernetes
+$ go test -v ./storage/kubernetes
+```
+
+Because third party resources creation isn't synchronized it's expected that the tests fail the first time. Fear not, and just run them again.
+
+## Postgres
 
 Running database tests locally require:
 
 * A systemd based Linux distro.
 * A recent version of [rkt](https://github.com/coreos/rkt) installed.
 
-The `standup.sh` script in the SQL directory is used to run databases in
-containers with systemd daemonizing the process.
+The `standup.sh` script in the SQL directory is used to run databases in containers with systemd daemonizing the process.
 
 ```
 $ sudo ./storage/sql/standup.sh create postgres
@@ -21,11 +34,10 @@ To run tests export the following environment variables:
 
 ```
 
-Exporting the variables will cause the database tests to be run, rather than
-skipped.
+Exporting the variables will cause the database tests to be run, rather than skipped.
 
 ```
-$ # sqlite takes forever to compile, be sure to install test dependencies
+$ # sqlite3 takes forever to compile, be sure to install test dependencies
 $ go test -v -i ./storage/sql
 $ go test -v ./storage/sql
 ```
diff --git a/glide.lock b/glide.lock
index 6e733476c2b08d2b415f6fb670c2652da2b05f80..c743fb337f1cdfbd8da47a3d002d1a4931dd2ddd 100644
--- a/glide.lock
+++ b/glide.lock
@@ -1,5 +1,5 @@
-hash: 8b7a5f94584ecd144fc3ce94bb0b09f8e96c94b5a8e10d5053bd24bb597367ce
-updated: 2016-10-03T23:25:41.280181088-07:00
+hash: a813cbca07393d7cbe35d411cdef588afac7a3bab8a287ffe7b9587516ef5898
+updated: 2016-10-23T20:51:55.313818678-07:00
 imports:
 - name: github.com/cockroachdb/cockroach-go
   version: 31611c0501c812f437d4861d87d117053967c955
@@ -33,8 +33,6 @@ imports:
   - oid
 - name: github.com/mattn/go-sqlite3
   version: 3fb7a0e792edd47bf0cf1e919dfc14e2be412e15
-- name: github.com/mitchellh/go-homedir
-  version: 756f7b183b7ab78acdbbee5c7f392838ed459dda
 - name: github.com/pquerna/cachecontrol
   version: c97913dcbd76de40b051a9b4cd827f7eaeb7a868
   subpackages:
diff --git a/glide.yaml b/glide.yaml
index 3b342b4432726bb3d68dcb77cd6b5f9fdb1a1fe0..2616cae75b64f726abc0913e91acf958fb6943db 100644
--- a/glide.yaml
+++ b/glide.yaml
@@ -74,9 +74,6 @@ import:
   - proto
   - protoc-gen-go
 
-- package: github.com/mitchellh/go-homedir
-  verison: 756f7b183b7ab78acdbbee5c7f392838ed459dda
-
 - package: github.com/kylelemons/godebug
   subpackages:
   - diff
diff --git a/storage/kubernetes/storage.go b/storage/kubernetes/storage.go
index 7a7fb2b465233d502a26894d3b3171ba71aef932..32424321fc180326e953caa2c3b91b8fb8aea0bd 100644
--- a/storage/kubernetes/storage.go
+++ b/storage/kubernetes/storage.go
@@ -5,11 +5,8 @@ import (
 	"fmt"
 	"log"
 	"net/http"
-	"os"
-	"path/filepath"
 	"time"
 
-	homedir "github.com/mitchellh/go-homedir"
 	"golang.org/x/net/context"
 
 	"github.com/coreos/dex/storage"
@@ -37,8 +34,7 @@ const (
 // Config values for the Kubernetes storage type.
 type Config struct {
 	InCluster      bool   `yaml:"inCluster"`
-	KubeConfigPath string `yaml:"kubeConfigPath"`
-	GCFrequency    int64  `yaml:"gcFrequency"` // seconds
+	KubeConfigFile string `yaml:"kubeConfigFile"`
 }
 
 // Open returns a storage using Kubernetes third party resource.
@@ -52,8 +48,11 @@ func (c *Config) Open() (storage.Storage, error) {
 
 // open returns a client with no garbage collection.
 func (c *Config) open() (*client, error) {
-	if c.InCluster && (c.KubeConfigPath != "") {
-		return nil, errors.New("cannot specify both 'inCluster' and 'kubeConfigPath'")
+	if c.InCluster && (c.KubeConfigFile != "") {
+		return nil, errors.New("cannot specify both 'inCluster' and 'kubeConfigFile'")
+	}
+	if !c.InCluster && (c.KubeConfigFile == "") {
+		return nil, errors.New("must specify either 'inCluster' or 'kubeConfigFile'")
 	}
 
 	var (
@@ -65,18 +64,7 @@ func (c *Config) open() (*client, error) {
 	if c.InCluster {
 		cluster, user, namespace, err = inClusterConfig()
 	} else {
-		kubeConfigPath := c.KubeConfigPath
-		if kubeConfigPath == "" {
-			kubeConfigPath = os.Getenv("KUBECONFIG")
-		}
-		if kubeConfigPath == "" {
-			p, err := homedir.Dir()
-			if err != nil {
-				return nil, fmt.Errorf("finding homedir: %v", err)
-			}
-			kubeConfigPath = filepath.Join(p, ".kube", "config")
-		}
-		cluster, user, namespace, err = loadKubeConfig(kubeConfigPath)
+		cluster, user, namespace, err = loadKubeConfig(c.KubeConfigFile)
 	}
 	if err != nil {
 		return nil, err
diff --git a/storage/kubernetes/storage_test.go b/storage/kubernetes/storage_test.go
index 0f347730c3c77ed0f86ddaad17f42fb7850dbbb2..9132fd0a100e9489554ae1b79711b7e95aaf5ac3 100644
--- a/storage/kubernetes/storage_test.go
+++ b/storage/kubernetes/storage_test.go
@@ -8,15 +8,19 @@ import (
 	"github.com/coreos/dex/storage/conformance"
 )
 
+const testKubeConfigEnv = "DEX_KUBECONFIG"
+
 func TestLoadClient(t *testing.T) {
 	loadClient(t)
 }
 
 func loadClient(t *testing.T) *client {
-	if os.Getenv("KUBECONFIG") == "" {
-		t.Skip()
+	config := Config{
+		KubeConfigFile: os.Getenv(testKubeConfigEnv),
+	}
+	if config.KubeConfigFile == "" {
+		t.Skipf("test environment variable %q not set, skipping", testKubeConfigEnv)
 	}
-	var config Config
 	s, err := config.open()
 	if err != nil {
 		t.Fatal(err)