Compare v1.Service to v1.Service.

This commit is contained in:
Matt Liggett 2016-06-14 13:07:02 -07:00
parent 9a8aabe7cc
commit 4f388d8aad
3 changed files with 59 additions and 33 deletions

View File

@ -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)
}
}

View File

@ -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")

View File

@ -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)
}