diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD deleted file mode 100644 index c6d0e60fd6..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/BUILD +++ /dev/null @@ -1,53 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", - "go_test", -) - -go_test( - name = "go_default_test", - srcs = ["api_object_versioner_test.go"], - embed = [":go_default_library"], - deps = [ - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/storage:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/storage/testing:go_default_library", - ], -) - -go_library( - name = "go_default_library", - srcs = [ - "api_object_versioner.go", - "doc.go", - ], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd", - importpath = "k8s.io/apiserver/pkg/storage/etcd", - deps = [ - "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/util/validation/field:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/storage:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest:all-srcs", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics:all-srcs", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing:all-srcs", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/util:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/OWNERS b/staging/src/k8s.io/apiserver/pkg/storage/etcd/OWNERS deleted file mode 100755 index a065498830..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/OWNERS +++ /dev/null @@ -1,25 +0,0 @@ -reviewers: -- lavalamp -- smarterclayton -- wojtek-t -- deads2k -- derekwaynecarr -- caesarxuchao -- mikedanese -- liggitt -- davidopp -- pmorie -- luxas -- janetkuo -- roberthbailey -- tallclair -- timothysc -- dims -- hongchaodeng -- krousey -- fgrzadkowski -- resouer -- pweil- -- mqliang -- feihujiang -- enj diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner_test.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner_test.go deleted file mode 100644 index 4126f58dd9..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/api_object_versioner_test.go +++ /dev/null @@ -1,95 +0,0 @@ -/* -Copyright 2014 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" - - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apiserver/pkg/storage" - storagetesting "k8s.io/apiserver/pkg/storage/testing" -) - -func TestObjectVersioner(t *testing.T) { - v := APIObjectVersioner{} - if ver, err := v.ObjectResourceVersion(&storagetesting.TestResource{ObjectMeta: metav1.ObjectMeta{ResourceVersion: "5"}}); err != nil || ver != 5 { - t.Errorf("unexpected version: %d %v", ver, err) - } - if ver, err := v.ObjectResourceVersion(&storagetesting.TestResource{ObjectMeta: metav1.ObjectMeta{ResourceVersion: "a"}}); err == nil || ver != 0 { - t.Errorf("unexpected version: %d %v", ver, err) - } - obj := &storagetesting.TestResource{ObjectMeta: metav1.ObjectMeta{ResourceVersion: "a"}} - if err := v.UpdateObject(obj, 5); err != nil { - t.Fatalf("unexpected error: %v", err) - } - if obj.ResourceVersion != "5" || obj.DeletionTimestamp != nil { - t.Errorf("unexpected resource version: %#v", obj) - } -} - -func TestEtcdParseResourceVersion(t *testing.T) { - testCases := []struct { - Version string - ExpectVersion uint64 - Err bool - }{ - {Version: "", ExpectVersion: 0}, - {Version: "a", Err: true}, - {Version: " ", Err: true}, - {Version: "1", ExpectVersion: 1}, - {Version: "10", ExpectVersion: 10}, - } - - v := APIObjectVersioner{} - testFuncs := []func(string) (uint64, error){ - v.ParseResourceVersion, - } - - for _, testCase := range testCases { - for i, f := range testFuncs { - version, err := f(testCase.Version) - switch { - case testCase.Err && err == nil: - t.Errorf("%s[%v]: unexpected non-error", testCase.Version, i) - case testCase.Err && !storage.IsInvalidError(err): - t.Errorf("%s[%v]: unexpected error: %v", testCase.Version, i, err) - case !testCase.Err && err != nil: - t.Errorf("%s[%v]: unexpected error: %v", testCase.Version, i, err) - } - if version != testCase.ExpectVersion { - t.Errorf("%s[%v]: expected version %d but was %d", testCase.Version, i, testCase.ExpectVersion, version) - } - } - } -} - -func TestCompareResourceVersion(t *testing.T) { - five := &storagetesting.TestResource{ObjectMeta: metav1.ObjectMeta{ResourceVersion: "5"}} - six := &storagetesting.TestResource{ObjectMeta: metav1.ObjectMeta{ResourceVersion: "6"}} - - versioner := APIObjectVersioner{} - - if e, a := -1, versioner.CompareResourceVersion(five, six); e != a { - t.Errorf("expected %v got %v", e, a) - } - if e, a := 1, versioner.CompareResourceVersion(six, five); e != a { - t.Errorf("expected %v got %v", e, a) - } - if e, a := 0, versioner.CompareResourceVersion(six, six); e != a { - t.Errorf("expected %v got %v", e, a) - } -} diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/doc.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/doc.go deleted file mode 100644 index 566f466510..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/doc.go +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2015 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 "k8s.io/apiserver/pkg/storage/etcd" diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD deleted file mode 100644 index 23190e6090..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/BUILD +++ /dev/null @@ -1,29 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = [ - "doc.go", - "etcdtest.go", - ], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd/etcdtest", - importpath = "k8s.io/apiserver/pkg/storage/etcd/etcdtest", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/doc.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/doc.go deleted file mode 100644 index d86e088d29..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/doc.go +++ /dev/null @@ -1,17 +0,0 @@ -/* -Copyright 2014 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 etcdtest // import "k8s.io/apiserver/pkg/storage/etcd/etcdtest" diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/etcdtest.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/etcdtest.go deleted file mode 100644 index 591108952e..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest/etcdtest.go +++ /dev/null @@ -1,36 +0,0 @@ -/* -Copyright 2014 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 etcdtest - -import ( - "os" - "path" -) - -// Returns the prefix set via the ETCD_PREFIX environment variable (if any). -func PathPrefix() string { - pref := os.Getenv("ETCD_PREFIX") - if pref == "" { - pref = "registry" - } - return path.Join("/", pref) -} - -// Adds the ETCD_PREFIX to the provided key -func AddPrefix(in string) string { - return path.Join(PathPrefix(), in) -} diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD deleted file mode 100644 index 807c63e1f4..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/metrics/BUILD +++ /dev/null @@ -1,27 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["metrics.go"], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd/metrics", - importpath = "k8s.io/apiserver/pkg/storage/etcd/metrics", - deps = ["//vendor/github.com/prometheus/client_golang/prometheus:go_default_library"], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD deleted file mode 100644 index 0bbe6add4e..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/BUILD +++ /dev/null @@ -1,45 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["utils.go"], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd/testing", - importpath = "k8s.io/apiserver/pkg/storage/etcd/testing", - deps = [ - "//staging/src/k8s.io/apimachinery/pkg/util/wait:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/etcdtest:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert:go_default_library", - "//staging/src/k8s.io/apiserver/pkg/storage/storagebackend:go_default_library", - "//vendor/github.com/coreos/etcd/client:go_default_library", - "//vendor/github.com/coreos/etcd/clientv3:go_default_library", - "//vendor/github.com/coreos/etcd/etcdserver:go_default_library", - "//vendor/github.com/coreos/etcd/etcdserver/api/etcdhttp:go_default_library", - "//vendor/github.com/coreos/etcd/etcdserver/api/v2http:go_default_library", - "//vendor/github.com/coreos/etcd/integration:go_default_library", - "//vendor/github.com/coreos/etcd/pkg/testutil:go_default_library", - "//vendor/github.com/coreos/etcd/pkg/transport:go_default_library", - "//vendor/github.com/coreos/etcd/pkg/types:go_default_library", - "//vendor/k8s.io/klog:go_default_library", - ], -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [ - ":package-srcs", - "//staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert:all-srcs", - ], - tags = ["automanaged"], -) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD deleted file mode 100644 index a9860b7477..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/BUILD +++ /dev/null @@ -1,26 +0,0 @@ -package(default_visibility = ["//visibility:public"]) - -load( - "@io_bazel_rules_go//go:def.bzl", - "go_library", -) - -go_library( - name = "go_default_library", - srcs = ["certificates.go"], - importmap = "k8s.io/kubernetes/vendor/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert", - importpath = "k8s.io/apiserver/pkg/storage/etcd/testing/testingcert", -) - -filegroup( - name = "package-srcs", - srcs = glob(["**"]), - tags = ["automanaged"], - visibility = ["//visibility:private"], -) - -filegroup( - name = "all-srcs", - srcs = [":package-srcs"], - tags = ["automanaged"], -) diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/certificates.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/certificates.go deleted file mode 100644 index 3eecfda609..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/testingcert/certificates.go +++ /dev/null @@ -1,113 +0,0 @@ -/* -Copyright 2014 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 testingcert - -// You can use cfssl tool to generate certificates, please refer -// https://github.com/coreos/etcd/tree/master/hack/tls-setup for more details. -// -// ca-config.json: -// expiry was changed from 1 year to 100 years (876000h) -// ca-csr.json: -// ca expiry was set to 100 years (876000h) ("ca":{"expiry":"876000h"}) -// key was changed from ecdsa,384 to rsa,2048 -// req-csr.json: -// key was changed from ecdsa,384 to rsa,2048 -// hosts were changed to "localhost","127.0.0.1" -const CAFileContent = ` ------BEGIN CERTIFICATE----- -MIIEUDCCAzigAwIBAgIUKfV5+qwlw3JneAPdJS7JCO8xIlYwDQYJKoZIhvcNAQEL -BQAwgawxCzAJBgNVBAYTAlVTMSowKAYDVQQKEyFIb25lc3QgQWNobWVkJ3MgVXNl -ZCBDZXJ0aWZpY2F0ZXMxKTAnBgNVBAsTIEhhc3RpbHktR2VuZXJhdGVkIFZhbHVl -cyBEaXZpc29uMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxp -Zm9ybmlhMRkwFwYDVQQDExBBdXRvZ2VuZXJhdGVkIENBMCAXDTE2MDMxMjIzMTQw -MFoYDzIxMTYwMjE3MjMxNDAwWjCBrDELMAkGA1UEBhMCVVMxKjAoBgNVBAoTIUhv -bmVzdCBBY2htZWQncyBVc2VkIENlcnRpZmljYXRlczEpMCcGA1UECxMgSGFzdGls -eS1HZW5lcmF0ZWQgVmFsdWVzIERpdmlzb24xFjAUBgNVBAcTDVNhbiBGcmFuY2lz -Y28xEzARBgNVBAgTCkNhbGlmb3JuaWExGTAXBgNVBAMTEEF1dG9nZW5lcmF0ZWQg -Q0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDP+acpr1USrObZFu+6 -v+Bk6rYw+sWynP373cNUUiHfnZ3D7f9yJsDscV0Mo4R8DddqkxawrA5fK2Fm2Z9G -vvY5par4/JbwRIEkXmeM4e52Mqv0Yuoz62O+0jQvRawnCCJMcKuo+ijHMjmm0AF1 -JdhTpTgvUwEP9WtY9JVTkfMCnDqZiqOU5D+d4YWUtkKqgQNvbZRs6wGubhMCZe8X -m+3bK8YAsWWtoFgr7plxXk4D8MLh+PqJ3oJjfxfW5A9dHbnSEmdZ3vrYwrKgyfNf -bvHE5qQmiSZUbUaCw3mKfaEMCNesPT46nBHxhAWc5aiL1tOXzvV5Uze7A7huPoI9 -a3etAgMBAAGjZjBkMA4GA1UdDwEB/wQEAwIBBjASBgNVHRMBAf8ECDAGAQH/AgEC -MB0GA1UdDgQWBBQYc0xXQ6VNjFvIOqWfXorxx9rKRzAfBgNVHSMEGDAWgBQYc0xX -Q6VNjFvIOqWfXorxx9rKRzANBgkqhkiG9w0BAQsFAAOCAQEAaKyHDWYVjEyEKTXJ -qS9r46ehL5FZlWD2ZytBP8aHE307l9AfQ+DFWldCNaqMXLZozsresVaSzSOI6UUD -lCIQLDpPyxbpR320u8mC08+lhhwR/YRkrEqKHk56Wl4OaqoyWmguqYU9p0DiQeTU -sZsxOwG7cyEEvvs+XmZ/vBLBOr59xyjwn4seQqzwZj3VYeiKLw40iQt1yT442rcP -CfdlE9wTEONvWT+kBGMt0JlalXH3jFvlfcGQdDfRmDeTJtA+uIbvJhwJuGCNHHAc -xqC+4mAGBPN/dMPXpjayHD5dOXIKLfrNpqse6jImYlY9zduvwIHRDK/zvqTyPlNZ -uR84Nw== ------END CERTIFICATE----- -` -const CertFileContent = ` ------BEGIN CERTIFICATE----- -MIIELzCCAxegAwIBAgIUcjkJA3cmHeoBQggaKZmfKebFL9cwDQYJKoZIhvcNAQEL -BQAwgawxCzAJBgNVBAYTAlVTMSowKAYDVQQKEyFIb25lc3QgQWNobWVkJ3MgVXNl -ZCBDZXJ0aWZpY2F0ZXMxKTAnBgNVBAsTIEhhc3RpbHktR2VuZXJhdGVkIFZhbHVl -cyBEaXZpc29uMRYwFAYDVQQHEw1TYW4gRnJhbmNpc2NvMRMwEQYDVQQIEwpDYWxp -Zm9ybmlhMRkwFwYDVQQDExBBdXRvZ2VuZXJhdGVkIENBMCAXDTE2MDMxMjIzMTQw -MFoYDzIxMTYwMjE3MjMxNDAwWjBVMRYwFAYDVQQKEw1hdXRvZ2VuZXJhdGVkMRUw -EwYDVQQLEwxldGNkIGNsdXN0ZXIxFTATBgNVBAcTDHRoZSBpbnRlcm5ldDENMAsG -A1UEAxMEZXRjZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOiW5A65 -hWGbnwceoZHM0+OexU4cPF/FpP+7BOK5i7ymSWAqfKfNuio2TB1lAErC1oX7bgTX -ieP10uz3FYWQNrlDn0I4KSA888rFPtx8GwoxH/52fGlE80BUV9PNeOVP+mYza0ih -oFj2+PhXVL/JZbx9P/2RLSNbEnq+OPk8AN82SkNtpFzanwtpb3f+kt73878KNoQu -xYZaCF1sK45Kn7mjKSDu/b3xUbTrNwnyVAGOdLzI7CCWOu+ECoZYAH4ZNHHakbyY -eWQ7U9leocEOPlqxsQAKodaCYjuAaOFIcz8/W81q+3qNw/6GbZ4znjRKQ3OtIPZ4 -JH1iNofCudWDp+0CAwEAAaOBnDCBmTAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYw -FAYIKwYBBQUHAwEGCCsGAQUFBwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFMJE -43qLCWhyZAE/wxNneSJw7aUVMB8GA1UdIwQYMBaAFBhzTFdDpU2MW8g6pZ9eivHH -2spHMBoGA1UdEQQTMBGCCWxvY2FsaG9zdIcEfwAAATANBgkqhkiG9w0BAQsFAAOC -AQEAuELC8tbmpyKlA4HLSDHOUquypNyiE6ftBIifJtp8bvBd+jiv4Pr8oVGxHoqq -48X7lamvDirLV5gmK0CxO+EXkIUHhULzPyYPynqsR7KZlk1PWghqsF65nwqcjS3b -tykLttD1AUDIozYvujVYBKXGxb6jcGM1rBF1XtslciFZ5qQnj6dTUujo9/xBA2ql -kOKiVXBNU8KFzq4c20RzHFLfWkbc30Q4XG4dTDVBeGupnFQRkZ0y2dSSU82QcLA/ -HgAyQSO7+csN13r84zbmDuRpUgo6eTXzJ+77G19KDkEL7XEtlw2jB2L6/o+3RGtw -JLOpEsgi7hsvOYCuTA3Krw52Mw== ------END CERTIFICATE----- -` -const KeyFileContent = ` ------BEGIN RSA PRIVATE KEY----- -MIIEpAIBAAKCAQEA6JbkDrmFYZufBx6hkczT457FThw8X8Wk/7sE4rmLvKZJYCp8 -p826KjZMHWUASsLWhftuBNeJ4/XS7PcVhZA2uUOfQjgpIDzzysU+3HwbCjEf/nZ8 -aUTzQFRX08145U/6ZjNrSKGgWPb4+FdUv8llvH0//ZEtI1sSer44+TwA3zZKQ22k -XNqfC2lvd/6S3vfzvwo2hC7FhloIXWwrjkqfuaMpIO79vfFRtOs3CfJUAY50vMjs -IJY674QKhlgAfhk0cdqRvJh5ZDtT2V6hwQ4+WrGxAAqh1oJiO4Bo4UhzPz9bzWr7 -eo3D/oZtnjOeNEpDc60g9ngkfWI2h8K51YOn7QIDAQABAoIBAQCj88Fc08++x0kp -ZqEzunPebsvcTLEOPa8aiUVfYLWszHbKsAhg7Pb+zHmI+upiyMcZeOvLw/eyVlVR -rrZgCRFaNN2texMaY3zigXnXSDBzVb+cyv7V4cGqpgmnBp7i3ia/Jh3I/A2gyK8l -t8HI03nAjXWvE0gDNS5okXBt16sxq6ZWyzHHVbN3UYtCDxnyh2Ibck4b+K8I8Bn1 -mwMsSqPXJS1UQ3U5UqcaMs7WOEGx+xmaPJTWm5Lb//BkakGuBTQj+7wotyXQYG5U -uZdPPcFRk6cqgjzUeKVUtGkdmfgHSTdIwZowkKibB4rdrudsRnSwfeB+83Jp9JwG -JPrGvsbNAoGBAPULIO+vVBZXVpUEAhvNSXtmOi/hAbQhOuix8iwHbJ5EbrWaDn4B -Reb2cw/fZGgGG4jtAOXdiY8R1XGGP8+RPZ5El10ZWnNrKQfpZ27gK/5yeq5dfGBG -4JLUpcrT180FJo00rgiQYJnHCk1fWrnzXNV6K08ZZHGr6yv4S/jbq/7vAoGBAPL9 -NTN/UWXWFlSHVcb2dFHcvIiPwRj9KwhuMu90b/CilBbSJ1av13xtf2ar5zkrEtWH -CB3q3wBaklQP9MfOqEWGZeOUcd9AbYWtxHjHmP5fJA9RjErjlTtqGkusNtZJbchU -UWfT/Tl9pREpCvJ/8iawc1hx7sHHKzYwnDnMaQbjAoGAfJdd9cBltr5NjZLuJ4in -dhCyQSncnePPegUQJwbXWVleGQPtnm+zRQ3Fzyo8eQ+x7Frk+/s6N/5PUlt6EmW8 -uL4TYAjGDq1LvXQVXTCp7cPzULjDxogDI2Tvr0MrFFksEtvYKQ6Pr2CeglybWrS8 -XOazIpK8mXdaKY8jwbKfrw0CgYAFnfrb3OaZzxAnFhXSiqH3vn2RPpl9JWUYRcvh -ozRvQKLhwCvuohP+KV3XlsO6m5dM3lk+r85F6NIXJWNINyvGp6u1ThovygJ+I502 -GY8c2kAwJndyx74MaJCBDVMbMwlZpzFWkBz7dj8ZnXRGVNTZNh0Ef2XAjwUdtJP3 -9hS7dwKBgQDCzq0RIxFyy3F5baGHWLVICxmhNExQ2+Vebh+DvsPKtnz6OrWdRbGX -wgGVLrn53s6eCblnXLtKr/Li+t7fS8IkQkvu5guOvI9VeVUmZhFET3GVmUxu+JTb -iQY4uBgaf8Fgay4dkOfjvlOpFDR4E7UbJpg8/cFKTrpwgOiUVyFVdQ== ------END RSA PRIVATE KEY----- -` diff --git a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go b/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go deleted file mode 100644 index 493abaa2fe..0000000000 --- a/staging/src/k8s.io/apiserver/pkg/storage/etcd/testing/utils.go +++ /dev/null @@ -1,302 +0,0 @@ -/* -Copyright 2015 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 testing - -import ( - "fmt" - "io/ioutil" - "net" - "net/http" - "net/http/httptest" - "os" - "path" - "testing" - "time" - - "k8s.io/apimachinery/pkg/util/wait" - "k8s.io/apiserver/pkg/storage/etcd/etcdtest" - "k8s.io/apiserver/pkg/storage/etcd/testing/testingcert" - "k8s.io/apiserver/pkg/storage/storagebackend" - - "context" - - etcd "github.com/coreos/etcd/client" - "github.com/coreos/etcd/clientv3" - "github.com/coreos/etcd/etcdserver" - "github.com/coreos/etcd/etcdserver/api/etcdhttp" - "github.com/coreos/etcd/etcdserver/api/v2http" - "github.com/coreos/etcd/integration" - "github.com/coreos/etcd/pkg/testutil" - "github.com/coreos/etcd/pkg/transport" - "github.com/coreos/etcd/pkg/types" - "k8s.io/klog" -) - -// EtcdTestServer encapsulates the datastructures needed to start local instance for testing -type EtcdTestServer struct { - // The following are lumped etcd2 test server params - // TODO: Deprecate in a post 1.5 release - etcdserver.ServerConfig - PeerListeners, ClientListeners []net.Listener - Client etcd.Client - - CertificatesDir string - CertFile string - KeyFile string - CAFile string - - raftHandler http.Handler - s *etcdserver.EtcdServer - hss []*httptest.Server - - // The following are lumped etcd3 test server params - v3Cluster *integration.ClusterV3 - V3Client *clientv3.Client -} - -// newLocalListener opens a port localhost using any port -func newLocalListener(t *testing.T) net.Listener { - l, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatal(err) - } - return l -} - -// newSecuredLocalListener opens a port localhost using any port -// with SSL enable -func newSecuredLocalListener(t *testing.T, certFile, keyFile, caFile string) net.Listener { - var l net.Listener - l, err := net.Listen("tcp", "127.0.0.1:0") - if err != nil { - t.Fatal(err) - } - tlsInfo := transport.TLSInfo{ - CertFile: certFile, - KeyFile: keyFile, - CAFile: caFile, - } - tlscfg, err := tlsInfo.ServerConfig() - if err != nil { - t.Fatalf("unexpected serverConfig error: %v", err) - } - l, err = transport.NewKeepAliveListener(l, "https", tlscfg) - if err != nil { - t.Fatal(err) - } - return l -} - -func newHttpTransport(t *testing.T, certFile, keyFile, caFile string) etcd.CancelableTransport { - tlsInfo := transport.TLSInfo{ - CertFile: certFile, - KeyFile: keyFile, - CAFile: caFile, - } - tr, err := transport.NewTransport(tlsInfo, time.Second) - if err != nil { - t.Fatal(err) - } - return tr -} - -// configureTestCluster will set the params to start an etcd server -func configureTestCluster(t *testing.T, name string, https bool) *EtcdTestServer { - var err error - m := &EtcdTestServer{} - - pln := newLocalListener(t) - m.PeerListeners = []net.Listener{pln} - m.PeerURLs, err = types.NewURLs([]string{"http://" + pln.Addr().String()}) - if err != nil { - t.Fatal(err) - } - - // Allow test launches to control where etcd data goes, for space or performance reasons - baseDir := os.Getenv("TEST_ETCD_DIR") - if len(baseDir) == 0 { - baseDir = os.TempDir() - } - - if https { - m.CertificatesDir, err = ioutil.TempDir(baseDir, "etcd_certificates") - if err != nil { - t.Fatal(err) - } - m.CertFile = path.Join(m.CertificatesDir, "etcdcert.pem") - if err = ioutil.WriteFile(m.CertFile, []byte(testingcert.CertFileContent), 0644); err != nil { - t.Fatal(err) - } - m.KeyFile = path.Join(m.CertificatesDir, "etcdkey.pem") - if err = ioutil.WriteFile(m.KeyFile, []byte(testingcert.KeyFileContent), 0644); err != nil { - t.Fatal(err) - } - m.CAFile = path.Join(m.CertificatesDir, "ca.pem") - if err = ioutil.WriteFile(m.CAFile, []byte(testingcert.CAFileContent), 0644); err != nil { - t.Fatal(err) - } - - cln := newSecuredLocalListener(t, m.CertFile, m.KeyFile, m.CAFile) - m.ClientListeners = []net.Listener{cln} - m.ClientURLs, err = types.NewURLs([]string{"https://" + cln.Addr().String()}) - if err != nil { - t.Fatal(err) - } - } else { - cln := newLocalListener(t) - m.ClientListeners = []net.Listener{cln} - m.ClientURLs, err = types.NewURLs([]string{"http://" + cln.Addr().String()}) - if err != nil { - t.Fatal(err) - } - } - - m.AuthToken = "simple" - m.Name = name - m.DataDir, err = ioutil.TempDir(baseDir, "etcd") - if err != nil { - t.Fatal(err) - } - - clusterStr := fmt.Sprintf("%s=http://%s", name, pln.Addr().String()) - m.InitialPeerURLsMap, err = types.NewURLsMap(clusterStr) - if err != nil { - t.Fatal(err) - } - m.InitialClusterToken = "TestEtcd" - m.NewCluster = true - m.ForceNewCluster = false - m.ElectionTicks = 10 - m.TickMs = uint(10) - - return m -} - -// launch will attempt to start the etcd server -func (m *EtcdTestServer) launch(t *testing.T) error { - var err error - if m.s, err = etcdserver.NewServer(m.ServerConfig); err != nil { - return fmt.Errorf("failed to initialize the etcd server: %v", err) - } - m.s.SyncTicker = time.NewTicker(500 * time.Millisecond) - m.s.Start() - m.raftHandler = &testutil.PauseableHandler{Next: etcdhttp.NewPeerHandler(m.s)} - for _, ln := range m.PeerListeners { - hs := &httptest.Server{ - Listener: ln, - Config: &http.Server{Handler: m.raftHandler}, - } - hs.Start() - m.hss = append(m.hss, hs) - } - for _, ln := range m.ClientListeners { - hs := &httptest.Server{ - Listener: ln, - Config: &http.Server{Handler: v2http.NewClientHandler(m.s, m.ServerConfig.ReqTimeout())}, - } - hs.Start() - m.hss = append(m.hss, hs) - } - return nil -} - -// waitForEtcd wait until etcd is propagated correctly -func (m *EtcdTestServer) waitUntilUp() error { - membersAPI := etcd.NewMembersAPI(m.Client) - for start := time.Now(); time.Since(start) < wait.ForeverTestTimeout; time.Sleep(10 * time.Millisecond) { - members, err := membersAPI.List(context.TODO()) - if err != nil { - klog.Errorf("Error when getting etcd cluster members") - continue - } - if len(members) == 1 && len(members[0].ClientURLs) > 0 { - return nil - } - } - return fmt.Errorf("timeout on waiting for etcd cluster") -} - -// Terminate will shutdown the running etcd server -func (m *EtcdTestServer) Terminate(t *testing.T) { - if m.v3Cluster != nil { - m.v3Cluster.Terminate(t) - } else { - m.Client = nil - m.s.Stop() - // TODO: This is a pretty ugly hack to workaround races during closing - // in-memory etcd server in unit tests - see #18928 for more details. - // We should get rid of it as soon as we have a proper fix - etcd clients - // have overwritten transport counting opened connections (probably by - // overwriting Dial function) and termination function waiting for all - // connections to be closed and stopping accepting new ones. - time.Sleep(250 * time.Millisecond) - for _, hs := range m.hss { - hs.CloseClientConnections() - hs.Close() - } - if err := os.RemoveAll(m.ServerConfig.DataDir); err != nil { - t.Fatal(err) - } - if len(m.CertificatesDir) > 0 { - if err := os.RemoveAll(m.CertificatesDir); err != nil { - t.Fatal(err) - } - } - } -} - -// NewEtcdTestClientServer DEPRECATED creates a new client and server for testing -func NewEtcdTestClientServer(t *testing.T) *EtcdTestServer { - server := configureTestCluster(t, "foo", true) - err := server.launch(t) - if err != nil { - t.Fatalf("Failed to start etcd server error=%v", err) - return nil - } - - cfg := etcd.Config{ - Endpoints: server.ClientURLs.StringSlice(), - Transport: newHttpTransport(t, server.CertFile, server.KeyFile, server.CAFile), - } - server.Client, err = etcd.New(cfg) - if err != nil { - server.Terminate(t) - t.Fatalf("Unexpected error in NewEtcdTestClientServer (%v)", err) - return nil - } - if err := server.waitUntilUp(); err != nil { - server.Terminate(t) - t.Fatalf("Unexpected error in waitUntilUp (%v)", err) - return nil - } - return server -} - -// NewEtcd3TestClientServer creates a new client and server for testing -func NewUnsecuredEtcd3TestClientServer(t *testing.T) (*EtcdTestServer, *storagebackend.Config) { - server := &EtcdTestServer{ - v3Cluster: integration.NewClusterV3(t, &integration.ClusterConfig{Size: 1}), - } - server.V3Client = server.v3Cluster.RandClient() - config := &storagebackend.Config{ - Type: "etcd3", - Prefix: etcdtest.PathPrefix(), - ServerList: server.V3Client.Endpoints(), - Paging: true, - } - return server, config -} diff --git a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/factory.go b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/factory.go index a1dc6c0fa8..ff12e70c48 100644 --- a/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/factory.go +++ b/staging/src/k8s.io/apiserver/pkg/storage/storagebackend/factory/factory.go @@ -29,8 +29,6 @@ type DestroyFunc func() // Create creates a storage backend based on given config. func Create(c storagebackend.Config) (storage.Interface, DestroyFunc, error) { switch c.Type { - case "etcd2": - return nil, nil, fmt.Errorf("%v is no longer a supported storage backend", c.Type) case storagebackend.StorageTypeUnset, storagebackend.StorageTypeETCD3: return newETCD3Storage(c) default: @@ -41,8 +39,6 @@ func Create(c storagebackend.Config) (storage.Interface, DestroyFunc, error) { // CreateHealthCheck creates a healthcheck function based on given config. func CreateHealthCheck(c storagebackend.Config) (func() error, error) { switch c.Type { - case "etcd2": - return nil, fmt.Errorf("%v is no longer a supported storage backend", c.Type) case storagebackend.StorageTypeUnset, storagebackend.StorageTypeETCD3: return newETCD3HealthCheck(c) default: