diff --git a/build/root/Makefile b/build/root/Makefile index 401b8c44f45..451716b938d 100644 --- a/build/root/Makefile +++ b/build/root/Makefile @@ -523,6 +523,20 @@ bazel-test: bazel test --test_tag_filters=-integration --flaky_test_attempts=3 //cmd/... //pkg/... //federation/... //plugin/... //third_party/... //hack/... //hack:verify-all //vendor/k8s.io/... endif +ifeq ($(PRINT_HELP),y) +define BAZEL_TEST_INTEGRATION_HELP_INFO +# Integration test with bazel +# +# Example: +# make bazel-test-integration +endef +bazel-test-integration: + @echo "$$BAZEL_TEST_INTEGRATION_HELP_INFO" +else +bazel-test-integration: + bazel test //test/integration/... +endif + ifeq ($(PRINT_HELP),y) define BAZEL_BUILD_HELP_INFO # Build release tars with bazel diff --git a/build/root/WORKSPACE b/build/root/WORKSPACE index e411ef563fe..e7f23f182c5 100644 --- a/build/root/WORKSPACE +++ b/build/root/WORKSPACE @@ -12,6 +12,16 @@ http_archive( urls = ["https://github.com/kubernetes/repo-infra/archive/9dedd5f4093884c133ad5ea73695b28338b954ab.tar.gz"], ) +ETCD_VERSION = "3.0.17" + +new_http_archive( + name = "com_coreos_etcd", + build_file = "third_party/etcd.BUILD", + sha256 = "274c46a7f8d26f7ae99d6880610f54933cbcf7f3beafa19236c52eb5df8c7a0b", + strip_prefix = "etcd-v%s-linux-amd64" % ETCD_VERSION, + urls = ["https://github.com/coreos/etcd/releases/download/v%s/etcd-v%s-linux-amd64.tar.gz" % (ETCD_VERSION, ETCD_VERSION)], +) + # This contains a patch to not prepend ./ to tarfiles produced by pkg_tar. # When merged upstream, we'll no longer need to use ixdy's fork: # https://bazel-review.googlesource.com/#/c/10390/ diff --git a/test/integration/apiserver/BUILD b/test/integration/apiserver/BUILD index 68c943269fc..693a93051e6 100644 --- a/test/integration/apiserver/BUILD +++ b/test/integration/apiserver/BUILD @@ -9,8 +9,10 @@ load( go_test( name = "go_default_test", + size = "large", srcs = [ "apiserver_test.go", + "main_test.go", "patch_test.go", ], tags = [ diff --git a/test/integration/apiserver/main_test.go b/test/integration/apiserver/main_test.go new file mode 100644 index 00000000000..268a3588398 --- /dev/null +++ b/test/integration/apiserver/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package apiserver + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/auth/BUILD b/test/integration/auth/BUILD index 0cf0e153b4f..685b30d10a8 100644 --- a/test/integration/auth/BUILD +++ b/test/integration/auth/BUILD @@ -9,9 +9,11 @@ load( go_test( name = "go_default_test", + size = "large", srcs = [ "accessreview_test.go", "auth_test.go", + "main_test.go", "node_test.go", "rbac_test.go", ], diff --git a/test/integration/auth/main_test.go b/test/integration/auth/main_test.go new file mode 100644 index 00000000000..4c173c3f174 --- /dev/null +++ b/test/integration/auth/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package auth + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/client/BUILD b/test/integration/client/BUILD index 179b4b059ca..0a67fe0dc21 100644 --- a/test/integration/client/BUILD +++ b/test/integration/client/BUILD @@ -9,9 +9,11 @@ load( go_test( name = "go_default_test", + size = "large", srcs = [ "client_test.go", "dynamic_client_test.go", + "main_test.go", ], tags = [ "automanaged", diff --git a/test/integration/client/main_test.go b/test/integration/client/main_test.go new file mode 100644 index 00000000000..df04d8ee0c3 --- /dev/null +++ b/test/integration/client/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package client + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/configmap/BUILD b/test/integration/configmap/BUILD index 14bc055261b..30b08ad8f41 100644 --- a/test/integration/configmap/BUILD +++ b/test/integration/configmap/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["configmap_test.go"], + size = "large", + srcs = [ + "configmap_test.go", + "main_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/configmap/main_test.go b/test/integration/configmap/main_test.go new file mode 100644 index 00000000000..c05a94633b4 --- /dev/null +++ b/test/integration/configmap/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package configmap + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/defaulttolerationseconds/BUILD b/test/integration/defaulttolerationseconds/BUILD index 0b150dbafa4..f449c7513de 100644 --- a/test/integration/defaulttolerationseconds/BUILD +++ b/test/integration/defaulttolerationseconds/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["defaulttolerationseconds_test.go"], + size = "large", + srcs = [ + "defaulttolerationseconds_test.go", + "main_test.go", + ], tags = [ "automanaged", "etcd", diff --git a/test/integration/defaulttolerationseconds/main_test.go b/test/integration/defaulttolerationseconds/main_test.go new file mode 100644 index 00000000000..c23256fc0d8 --- /dev/null +++ b/test/integration/defaulttolerationseconds/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package defaulttolerationseconds + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/deployment/BUILD b/test/integration/deployment/BUILD index 8b3514e7460..9f103241be0 100644 --- a/test/integration/deployment/BUILD +++ b/test/integration/deployment/BUILD @@ -10,7 +10,11 @@ load( go_test( name = "go_default_test", - srcs = ["deployment_test.go"], + size = "large", + srcs = [ + "deployment_test.go", + "main_test.go", + ], library = ":go_default_library", tags = ["automanaged"], deps = [ diff --git a/test/integration/deployment/main_test.go b/test/integration/deployment/main_test.go new file mode 100644 index 00000000000..769efb3a7ca --- /dev/null +++ b/test/integration/deployment/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package deployment + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/etcd/BUILD b/test/integration/etcd/BUILD index 5525ca0ff23..1460f4f62b1 100644 --- a/test/integration/etcd/BUILD +++ b/test/integration/etcd/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["etcd_storage_path_test.go"], + size = "large", + srcs = [ + "etcd_storage_path_test.go", + "main_test.go", + ], tags = [ "automanaged", "etcd", diff --git a/test/integration/etcd/etcd_storage_path_test.go b/test/integration/etcd/etcd_storage_path_test.go index fd17823947d..fccf080609a 100644 --- a/test/integration/etcd/etcd_storage_path_test.go +++ b/test/integration/etcd/etcd_storage_path_test.go @@ -588,7 +588,7 @@ func startRealMasterOrDie(t *testing.T, certDir string) (*allClient, clientv3.KV kubeAPIServerOptions := options.NewServerRunOptions() kubeAPIServerOptions.SecureServing.BindAddress = net.ParseIP("127.0.0.1") kubeAPIServerOptions.SecureServing.ServerCert.CertDirectory = certDir - kubeAPIServerOptions.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURLFromEnv()} + kubeAPIServerOptions.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURL()} kubeAPIServerOptions.Etcd.DefaultStorageMediaType = runtime.ContentTypeJSON // TODO use protobuf? kubeAPIServerOptions.ServiceClusterIPRange = *defaultServiceClusterIPRange kubeAPIServerOptions.Authorization.Mode = "RBAC" diff --git a/test/integration/etcd/main_test.go b/test/integration/etcd/main_test.go new file mode 100644 index 00000000000..029421dbe20 --- /dev/null +++ b/test/integration/etcd/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package etcd + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/evictions/BUILD b/test/integration/evictions/BUILD index 03f38476c4f..c6584a33060 100644 --- a/test/integration/evictions/BUILD +++ b/test/integration/evictions/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["evictions_test.go"], + size = "large", + srcs = [ + "evictions_test.go", + "main_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/evictions/main_test.go b/test/integration/evictions/main_test.go new file mode 100644 index 00000000000..5973101c020 --- /dev/null +++ b/test/integration/evictions/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package evictions + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/examples/BUILD b/test/integration/examples/BUILD index 861d2980d21..8d696172022 100644 --- a/test/integration/examples/BUILD +++ b/test/integration/examples/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["apiserver_test.go"], + size = "large", + srcs = [ + "apiserver_test.go", + "main_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/examples/apiserver_test.go b/test/integration/examples/apiserver_test.go index 2c34a30329b..671f4cc84a2 100644 --- a/test/integration/examples/apiserver_test.go +++ b/test/integration/examples/apiserver_test.go @@ -102,7 +102,7 @@ func TestAggregatedAPIServer(t *testing.T) { kubeAPIServerOptions.SecureServing.BindPort = kubePort kubeAPIServerOptions.SecureServing.ServerCert.CertDirectory = certDir kubeAPIServerOptions.InsecureServing.BindPort = 0 - kubeAPIServerOptions.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURLFromEnv()} + kubeAPIServerOptions.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURL()} kubeAPIServerOptions.ServiceClusterIPRange = *defaultServiceClusterIPRange kubeAPIServerOptions.Authentication.RequestHeader.UsernameHeaders = []string{"X-Remote-User"} kubeAPIServerOptions.Authentication.RequestHeader.GroupHeaders = []string{"X-Remote-Group"} @@ -190,7 +190,7 @@ func TestAggregatedAPIServer(t *testing.T) { "--requestheader-allowed-names=kube-aggregator", "--authentication-kubeconfig", kubeconfigFile.Name(), "--authorization-kubeconfig", kubeconfigFile.Name(), - "--etcd-servers", framework.GetEtcdURLFromEnv(), + "--etcd-servers", framework.GetEtcdURL(), "--cert-dir", wardleCertDir, }) if err := wardleCmd.Execute(); err != nil { @@ -266,7 +266,7 @@ func TestAggregatedAPIServer(t *testing.T) { "--core-kubeconfig", kubeconfigFile.Name(), "--authentication-kubeconfig", kubeconfigFile.Name(), "--authorization-kubeconfig", kubeconfigFile.Name(), - "--etcd-servers", framework.GetEtcdURLFromEnv(), + "--etcd-servers", framework.GetEtcdURL(), "--cert-dir", aggregatorCertDir, }) if err := aggregatorCmd.Execute(); err != nil { diff --git a/test/integration/examples/main_test.go b/test/integration/examples/main_test.go new file mode 100644 index 00000000000..268a3588398 --- /dev/null +++ b/test/integration/examples/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package apiserver + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/federation/BUILD b/test/integration/federation/BUILD index 3dbc08822b5..1bb2e870979 100644 --- a/test/integration/federation/BUILD +++ b/test/integration/federation/BUILD @@ -9,9 +9,11 @@ load( go_test( name = "go_default_test", + size = "large", srcs = [ "api_test.go", "crud_test.go", + "main_test.go", ], tags = [ "automanaged", @@ -22,6 +24,7 @@ go_test( "//federation/pkg/federatedtypes:go_default_library", "//federation/pkg/federatedtypes/crudtester:go_default_library", "//test/integration/federation/framework:go_default_library", + "//test/integration/framework:go_default_library", "//vendor/github.com/pborman/uuid:go_default_library", "//vendor/github.com/stretchr/testify/assert:go_default_library", "//vendor/k8s.io/api/autoscaling/v1:go_default_library", diff --git a/test/integration/federation/framework/api.go b/test/integration/federation/framework/api.go index 07df7f09a7e..f1d79cd56dd 100644 --- a/test/integration/federation/framework/api.go +++ b/test/integration/federation/framework/api.go @@ -36,7 +36,7 @@ const apiNoun = "federation apiserver" // GetRunOptions returns the default run options that can be used to run a test federation apiserver. func GetRunOptions() *options.ServerRunOptions { r := options.NewServerRunOptions() - r.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURLFromEnv()} + r.Etcd.StorageConfig.ServerList = []string{framework.GetEtcdURL()} // Use a unique prefix to ensure isolation from other tests using the same etcd instance r.Etcd.StorageConfig.Prefix = uuid.New() // Disable secure serving diff --git a/test/integration/federation/main_test.go b/test/integration/federation/main_test.go new file mode 100644 index 00000000000..ccce686e762 --- /dev/null +++ b/test/integration/federation/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package federation + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/framework/BUILD b/test/integration/framework/BUILD index 25b6e766239..ab99ef886d6 100644 --- a/test/integration/framework/BUILD +++ b/test/integration/framework/BUILD @@ -10,10 +10,14 @@ load( go_library( name = "go_default_library", srcs = [ + "etcd.go", "master_utils.go", "perf_utils.go", "serializer.go", ], + data = [ + "@com_coreos_etcd//:etcd", + ], tags = ["automanaged"], deps = [ "//pkg/api:go_default_library", diff --git a/test/integration/framework/etcd.go b/test/integration/framework/etcd.go new file mode 100644 index 00000000000..dcb4bbc4e23 --- /dev/null +++ b/test/integration/framework/etcd.go @@ -0,0 +1,109 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package framework + +import ( + "fmt" + "hash/adler32" + "io" + "io/ioutil" + "math/rand" + "os" + "os/exec" + "path/filepath" + "sync" + + "k8s.io/kubernetes/pkg/util/env" + + "github.com/golang/glog" +) + +var ( + etcdSetup sync.Once + etcdURL = "" +) + +func setupETCD() { + etcdSetup.Do(func() { + if os.Getenv("RUNFILES_DIR") == "" { + etcdURL = env.GetEnvAsStringOrFallback("KUBE_INTEGRATION_ETCD_URL", "http://127.0.0.1:2379") + return + } + etcdPath := filepath.Join(os.Getenv("RUNFILES_DIR"), "com_coreos_etcd/etcd") + // give every test the same random port each run + etcdPort := 20000 + rand.New(rand.NewSource(int64(adler32.Checksum([]byte(os.Args[0]))))).Intn(5000) + etcdURL = fmt.Sprintf("http://127.0.0.1:%d", etcdPort) + + info, err := os.Stat(etcdPath) + if err != nil { + glog.Fatalf("Unable to stat etcd: %v", err) + } + if info.IsDir() { + glog.Fatalf("Did not expect %q to be a directory", etcdPath) + } + + etcdDataDir, err := ioutil.TempDir(os.TempDir(), "integration_test_etcd_data") + if err != nil { + glog.Fatalf("Unable to make temp etcd data dir: %v", err) + } + glog.Infof("storing etcd data in: %v", etcdDataDir) + + etcdCmd := exec.Command( + etcdPath, + "--data-dir", + etcdDataDir, + "--listen-client-urls", + GetEtcdURL(), + "--advertise-client-urls", + GetEtcdURL(), + "--listen-peer-urls", + "http://127.0.0.1:0", + ) + + stdout, err := etcdCmd.StdoutPipe() + if err != nil { + glog.Fatalf("Failed to run etcd: %v", err) + } + stderr, err := etcdCmd.StderrPipe() + if err != nil { + glog.Fatalf("Failed to run etcd: %v", err) + } + if err := etcdCmd.Start(); err != nil { + glog.Fatalf("Failed to run etcd: %v", err) + } + + go io.Copy(os.Stdout, stdout) + go io.Copy(os.Stderr, stderr) + + go func() { + if err := etcdCmd.Wait(); err != nil { + glog.Fatalf("Failed to run etcd: %v", err) + } + glog.Fatalf("etcd should not have succeeded") + }() + }) +} + +func EtcdMain(tests func() int) { + setupETCD() + os.Exit(tests()) +} + +// return the EtcdURL +func GetEtcdURL() string { + return etcdURL +} diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 5de1d866ca7..83485d1d382 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -70,7 +70,6 @@ import ( "k8s.io/kubernetes/pkg/kubectl" kubeletclient "k8s.io/kubernetes/pkg/kubelet/client" "k8s.io/kubernetes/pkg/master" - "k8s.io/kubernetes/pkg/util/env" "k8s.io/kubernetes/pkg/version" "k8s.io/kubernetes/plugin/pkg/admission/admit" ) @@ -298,20 +297,13 @@ func parseCIDROrDie(cidr string) *net.IPNet { return parsed } -// return the EtcdURL -func GetEtcdURLFromEnv() string { - url := env.GetEnvAsStringOrFallback("KUBE_INTEGRATION_ETCD_URL", "http://127.0.0.1:2379") - glog.V(4).Infof("Using KUBE_INTEGRATION_ETCD_URL=%q", url) - return url -} - // Returns a basic master config. func NewMasterConfig() *master.Config { // This causes the integration tests to exercise the etcd // prefix code, so please don't change without ensuring // sufficient coverage in other ways. etcdOptions := options.NewEtcdOptions(storagebackend.NewDefaultConfig(uuid.New(), api.Scheme, nil)) - etcdOptions.StorageConfig.ServerList = []string{GetEtcdURLFromEnv()} + etcdOptions.StorageConfig.ServerList = []string{GetEtcdURL()} info, _ := runtime.SerializerInfoForMediaType(api.Codecs.SupportedMediaTypes(), runtime.ContentTypeJSON) ns := NewSingleContentTypeSerializer(api.Scheme, info) diff --git a/test/integration/garbagecollector/BUILD b/test/integration/garbagecollector/BUILD index 73857b58f9b..99ad19c09b4 100644 --- a/test/integration/garbagecollector/BUILD +++ b/test/integration/garbagecollector/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["garbage_collector_test.go"], + size = "large", + srcs = [ + "garbage_collector_test.go", + "main_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/garbagecollector/main_test.go b/test/integration/garbagecollector/main_test.go new file mode 100644 index 00000000000..1e2f4b243bc --- /dev/null +++ b/test/integration/garbagecollector/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package garbagecollector + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/kubectl/BUILD b/test/integration/kubectl/BUILD index 6695c9920c7..ac2b6efb19f 100644 --- a/test/integration/kubectl/BUILD +++ b/test/integration/kubectl/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["kubectl_test.go"], + size = "large", + srcs = [ + "kubectl_test.go", + "main_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/kubectl/main_test.go b/test/integration/kubectl/main_test.go new file mode 100644 index 00000000000..9c83e844474 --- /dev/null +++ b/test/integration/kubectl/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package kubectl + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/master/BUILD b/test/integration/master/BUILD index 894171318b0..91bdb5e4123 100644 --- a/test/integration/master/BUILD +++ b/test/integration/master/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["master_test.go"], + size = "large", + srcs = [ + "main_test.go", + "master_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/master/main_test.go b/test/integration/master/main_test.go new file mode 100644 index 00000000000..10ce6851b8a --- /dev/null +++ b/test/integration/master/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package master + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/metrics/BUILD b/test/integration/metrics/BUILD index 66bb68e1209..054f267672b 100644 --- a/test/integration/metrics/BUILD +++ b/test/integration/metrics/BUILD @@ -29,7 +29,11 @@ filegroup( go_test( name = "go_default_test", - srcs = ["metrics_test.go"], + size = "large", + srcs = [ + "main_test.go", + "metrics_test.go", + ], library = ":go_default_library", tags = [ "automanaged", diff --git a/test/integration/metrics/main_test.go b/test/integration/metrics/main_test.go new file mode 100644 index 00000000000..051ae359ae7 --- /dev/null +++ b/test/integration/metrics/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package metrics + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/objectmeta/BUILD b/test/integration/objectmeta/BUILD index 03f088e7406..f7fb9fd2c75 100644 --- a/test/integration/objectmeta/BUILD +++ b/test/integration/objectmeta/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["objectmeta_test.go"], + size = "large", + srcs = [ + "main_test.go", + "objectmeta_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/objectmeta/main_test.go b/test/integration/objectmeta/main_test.go new file mode 100644 index 00000000000..ca65234eb42 --- /dev/null +++ b/test/integration/objectmeta/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package objectmeta + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/openshift/BUILD b/test/integration/openshift/BUILD index 0e7de0ebc21..b7e180a750e 100644 --- a/test/integration/openshift/BUILD +++ b/test/integration/openshift/BUILD @@ -9,13 +9,18 @@ load( go_test( name = "go_default_test", - srcs = ["openshift_test.go"], + size = "large", + srcs = [ + "main_test.go", + "openshift_test.go", + ], tags = [ "automanaged", "integration", ], deps = [ "//pkg/master:go_default_library", + "//test/integration/framework:go_default_library", "//vendor/k8s.io/apiserver/pkg/server:go_default_library", ], ) diff --git a/test/integration/openshift/main_test.go b/test/integration/openshift/main_test.go new file mode 100644 index 00000000000..8ff0d17e9f9 --- /dev/null +++ b/test/integration/openshift/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package openshift + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/pods/BUILD b/test/integration/pods/BUILD index 242411d7159..75859677e93 100644 --- a/test/integration/pods/BUILD +++ b/test/integration/pods/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["pods_test.go"], + size = "large", + srcs = [ + "main_test.go", + "pods_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/pods/main_test.go b/test/integration/pods/main_test.go new file mode 100644 index 00000000000..337dabe3a33 --- /dev/null +++ b/test/integration/pods/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package pods + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/quota/BUILD b/test/integration/quota/BUILD index 02197516d4b..56ef4137809 100644 --- a/test/integration/quota/BUILD +++ b/test/integration/quota/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["quota_test.go"], + size = "large", + srcs = [ + "main_test.go", + "quota_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/quota/main_test.go b/test/integration/quota/main_test.go new file mode 100644 index 00000000000..51110064856 --- /dev/null +++ b/test/integration/quota/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package quota + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/replicaset/BUILD b/test/integration/replicaset/BUILD index b008fc7e522..ce3109baa14 100644 --- a/test/integration/replicaset/BUILD +++ b/test/integration/replicaset/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["replicaset_test.go"], + size = "large", + srcs = [ + "main_test.go", + "replicaset_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/replicaset/main_test.go b/test/integration/replicaset/main_test.go new file mode 100644 index 00000000000..32865709e06 --- /dev/null +++ b/test/integration/replicaset/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package replicaset + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/replicationcontroller/BUILD b/test/integration/replicationcontroller/BUILD index 085b4188dd2..5595bfc55a4 100644 --- a/test/integration/replicationcontroller/BUILD +++ b/test/integration/replicationcontroller/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["replicationcontroller_test.go"], + size = "large", + srcs = [ + "main_test.go", + "replicationcontroller_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/replicationcontroller/main_test.go b/test/integration/replicationcontroller/main_test.go new file mode 100644 index 00000000000..2cbb1c4ae58 --- /dev/null +++ b/test/integration/replicationcontroller/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package replicationcontroller + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/scheduler/BUILD b/test/integration/scheduler/BUILD index d851b8d966b..a0753d612d2 100644 --- a/test/integration/scheduler/BUILD +++ b/test/integration/scheduler/BUILD @@ -9,8 +9,10 @@ load( go_test( name = "go_default_test", + size = "large", srcs = [ "extender_test.go", + "main_test.go", "scheduler_test.go", ], tags = [ diff --git a/test/integration/scheduler/main_test.go b/test/integration/scheduler/main_test.go new file mode 100644 index 00000000000..468c04b4d35 --- /dev/null +++ b/test/integration/scheduler/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package scheduler + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/scheduler_perf/BUILD b/test/integration/scheduler_perf/BUILD index 1cebff346db..5f13ba92903 100644 --- a/test/integration/scheduler_perf/BUILD +++ b/test/integration/scheduler_perf/BUILD @@ -35,7 +35,9 @@ go_library( go_test( name = "go_default_test", + size = "large", srcs = [ + "main_test.go", "scheduler_bench_test.go", "scheduler_test.go", ], diff --git a/test/integration/scheduler_perf/main_test.go b/test/integration/scheduler_perf/main_test.go new file mode 100644 index 00000000000..16275396eba --- /dev/null +++ b/test/integration/scheduler_perf/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package benchmark + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/secrets/BUILD b/test/integration/secrets/BUILD index c1e003cef05..b11c608b889 100644 --- a/test/integration/secrets/BUILD +++ b/test/integration/secrets/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["secrets_test.go"], + size = "large", + srcs = [ + "main_test.go", + "secrets_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/secrets/main_test.go b/test/integration/secrets/main_test.go new file mode 100644 index 00000000000..ca7a7b43c77 --- /dev/null +++ b/test/integration/secrets/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package secrets + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/serviceaccount/BUILD b/test/integration/serviceaccount/BUILD index 5a589e720f3..4f2bf67d52c 100644 --- a/test/integration/serviceaccount/BUILD +++ b/test/integration/serviceaccount/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["service_account_test.go"], + size = "large", + srcs = [ + "main_test.go", + "service_account_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/serviceaccount/main_test.go b/test/integration/serviceaccount/main_test.go new file mode 100644 index 00000000000..d8a34a7762b --- /dev/null +++ b/test/integration/serviceaccount/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package serviceaccount + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/storageclasses/BUILD b/test/integration/storageclasses/BUILD index 54a575e0107..c9935bb1644 100644 --- a/test/integration/storageclasses/BUILD +++ b/test/integration/storageclasses/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["storage_classes_test.go"], + size = "large", + srcs = [ + "main_test.go", + "storage_classes_test.go", + ], tags = [ "automanaged", "integration", diff --git a/test/integration/storageclasses/main_test.go b/test/integration/storageclasses/main_test.go new file mode 100644 index 00000000000..278bb7b77cb --- /dev/null +++ b/test/integration/storageclasses/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package storageclasses + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/ttlcontroller/BUILD b/test/integration/ttlcontroller/BUILD index 806ce9feabc..d0be6d09066 100644 --- a/test/integration/ttlcontroller/BUILD +++ b/test/integration/ttlcontroller/BUILD @@ -9,7 +9,11 @@ load( go_test( name = "go_default_test", - srcs = ["ttlcontroller_test.go"], + size = "large", + srcs = [ + "main_test.go", + "ttlcontroller_test.go", + ], tags = [ "automanaged", "etcd", diff --git a/test/integration/ttlcontroller/main_test.go b/test/integration/ttlcontroller/main_test.go new file mode 100644 index 00000000000..0b75afed038 --- /dev/null +++ b/test/integration/ttlcontroller/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package ttlcontroller + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/test/integration/volume/BUILD b/test/integration/volume/BUILD index dc9eb9f2651..bc91e604373 100644 --- a/test/integration/volume/BUILD +++ b/test/integration/volume/BUILD @@ -9,8 +9,10 @@ load( go_test( name = "go_default_test", + size = "large", srcs = [ "attach_detach_test.go", + "main_test.go", "persistent_volumes_test.go", ], tags = [ diff --git a/test/integration/volume/main_test.go b/test/integration/volume/main_test.go new file mode 100644 index 00000000000..f3c945d05c6 --- /dev/null +++ b/test/integration/volume/main_test.go @@ -0,0 +1,27 @@ +/* +Copyright 2017 The Kubernetes Authors. + +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. +*/ + +package volume + +import ( + "testing" + + "k8s.io/kubernetes/test/integration/framework" +) + +func TestMain(m *testing.M) { + framework.EtcdMain(m.Run) +} diff --git a/third_party/etcd.BUILD b/third_party/etcd.BUILD new file mode 100644 index 00000000000..816ffa75254 --- /dev/null +++ b/third_party/etcd.BUILD @@ -0,0 +1 @@ +exports_files(["etcd"])