Merge pull request #27390 from mml/fed-service-type
Automatic merge from submit-queue Compare v1.Service to v1.Service.
This commit is contained in:
		@@ -22,7 +22,7 @@ import (
 | 
				
			|||||||
	"time"
 | 
						"time"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"k8s.io/kubernetes/federation/apis/federation"
 | 
						"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"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/v1"
 | 
						"k8s.io/kubernetes/pkg/api/v1"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_3"
 | 
						"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_3"
 | 
				
			||||||
@@ -151,7 +151,7 @@ var _ = framework.KubeDescribe("Service [Feature:Federation]", func() {
 | 
				
			|||||||
	It("should be able to discover a federated service", func() {
 | 
						It("should be able to discover a federated service", func() {
 | 
				
			||||||
		framework.SkipUnlessFederated(f.Client)
 | 
							framework.SkipUnlessFederated(f.Client)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		createService(f.FederationClientset, clusterClientSets, f.Namespace.Name)
 | 
							createService(f.FederationClientset_1_3, clusterClientSets, f.Namespace.Name)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		svcDNSNames := []string{
 | 
							svcDNSNames := []string{
 | 
				
			||||||
			FederatedServiceName,
 | 
								FederatedServiceName,
 | 
				
			||||||
@@ -168,7 +168,7 @@ var _ = framework.KubeDescribe("Service [Feature:Federation]", func() {
 | 
				
			|||||||
	It("should be able to discover a non-local federated service", func() {
 | 
						It("should be able to discover a non-local federated service", func() {
 | 
				
			||||||
		framework.SkipUnlessFederated(f.Client)
 | 
							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.
 | 
							// 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{})
 | 
							err := f.Clientset_1_3.Core().Services(f.Namespace.Name).Delete(FederatedServiceName, &api.DeleteOptions{})
 | 
				
			||||||
@@ -198,7 +198,7 @@ var _ = framework.KubeDescribe("Service [Feature:Federation]", func() {
 | 
				
			|||||||
// service reaches the expected value, i.e. numSvcs in the given individual Kubernetes
 | 
					// 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
 | 
					// 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.
 | 
					// 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")
 | 
						By("Fetching a federated service shard")
 | 
				
			||||||
	var clSvcList *v1.ServiceList
 | 
						var clSvcList *v1.ServiceList
 | 
				
			||||||
	if err := wait.PollImmediate(framework.Poll, FederatedServiceTimeout, func() (bool, error) {
 | 
						if err := wait.PollImmediate(framework.Poll, FederatedServiceTimeout, func() (bool, error) {
 | 
				
			||||||
@@ -225,7 +225,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")
 | 
						By("Creating a federated service")
 | 
				
			||||||
	labels := map[string]string{
 | 
						labels := map[string]string{
 | 
				
			||||||
		"foo": "bar",
 | 
							"foo": "bar",
 | 
				
			||||||
@@ -234,13 +234,13 @@ func createService(fcs *federation_internalclientset.Clientset, clusterClientSet
 | 
				
			|||||||
	svc1port := "svc1"
 | 
						svc1port := "svc1"
 | 
				
			||||||
	svc2port := "svc2"
 | 
						svc2port := "svc2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	service := &api.Service{
 | 
						service := &v1.Service{
 | 
				
			||||||
		ObjectMeta: api.ObjectMeta{
 | 
							ObjectMeta: v1.ObjectMeta{
 | 
				
			||||||
			Name: FederatedServiceName,
 | 
								Name: FederatedServiceName,
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		Spec: api.ServiceSpec{
 | 
							Spec: v1.ServiceSpec{
 | 
				
			||||||
			Selector: labels,
 | 
								Selector: labels,
 | 
				
			||||||
			Ports: []api.ServicePort{
 | 
								Ports: []v1.ServicePort{
 | 
				
			||||||
				{
 | 
									{
 | 
				
			||||||
					Name:       "portname1",
 | 
										Name:       "portname1",
 | 
				
			||||||
					Port:       80,
 | 
										Port:       80,
 | 
				
			||||||
@@ -254,10 +254,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())
 | 
						Expect(err).NotTo(HaveOccurred())
 | 
				
			||||||
	for _, cs := range clusterClientSets {
 | 
						for _, cs := range clusterClientSets {
 | 
				
			||||||
		waitForFederatedServiceShard(cs, namespace, service, 1)
 | 
							waitForFederatedServiceShard(cs, namespace, nservice, 1)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -27,6 +27,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
 | 
						"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
 | 
				
			||||||
	unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
 | 
						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"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	apierrs "k8s.io/kubernetes/pkg/api/errors"
 | 
						apierrs "k8s.io/kubernetes/pkg/api/errors"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/client/clientset_generated/release_1_2"
 | 
						"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_2      *release_1_2.Clientset
 | 
				
			||||||
	Clientset_1_3      *release_1_3.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
 | 
						// TODO: remove FederationClient, all the client access must be through FederationClientset
 | 
				
			||||||
	FederationClient *unversionedfederation.FederationClient
 | 
						FederationClient *unversionedfederation.FederationClient
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -163,11 +166,17 @@ func (f *Framework) BeforeEach() {
 | 
				
			|||||||
			Expect(err).NotTo(HaveOccurred())
 | 
								Expect(err).NotTo(HaveOccurred())
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if f.FederationClientset == nil {
 | 
							if f.FederationClientset == nil {
 | 
				
			||||||
			By("Creating a federation Clientset")
 | 
								By("Creating an unversioned federation Clientset")
 | 
				
			||||||
			var err error
 | 
								var err error
 | 
				
			||||||
			f.FederationClientset, err = LoadFederationClientset()
 | 
								f.FederationClientset, err = LoadFederationClientset()
 | 
				
			||||||
			Expect(err).NotTo(HaveOccurred())
 | 
								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")
 | 
						By("Building a namespace api object")
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -40,6 +40,7 @@ import (
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
 | 
						"k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset"
 | 
				
			||||||
	unversionedfederation "k8s.io/kubernetes/federation/client/clientset_generated/federation_internalclientset/typed/federation/unversioned"
 | 
						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"
 | 
						"k8s.io/kubernetes/pkg/api"
 | 
				
			||||||
	apierrs "k8s.io/kubernetes/pkg/api/errors"
 | 
						apierrs "k8s.io/kubernetes/pkg/api/errors"
 | 
				
			||||||
	"k8s.io/kubernetes/pkg/api/resource"
 | 
						"k8s.io/kubernetes/pkg/api/resource"
 | 
				
			||||||
@@ -1641,14 +1642,17 @@ func LoadConfig() (*restclient.Config, error) {
 | 
				
			|||||||
func LoadFederatedConfig() (*restclient.Config, error) {
 | 
					func LoadFederatedConfig() (*restclient.Config, error) {
 | 
				
			||||||
	c, err := restclientConfig(federatedKubeContext)
 | 
						c, err := restclientConfig(federatedKubeContext)
 | 
				
			||||||
	if err != nil {
 | 
						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()
 | 
						cfg, err := clientcmd.NewDefaultClientConfig(*c, &clientcmd.ConfigOverrides{}).ClientConfig()
 | 
				
			||||||
	if cfg != nil {
 | 
						if cfg != nil {
 | 
				
			||||||
		//TODO(colhom): this is only here because https://github.com/kubernetes/kubernetes/issues/25422
 | 
							//TODO(colhom): this is only here because https://github.com/kubernetes/kubernetes/issues/25422
 | 
				
			||||||
		cfg.NegotiatedSerializer = api.Codecs
 | 
							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) {
 | 
					func loadClientFromConfig(config *restclient.Config) (*client.Client, error) {
 | 
				
			||||||
@@ -1662,30 +1666,42 @@ func loadClientFromConfig(config *restclient.Config) (*client.Client, error) {
 | 
				
			|||||||
	return c, nil
 | 
						return c, nil
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
func loadFederationClientsetFromConfig(config *restclient.Config) (*federation_internalclientset.Clientset, error) {
 | 
					func setTimeouts(cs ...*http.Client) {
 | 
				
			||||||
	c, err := federation_internalclientset.NewForConfig(config)
 | 
						for _, client := range cs {
 | 
				
			||||||
	if err != nil {
 | 
							if client.Timeout == 0 {
 | 
				
			||||||
		return nil, fmt.Errorf("error creating federation clientset: %v", err.Error())
 | 
								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) {
 | 
					func LoadFederationClientset() (*federation_internalclientset.Clientset, error) {
 | 
				
			||||||
	config, err := LoadFederatedConfig()
 | 
						config, err := LoadFederatedConfig()
 | 
				
			||||||
	if err != nil {
 | 
						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) {
 | 
					func loadFederationClientFromConfig(config *restclient.Config) (*unversionedfederation.FederationClient, error) {
 | 
				
			||||||
@@ -1702,7 +1718,7 @@ func loadFederationClientFromConfig(config *restclient.Config) (*unversionedfede
 | 
				
			|||||||
func LoadFederationClient() (*unversionedfederation.FederationClient, error) {
 | 
					func LoadFederationClient() (*unversionedfederation.FederationClient, error) {
 | 
				
			||||||
	config, err := LoadFederatedConfig()
 | 
						config, err := LoadFederatedConfig()
 | 
				
			||||||
	if err != nil {
 | 
						if err != nil {
 | 
				
			||||||
		return nil, fmt.Errorf("error creating client: %v", err.Error())
 | 
							return nil, err
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	return loadFederationClientFromConfig(config)
 | 
						return loadFederationClientFromConfig(config)
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user