From a0c038982edb975f2ce33998cb4f016a45725c9b Mon Sep 17 00:00:00 2001 From: nikhiljindal Date: Thu, 15 Oct 2015 14:16:08 -0700 Subject: [PATCH] Fixing integrations test --- test/integration/auth_test.go | 109 +++++++++++++++++++-- test/integration/framework/etcd_utils.go | 7 ++ test/integration/framework/master_utils.go | 6 +- test/integration/kubectl_test.go | 2 +- test/integration/scheduler_test.go | 26 ++++- test/integration/secret_test.go | 12 ++- test/integration/service_account_test.go | 18 +++- 7 files changed, 160 insertions(+), 20 deletions(-) diff --git a/test/integration/auth_test.go b/test/integration/auth_test.go index 2ed14a6039e..98dc92b964e 100644 --- a/test/integration/auth_test.go +++ b/test/integration/auth_test.go @@ -390,8 +390,19 @@ func TestAuthModeAlwaysAllow(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() + var m *master.Master s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { m.Handler.ServeHTTP(w, req) @@ -408,7 +419,7 @@ func TestAuthModeAlwaysAllow(t *testing.T) { APIPrefix: "/api", Authorizer: apiserver.NewAlwaysAllowAuthorizer(), AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) transport := http.DefaultTransport @@ -508,8 +519,18 @@ func TestAuthModeAlwaysDeny(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() var m *master.Master s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -527,7 +548,7 @@ func TestAuthModeAlwaysDeny(t *testing.T) { APIPrefix: "/api", Authorizer: apiserver.NewAlwaysDenyAuthorizer(), AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) transport := http.DefaultTransport @@ -578,8 +599,18 @@ func TestAliceNotForbiddenOrUnauthorized(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() var m *master.Master s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -598,7 +629,7 @@ func TestAliceNotForbiddenOrUnauthorized(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: allowAliceAuthorizer{}, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) previousResourceVersion := make(map[string]float64) @@ -668,8 +699,18 @@ func TestBobIsForbidden(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() var m *master.Master s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -688,7 +729,7 @@ func TestBobIsForbidden(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: allowAliceAuthorizer{}, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) transport := http.DefaultTransport @@ -732,8 +773,18 @@ func TestUnknownUserIsUnauthorized(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() var m *master.Master s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -752,7 +803,7 @@ func TestUnknownUserIsUnauthorized(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: allowAliceAuthorizer{}, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) transport := http.DefaultTransport @@ -819,8 +870,18 @@ func TestAuthorizationAttributeDetermination(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() trackingAuthorizer := &trackingAuthorizer{} @@ -841,7 +902,7 @@ func TestAuthorizationAttributeDetermination(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: trackingAuthorizer, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) transport := http.DefaultTransport @@ -902,8 +963,18 @@ func TestNamespaceAuthorization(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() a := newAuthorizerWithContents(t, `{"namespace": "foo"} `) @@ -925,7 +996,7 @@ func TestNamespaceAuthorization(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: a, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) previousResourceVersion := make(map[string]float64) @@ -1020,8 +1091,18 @@ func TestKindAuthorization(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() a := newAuthorizerWithContents(t, `{"resource": "services"} `) @@ -1043,7 +1124,7 @@ func TestKindAuthorization(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: a, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) previousResourceVersion := make(map[string]float64) @@ -1126,8 +1207,18 @@ func TestReadOnlyAuthorization(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() a := newAuthorizerWithContents(t, `{"readonly": true}`) @@ -1148,7 +1239,7 @@ func TestReadOnlyAuthorization(t *testing.T) { Authenticator: getTestTokenAuth(), Authorizer: a, AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) transport := http.DefaultTransport diff --git a/test/integration/framework/etcd_utils.go b/test/integration/framework/etcd_utils.go index 3cf7b9b47db..93012ab8ba5 100644 --- a/test/integration/framework/etcd_utils.go +++ b/test/integration/framework/etcd_utils.go @@ -44,6 +44,13 @@ func NewEtcdStorage() (storage.Interface, error) { return master.NewEtcdStorage(NewEtcdClient(), latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) } +func NewExtensionsEtcdStorage(client *etcd.Client) (storage.Interface, error) { + if client == nil { + client = NewEtcdClient() + } + return master.NewEtcdStorage(client, latest.GroupOrDie("extensions").InterfacesFor, testapi.Extensions.GroupAndVersion(), etcdtest.PathPrefix()) +} + func RequireEtcd() { if _, err := NewEtcdClient().Get("/", false, false); err != nil { glog.Fatalf("unable to connect to etcd for testing: %v", err) diff --git a/test/integration/framework/master_utils.go b/test/integration/framework/master_utils.go index 08a25b15864..258aa5d46dc 100644 --- a/test/integration/framework/master_utils.go +++ b/test/integration/framework/master_utils.go @@ -131,8 +131,8 @@ func startMasterOrDie(masterConfig *master.Config) (*master.Master, *httptest.Se if err != nil { glog.Fatalf("Failed to create etcd storage for master %v", err) } - expEtcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("extensions").InterfacesFor, latest.GroupOrDie("extensions").GroupVersion, etcdtest.PathPrefix()) - storageVersions["extensions"] = latest.GroupOrDie("extensions").GroupVersion + expEtcdStorage, err := NewExtensionsEtcdStorage(etcdClient) + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() if err != nil { glog.Fatalf("Failed to create etcd storage for master %v", err) } @@ -274,7 +274,7 @@ func RunAMaster(t *testing.T) (*master.Master, *httptest.Server) { if err != nil { t.Fatalf("unexpected error: %v", err) } - expEtcdStorage, err := master.NewEtcdStorage(etcdClient, latest.GroupOrDie("extensions").InterfacesFor, testapi.Extensions.GroupAndVersion(), etcdtest.PathPrefix()) + expEtcdStorage, err := NewExtensionsEtcdStorage(etcdClient) storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() if err != nil { t.Fatalf("unexpected error: %v", err) diff --git a/test/integration/kubectl_test.go b/test/integration/kubectl_test.go index 0847ba3fb9e..cb62adb88f4 100644 --- a/test/integration/kubectl_test.go +++ b/test/integration/kubectl_test.go @@ -38,7 +38,7 @@ func TestKubectlValidation(t *testing.T) { // The following test the experimental api. // TOOD: Replace with something more robust. These may move. - {`{"apiVersion": "extensions/v1beta1", "kind": "DaemonSet"}`, false}, + {`{"apiVersion": "extensions/v1beta1", "kind": "Ingress"}`, false}, {`{"apiVersion": "extensions/v1beta1", "kind": "Job"}`, false}, {`{"apiVersion": "vNotAVersion", "kind": "Job"}`, true}, } diff --git a/test/integration/scheduler_test.go b/test/integration/scheduler_test.go index 8a617e8e028..548c88b07a1 100644 --- a/test/integration/scheduler_test.go +++ b/test/integration/scheduler_test.go @@ -59,8 +59,19 @@ func TestUnschedulableNodes(t *testing.T) { if err != nil { t.Fatalf("Couldn't create etcd storage: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() + framework.DeleteAllEtcdKeys() var m *master.Master @@ -79,7 +90,7 @@ func TestUnschedulableNodes(t *testing.T) { APIPrefix: "/api", Authorizer: apiserver.NewAlwaysAllowAuthorizer(), AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) restClient := client.NewOrDie(&client.Config{Host: s.URL, Version: testapi.Default.Version()}) @@ -298,8 +309,19 @@ func BenchmarkScheduling(b *testing.B) { if err != nil { b.Fatalf("Couldn't create etcd storage: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + b.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() + framework.DeleteAllEtcdKeys() var m *master.Master @@ -318,7 +340,7 @@ func BenchmarkScheduling(b *testing.B) { APIPrefix: "/api", Authorizer: apiserver.NewAlwaysAllowAuthorizer(), AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) c := client.NewOrDie(&client.Config{ diff --git a/test/integration/secret_test.go b/test/integration/secret_test.go index bd126f9730c..4df513252d7 100644 --- a/test/integration/secret_test.go +++ b/test/integration/secret_test.go @@ -51,8 +51,18 @@ func TestSecrets(t *testing.T) { if err != nil { t.Fatalf("unexpected error: %v", err) } + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() var m *master.Master s := httptest.NewServer(http.HandlerFunc(func(w http.ResponseWriter, req *http.Request) { @@ -70,7 +80,7 @@ func TestSecrets(t *testing.T) { APIPrefix: "/api", Authorizer: apiserver.NewAlwaysAllowAuthorizer(), AdmissionControl: admit.NewAlwaysAdmit(), - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) framework.DeleteAllEtcdKeys() diff --git a/test/integration/service_account_test.go b/test/integration/service_account_test.go index 82b9c9cc8e8..2e0c05c13f2 100644 --- a/test/integration/service_account_test.go +++ b/test/integration/service_account_test.go @@ -33,7 +33,6 @@ import ( "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/errors" - "k8s.io/kubernetes/pkg/api/latest" "k8s.io/kubernetes/pkg/api/testapi" "k8s.io/kubernetes/pkg/auth/authenticator" "k8s.io/kubernetes/pkg/auth/authenticator/bearertoken" @@ -44,11 +43,11 @@ import ( "k8s.io/kubernetes/pkg/fields" "k8s.io/kubernetes/pkg/labels" "k8s.io/kubernetes/pkg/master" - "k8s.io/kubernetes/pkg/tools/etcdtest" "k8s.io/kubernetes/pkg/util/sets" "k8s.io/kubernetes/pkg/util/wait" serviceaccountadmission "k8s.io/kubernetes/plugin/pkg/admission/serviceaccount" "k8s.io/kubernetes/plugin/pkg/auth/authenticator/request/union" + "k8s.io/kubernetes/test/integration/framework" ) const ( @@ -341,12 +340,23 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config, deleteAllEtcdKeys() // Etcd - etcdStorage, err := master.NewEtcdStorage(newEtcdClient(), latest.GroupOrDie("").InterfacesFor, testapi.Default.Version(), etcdtest.PathPrefix()) + etcdStorage, err := framework.NewEtcdStorage() if err != nil { t.Fatalf("unexpected error: %v", err) } + + expEtcdStorage, err := framework.NewExtensionsEtcdStorage(nil) + if err != nil { + t.Fatalf("unexpected error: %v", err) + } + storageDestinations := master.NewStorageDestinations() storageDestinations.AddAPIGroup("", etcdStorage) + storageDestinations.AddAPIGroup("extensions", expEtcdStorage) + + storageVersions := make(map[string]string) + storageVersions[""] = testapi.Default.Version() + storageVersions["extensions"] = testapi.Extensions.GroupAndVersion() // Listener var m *master.Master @@ -422,7 +432,7 @@ func startServiceAccountTestServer(t *testing.T) (*client.Client, client.Config, Authenticator: authenticator, Authorizer: authorizer, AdmissionControl: serviceAccountAdmission, - StorageVersions: map[string]string{"": testapi.Default.Version()}, + StorageVersions: storageVersions, }) // Start the service account and service account token controllers