From 4f388d8aad2affc57b26de7bbfe6087da55e7999 Mon Sep 17 00:00:00 2001 From: Matt Liggett Date: Tue, 14 Jun 2016 13:07:02 -0700 Subject: [PATCH] Compare v1.Service to v1.Service. --- test/e2e/federated-service.go | 23 +++++++------- test/e2e/framework/framework.go | 13 ++++++-- test/e2e/framework/util.go | 56 +++++++++++++++++++++------------ 3 files changed, 59 insertions(+), 33 deletions(-) diff --git a/test/e2e/federated-service.go b/test/e2e/federated-service.go index 7bfd4e79090..1647db09531 100644 --- a/test/e2e/federated-service.go +++ b/test/e2e/federated-service.go @@ -22,7 +22,7 @@ import ( "time" "k8s.io/kubernetes/federation/apis/federation" - "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset" + "k8s.io/kubernetes/federation/client/clientset_generated/federation_release_1_3" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/v1" "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_3" @@ -145,7 +145,7 @@ var _ = framework.KubeDescribe("Service [Feature:Federation]", func() { It("should be able to discover a federated service", func() { framework.SkipUnlessFederated(f.Client) - createService(f.FederationClientset, clusterClientSets, f.Namespace.Name) + createService(f.FederationClientset_1_3, clusterClientSets, f.Namespace.Name) svcDNSNames := []string{ FederatedServiceName, @@ -162,7 +162,7 @@ var _ = framework.KubeDescribe("Service [Feature:Federation]", func() { It("should be able to discover a non-local federated service", func() { framework.SkipUnlessFederated(f.Client) - createService(f.FederationClientset, clusterClientSets, f.Namespace.Name) + createService(f.FederationClientset_1_3, clusterClientSets, f.Namespace.Name) // Delete a federated service shard in the default e2e Kubernetes cluster. err := f.Clientset_1_3.Core().Services(f.Namespace.Name).Delete(FederatedServiceName, &api.DeleteOptions{}) @@ -192,7 +192,7 @@ var _ = framework.KubeDescribe("Service [Feature:Federation]", func() { // service reaches the expected value, i.e. numSvcs in the given individual Kubernetes // cluster. If the shard count, i.e. numSvcs is expected to be at least one, then // it also checks if the first shard's name and spec matches that of the given service. -func waitForFederatedServiceShard(cs *release_1_3.Clientset, namespace string, service *api.Service, numSvcs int) { +func waitForFederatedServiceShard(cs *release_1_3.Clientset, namespace string, service *v1.Service, numSvcs int) { By("Fetching a federated service shard") var clSvcList *v1.ServiceList if err := wait.PollImmediate(framework.Poll, FederatedServiceTimeout, func() (bool, error) { @@ -219,7 +219,7 @@ func waitForFederatedServiceShard(cs *release_1_3.Clientset, namespace string, s } } -func createService(fcs *federation_internalclientset.Clientset, clusterClientSets []*release_1_3.Clientset, namespace string) { +func createService(fcs *federation_release_1_3.Clientset, clusterClientSets []*release_1_3.Clientset, namespace string) { By("Creating a federated service") labels := map[string]string{ "foo": "bar", @@ -228,13 +228,13 @@ func createService(fcs *federation_internalclientset.Clientset, clusterClientSet svc1port := "svc1" svc2port := "svc2" - service := &api.Service{ - ObjectMeta: api.ObjectMeta{ + service := &v1.Service{ + ObjectMeta: v1.ObjectMeta{ Name: FederatedServiceName, }, - Spec: api.ServiceSpec{ + Spec: v1.ServiceSpec{ Selector: labels, - Ports: []api.ServicePort{ + Ports: []v1.ServicePort{ { Name: "portname1", Port: 80, @@ -248,10 +248,11 @@ func createService(fcs *federation_internalclientset.Clientset, clusterClientSet }, }, } - _, err := fcs.Core().Services(namespace).Create(service) + nservice, err := fcs.Core().Services(namespace).Create(service) + framework.Logf("Trying to create service %q in namespace %q", service.ObjectMeta.Name, service.ObjectMeta.Namespace) Expect(err).NotTo(HaveOccurred()) for _, cs := range clusterClientSets { - waitForFederatedServiceShard(cs, namespace, service, 1) + waitForFederatedServiceShard(cs, namespace, nservice, 1) } } diff --git a/test/e2e/framework/framework.go b/test/e2e/framework/framework.go index 55168c2dfc1..5274a81494b 100644 --- a/test/e2e/framework/framework.go +++ b/test/e2e/framework/framework.go @@ -27,6 +27,7 @@ import ( "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/pkg/api" apierrs "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/client/clientset_generated/release_1_2" @@ -57,7 +58,9 @@ type Framework struct { Clientset_1_2 *release_1_2.Clientset Clientset_1_3 *release_1_3.Clientset - FederationClientset *federation_internalclientset.Clientset + // TODO(mml): Remove this. We should generally use the versioned clientset. + FederationClientset *federation_internalclientset.Clientset + FederationClientset_1_3 *federation_release_1_3.Clientset // TODO: remove FederationClient, all the client access must be through FederationClientset FederationClient *unversionedfederation.FederationClient @@ -163,11 +166,17 @@ func (f *Framework) BeforeEach() { Expect(err).NotTo(HaveOccurred()) } if f.FederationClientset == nil { - By("Creating a federation Clientset") + 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() + Expect(err).NotTo(HaveOccurred()) + } } By("Building a namespace api object") diff --git a/test/e2e/framework/util.go b/test/e2e/framework/util.go index 206311a4c31..df5c40eb2bb 100644 --- a/test/e2e/framework/util.go +++ b/test/e2e/framework/util.go @@ -40,6 +40,7 @@ import ( "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/pkg/api" apierrs "k8s.io/kubernetes/pkg/api/errors" "k8s.io/kubernetes/pkg/api/resource" @@ -1641,14 +1642,17 @@ func LoadConfig() (*restclient.Config, error) { func LoadFederatedConfig() (*restclient.Config, error) { c, err := restclientConfig(federatedKubeContext) if err != nil { - return nil, err + return nil, fmt.Errorf("error creating federation client config: %v", err.Error()) } cfg, err := clientcmd.NewDefaultClientConfig(*c, &clientcmd.ConfigOverrides{}).ClientConfig() if cfg != nil { //TODO(colhom): this is only here because https://github.com/kubernetes/kubernetes/issues/25422 cfg.NegotiatedSerializer = api.Codecs } - return cfg, err + if err != nil { + return cfg, fmt.Errorf("error creating federation client config: %v", err.Error()) + } + return cfg, nil } func loadClientFromConfig(config *restclient.Config) (*client.Client, error) { @@ -1662,30 +1666,42 @@ func loadClientFromConfig(config *restclient.Config) (*client.Client, error) { return c, nil } -func loadFederationClientsetFromConfig(config *restclient.Config) (*federation_internalclientset.Clientset, error) { - c, err := federation_internalclientset.NewForConfig(config) - if err != nil { - return nil, fmt.Errorf("error creating federation clientset: %v", err.Error()) +func setTimeouts(cs ...*http.Client) { + for _, client := range cs { + if client.Timeout == 0 { + client.Timeout = SingleCallTimeout + } } - // Set timeout for each client in the set. - if c.DiscoveryClient.Client.Timeout == 0 { - c.DiscoveryClient.Client.Timeout = SingleCallTimeout - } - if c.FederationClient.Client.Timeout == 0 { - c.FederationClient.Client.Timeout = SingleCallTimeout - } - if c.CoreClient.Client.Timeout == 0 { - c.CoreClient.Client.Timeout = SingleCallTimeout - } - return c, nil } func LoadFederationClientset() (*federation_internalclientset.Clientset, error) { config, err := LoadFederatedConfig() if err != nil { - return nil, fmt.Errorf("error creating federated client config: %v", err.Error()) + return nil, err } - return loadFederationClientsetFromConfig(config) + + 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 loadFederationClientFromConfig(config *restclient.Config) (*unversionedfederation.FederationClient, error) { @@ -1702,7 +1718,7 @@ func loadFederationClientFromConfig(config *restclient.Config) (*unversionedfede func LoadFederationClient() (*unversionedfederation.FederationClient, error) { config, err := LoadFederatedConfig() if err != nil { - return nil, fmt.Errorf("error creating client: %v", err.Error()) + return nil, err } return loadFederationClientFromConfig(config) }