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"
 | 
			
		||||
 | 
			
		||||
	"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"
 | 
			
		||||
@@ -151,7 +151,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,
 | 
			
		||||
@@ -168,7 +168,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{})
 | 
			
		||||
@@ -198,7 +198,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) {
 | 
			
		||||
@@ -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")
 | 
			
		||||
	labels := map[string]string{
 | 
			
		||||
		"foo": "bar",
 | 
			
		||||
@@ -234,13 +234,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,
 | 
			
		||||
@@ -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())
 | 
			
		||||
	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"
 | 
			
		||||
	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
 | 
			
		||||
 | 
			
		||||
	// 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")
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user