diff --git a/test/e2e/federated-service.go b/test/e2e/federated-service.go index 156c08e3090..daa850bc924 100644 --- a/test/e2e/federated-service.go +++ b/test/e2e/federated-service.go @@ -23,8 +23,8 @@ import ( "strconv" "time" - "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3" + federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" + "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/v1" @@ -94,11 +94,11 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { createClusterObjectOrFail(f, &context) } - var clusterList *federation.ClusterList + var clusterList *federationapi.ClusterList By("Obtaining a list of all the clusters") if err := wait.PollImmediate(framework.Poll, FederatedServiceTimeout, func() (bool, error) { var err error - clusterList, err = f.FederationClientset.Federation().Clusters().List(api.ListOptions{}) + clusterList, err = f.FederationClientset_1_4.Federation().Clusters().List(api.ListOptions{}) if err != nil { return false, err } @@ -174,10 +174,10 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { } // Delete the registered clusters in the federation API server. - clusterList, err := f.FederationClientset.Federation().Clusters().List(api.ListOptions{}) + clusterList, err := f.FederationClientset_1_4.Federation().Clusters().List(api.ListOptions{}) framework.ExpectNoError(err, "Error listing clusters") for _, cluster := range clusterList.Items { - err := f.FederationClientset.Federation().Clusters().Delete(cluster.Name, &api.DeleteOptions{}) + err := f.FederationClientset_1_4.Federation().Clusters().Delete(cluster.Name, &api.DeleteOptions{}) framework.ExpectNoError(err, "Error deleting cluster %q", cluster.Name) } }) @@ -195,20 +195,20 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { It("should succeed", func() { framework.SkipUnlessFederated(f.Client) - service := createServiceOrFail(f.FederationClientset_1_3, f.Namespace.Name) + service := createServiceOrFail(f.FederationClientset_1_4, f.Namespace.Name) By(fmt.Sprintf("Creation of service %q in namespace %q succeeded. Deleting service.", service.Name, f.Namespace.Name)) // Cleanup - err := f.FederationClientset_1_3.Services(f.Namespace.Name).Delete(service.Name, &api.DeleteOptions{}) + err := f.FederationClientset_1_4.Services(f.Namespace.Name).Delete(service.Name, &api.DeleteOptions{}) framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, service.Namespace) By(fmt.Sprintf("Deletion of service %q in namespace %q succeeded.", service.Name, f.Namespace.Name)) }) It("should create matching services in underlying clusters", func() { framework.SkipUnlessFederated(f.Client) - service := createServiceOrFail(f.FederationClientset_1_3, f.Namespace.Name) + service := createServiceOrFail(f.FederationClientset_1_4, f.Namespace.Name) defer func() { // Cleanup By(fmt.Sprintf("Deleting service %q in namespace %q", service.Name, f.Namespace.Name)) - err := f.FederationClientset_1_3.Services(f.Namespace.Name).Delete(service.Name, &api.DeleteOptions{}) + err := f.FederationClientset_1_4.Services(f.Namespace.Name).Delete(service.Name, &api.DeleteOptions{}) framework.ExpectNoError(err, "Error deleting service %q in namespace %q", service.Name, f.Namespace.Name) }() waitForServiceShardsOrFail(f.Namespace.Name, service, clusters) @@ -224,7 +224,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { BeforeEach(func() { framework.SkipUnlessFederated(f.Client) createBackendPodsOrFail(clusters, f.Namespace.Name, FederatedServicePodName) - service = createServiceOrFail(f.FederationClientset_1_3, f.Namespace.Name) + service = createServiceOrFail(f.FederationClientset_1_4, f.Namespace.Name) waitForServiceShardsOrFail(f.Namespace.Name, service, clusters) }) @@ -233,7 +233,7 @@ var _ = framework.KubeDescribe("[Feature:Federation]", func() { deleteBackendPodsOrFail(clusters, f.Namespace.Name) if service != nil { - deleteServiceOrFail(f.FederationClientset_1_3, f.Namespace.Name, service.Name) + deleteServiceOrFail(f.FederationClientset_1_4, f.Namespace.Name, service.Name) service = nil } else { By("No service to delete. Service is nil") @@ -356,9 +356,9 @@ func waitForServiceShardsOrFail(namespace string, service *v1.Service, clusters } } -func createServiceOrFail(clientset *federation_release_1_3.Clientset, namespace string) *v1.Service { +func createService(clientset *federation_release_1_4.Clientset, namespace string) (*v1.Service, error) { if clientset == nil || len(namespace) == 0 { - Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteServiceOrFail: clientset: %v, namespace: %v", clientset, namespace)) + return nil, fmt.Errorf("Internal error: invalid parameters passed to deleteServiceOrFail: clientset: %v, namespace: %v", clientset, namespace) } By(fmt.Sprintf("Creating federated service %q in namespace %q", FederatedServiceName, namespace)) @@ -379,13 +379,17 @@ func createServiceOrFail(clientset *federation_release_1_3.Clientset, namespace }, } By(fmt.Sprintf("Trying to create service %q in namespace %q", service.Name, namespace)) - _, err := clientset.Services(namespace).Create(service) + return clientset.Services(namespace).Create(service) +} + +func createServiceOrFail(clientset *federation_release_1_4.Clientset, namespace string) *v1.Service { + service, err := createService(clientset, namespace) framework.ExpectNoError(err, "Creating service %q in namespace %q", service.Name, namespace) By(fmt.Sprintf("Successfully created federated service %q in namespace %q", FederatedServiceName, namespace)) return service } -func deleteServiceOrFail(clientset *federation_release_1_3.Clientset, namespace string, serviceName string) { +func deleteServiceOrFail(clientset *federation_release_1_4.Clientset, namespace string, serviceName string) { if clientset == nil || len(namespace) == 0 || len(serviceName) == 0 { Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteServiceOrFail: clientset: %v, namespace: %v, service: %v", clientset, namespace, serviceName)) } diff --git a/test/e2e/federation-apiserver.go b/test/e2e/federation-apiserver.go index 9be08a8416b..993948de991 100644 --- a/test/e2e/federation-apiserver.go +++ b/test/e2e/federation-apiserver.go @@ -21,9 +21,10 @@ import ( "time" . "github.com/onsi/ginkgo" - federationapi "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" + federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" + "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/util/wait" "k8s.io/kubernetes/test/e2e/framework" @@ -40,10 +41,10 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func // Delete registered clusters. // This is if a test failed, it should not affect other tests. - clusterList, err := f.FederationClientset.Federation().Clusters().List(api.ListOptions{}) + clusterList, err := f.FederationClientset_1_4.Federation().Clusters().List(api.ListOptions{}) Expect(err).NotTo(HaveOccurred()) for _, cluster := range clusterList.Items { - err := f.FederationClientset.Federation().Clusters().Delete(cluster.Name, &api.DeleteOptions{}) + err := f.FederationClientset_1_4.Federation().Clusters().Delete(cluster.Name, &api.DeleteOptions{}) Expect(err).NotTo(HaveOccurred()) } }) @@ -68,14 +69,14 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func framework.Logf("Deleting %d clusters", len(contexts)) for _, context := range contexts { framework.Logf("Deleting cluster object: %s (%s, secret: %s)", context.Name, context.Cluster.Cluster.Server, context.Name) - err := f.FederationClientset.Federation().Clusters().Delete(context.Name, &api.DeleteOptions{}) + err := f.FederationClientset_1_4.Federation().Clusters().Delete(context.Name, &api.DeleteOptions{}) framework.ExpectNoError(err, fmt.Sprintf("unexpected error in deleting cluster %s: %+v", context.Name, err)) framework.Logf("Successfully deleted cluster object: %s (%s, secret: %s)", context.Name, context.Cluster.Cluster.Server, context.Name) } // There should not be any remaining cluster. framework.Logf("Verifying that zero clusters remain") - clusterList, err := f.FederationClientset.Federation().Clusters().List(api.ListOptions{}) + clusterList, err := f.FederationClientset_1_4.Federation().Clusters().List(api.ListOptions{}) Expect(err).NotTo(HaveOccurred()) if len(clusterList.Items) != 0 { framework.Failf("there should not have been any remaining clusters. Found: %+v", clusterList) @@ -86,14 +87,14 @@ var _ = framework.KubeDescribe("Federation apiserver [Feature:Federation]", func }) // Verify that the cluster is marked ready. -func isReady(clusterName string, clientset *federation_internalclientset.Clientset) error { +func isReady(clusterName string, clientset *federation_release_1_4.Clientset) error { return wait.PollImmediate(time.Second, 5*time.Minute, func() (bool, error) { c, err := clientset.Federation().Clusters().Get(clusterName) if err != nil { return false, err } for _, condition := range c.Status.Conditions { - if condition.Type == federationapi.ClusterReady && condition.Status == api.ConditionTrue { + if condition.Type == federationapi.ClusterReady && condition.Status == v1.ConditionTrue { return true, nil } } diff --git a/test/e2e/federation-util.go b/test/e2e/federation-util.go index 460180072a6..8e83450a0fc 100644 --- a/test/e2e/federation-util.go +++ b/test/e2e/federation-util.go @@ -19,15 +19,15 @@ package e2e import ( "fmt" - federationapi "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/pkg/api" + federationapi "k8s.io/kubernetes/federation/apis/federation/v1beta1" + "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/test/e2e/framework" ) func createClusterObjectOrFail(f *framework.Framework, context *framework.E2EContext) { framework.Logf("Creating cluster object: %s (%s, secret: %s)", context.Name, context.Cluster.Cluster.Server, context.Name) cluster := federationapi.Cluster{ - ObjectMeta: api.ObjectMeta{ + ObjectMeta: v1.ObjectMeta{ Name: context.Name, }, Spec: federationapi.ClusterSpec{ @@ -37,7 +37,7 @@ func createClusterObjectOrFail(f *framework.Framework, context *framework.E2ECon ServerAddress: context.Cluster.Cluster.Server, }, }, - SecretRef: &api.LocalObjectReference{ + SecretRef: &v1.LocalObjectReference{ // Note: Name must correlate with federation build script secret name, // which currently matches the cluster name. // See federation/cluster/common.sh:132 @@ -45,18 +45,18 @@ func createClusterObjectOrFail(f *framework.Framework, context *framework.E2ECon }, }, } - _, err := f.FederationClientset.Federation().Clusters().Create(&cluster) + _, err := f.FederationClientset_1_4.Federation().Clusters().Create(&cluster) framework.ExpectNoError(err, fmt.Sprintf("creating cluster: %+v", err)) framework.Logf("Successfully created cluster object: %s (%s, secret: %s)", context.Name, context.Cluster.Cluster.Server, context.Name) } func clusterIsReadyOrFail(f *framework.Framework, context *framework.E2EContext) { - c, err := f.FederationClientset.Federation().Clusters().Get(context.Name) + c, err := f.FederationClientset_1_4.Federation().Clusters().Get(context.Name) framework.ExpectNoError(err, fmt.Sprintf("get cluster: %+v", err)) if c.ObjectMeta.Name != context.Name { framework.Failf("cluster name does not match input context: actual=%+v, expected=%+v", c, context) } - err = isReady(context.Name, f.FederationClientset) + err = isReady(context.Name, f.FederationClientset_1_4) framework.ExpectNoError(err, fmt.Sprintf("unexpected error in verifying if cluster %s is ready: %+v", context.Name, err)) framework.Logf("Cluster %s is Ready", context.Name) } diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 654327fa44f..1d1cef1de64 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -29,9 +29,6 @@ import ( release_1_4 "k8s.io/client-go/1.4/kubernetes" "k8s.io/client-go/1.4/pkg/util/sets" clientreporestclient "k8s.io/client-go/1.4/rest" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" - unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3" "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" "k8s.io/kubernetes/pkg/api" apierrs "k8s.io/kubernetes/pkg/api/errors" @@ -64,12 +61,7 @@ type Framework struct { Clientset_1_3 *release_1_3.Clientset StagingClient *release_1_4.Clientset - // TODO(mml): Remove this. We should generally use the versioned clientset. - FederationClientset *federation_internalclientset.Clientset - FederationClientset_1_3 *federation_release_1_3.Clientset FederationClientset_1_4 *federation_release_1_4.Clientset - // TODO: remove FederationClient, all the client access must be through FederationClientset - FederationClient *unversionedfederation.FederationClient Namespace *api.Namespace // Every test has at least one namespace namespacesToDelete []*api.Namespace // Some tests have more than one. @@ -195,22 +187,10 @@ func (f *Framework) BeforeEach() { } if f.federated { - if f.FederationClient == nil { - By("Creating a federated kubernetes client") + if f.FederationClientset_1_4 == nil { + By("Creating a release 1.4 federation Clientset") var err error - f.FederationClient, err = LoadFederationClient() - Expect(err).NotTo(HaveOccurred()) - } - if f.FederationClientset == nil { - By("Creating an unversioned federation Clientset") - var err error - f.FederationClientset, err = LoadFederationClientset() - Expect(err).NotTo(HaveOccurred()) - } - if f.FederationClientset_1_3 == nil { - By("Creating a release 1.3 federation Clientset") - var err error - f.FederationClientset_1_3, err = LoadFederationClientset_1_3() + f.FederationClientset_1_4, err = LoadFederationClientset_1_4() Expect(err).NotTo(HaveOccurred()) } if f.FederationClientset_1_4 == nil { @@ -220,7 +200,7 @@ func (f *Framework) BeforeEach() { Expect(err).NotTo(HaveOccurred()) } By("Waiting for federation-apiserver to be ready") - err := WaitForFederationApiserverReady(f.FederationClientset) + err := WaitForFederationApiserverReady(f.FederationClientset_1_4) Expect(err).NotTo(HaveOccurred()) By("federation-apiserver is ready") } @@ -300,15 +280,11 @@ func (f *Framework) AfterEach() { if f.federated { defer func() { - if f.FederationClient == nil { - Logf("Warning: framework is marked federated, but has no federation client") + if f.FederationClientset_1_4 == nil { + Logf("Warning: framework is marked federated, but has no federation 1.4 clientset") return } - if f.FederationClientset == nil { - Logf("Warning: framework is marked federated, but has no federation clientset") - return - } - if err := f.FederationClient.Clusters().DeleteCollection(nil, api.ListOptions{}); err != nil { + if err := f.FederationClientset_1_4.Federation().Clusters().DeleteCollection(nil, api.ListOptions{}); err != nil { Logf("Error: failed to delete Clusters: %+v", err) } }() diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 772c9a79a57..d7c059dfd1c 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -38,9 +38,6 @@ import ( "sync" "time" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" - unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3" "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_4" "k8s.io/kubernetes/pkg/api" apierrs "k8s.io/kubernetes/pkg/api/errors" @@ -875,7 +872,7 @@ func WaitForDefaultServiceAccountInNamespace(c *client.Client, namespace string) // WaitForFederationApiserverReady waits for the federation apiserver to be ready. // It tests the readiness by sending a GET request and expecting a non error response. -func WaitForFederationApiserverReady(c *federation_internalclientset.Clientset) error { +func WaitForFederationApiserverReady(c *federation_release_1_4.Clientset) error { return wait.PollImmediate(time.Second, 1*time.Minute, func() (bool, error) { _, err := c.Federation().Clusters().List(api.ListOptions{}) if err != nil { @@ -1757,36 +1754,6 @@ func setTimeouts(cs ...*http.Client) { } } -func LoadFederationClientset() (*federation_internalclientset.Clientset, error) { - config, err := LoadFederatedConfig() - if err != nil { - return nil, err - } - - c, err := federation_internalclientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err.Error()) - } - // Set timeout for each client in the set. - setTimeouts(c.DiscoveryClient.Client, c.FederationClient.Client, c.CoreClient.Client) - return c, nil -} - -func LoadFederationClientset_1_3() (*federation_release_1_3.Clientset, error) { - config, err := LoadFederatedConfig() - if err != nil { - return nil, err - } - - c, err := federation_release_1_3.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err.Error()) - } - // Set timeout for each client in the set. - setTimeouts(c.DiscoveryClient.Client, c.FederationClient.Client, c.CoreClient.Client) - return c, nil -} - func LoadFederationClientset_1_4() (*federation_release_1_4.Clientset, error) { config, err := LoadFederatedConfig() if err != nil { @@ -1802,25 +1769,6 @@ func LoadFederationClientset_1_4() (*federation_release_1_4.Clientset, error) { return c, nil } -func loadFederationClientFromConfig(config *restclient.Config) (*unversionedfederation.FederationClient, error) { - c, err := unversionedfederation.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating client: %v", err.Error()) - } - if c.Client.Timeout == 0 { - c.Client.Timeout = SingleCallTimeout - } - return c, nil -} - -func LoadFederationClient() (*unversionedfederation.FederationClient, error) { - config, err := LoadFederatedConfig() - if err != nil { - return nil, err - } - return loadFederationClientFromConfig(config) -} - func LoadClient() (*client.Client, error) { config, err := LoadConfig() if err != nil {