Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Compare v1.Service to v1.Service. #27390

Merged
merged 1 commit into from
Jun 16, 2016
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
23 changes: 12 additions & 11 deletions test/e2e/federated-service.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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,
Expand All @@ -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{})
Expand Down Expand Up @@ -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) {
Expand All @@ -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",
Expand All @@ -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,
Expand All @@ -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)
}
}

Expand Down
13 changes: 11 additions & 2 deletions test/e2e/framework/framework.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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

Expand Down Expand Up @@ -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")
Expand Down
48 changes: 32 additions & 16 deletions test/e2e/framework/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down Expand Up @@ -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) {
Expand All @@ -1662,30 +1666,42 @@ func loadClientFromConfig(config *restclient.Config) (*client.Client, error) {
return c, nil
}

func loadFederationClientsetFromConfig(config *restclient.Config) (*federation_internalclientset.Clientset, error) {
func setTimeouts(cs ...*http.Client) {
for _, client := range cs {
if client.Timeout == 0 {
client.Timeout = SingleCallTimeout
}
}
}

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.
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
}
setTimeouts(c.DiscoveryClient.Client, c.FederationClient.Client, c.CoreClient.Client)
return c, nil
}

func LoadFederationClientset() (*federation_internalclientset.Clientset, error) {
func LoadFederationClientset_1_3() (*federation_release_1_3.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_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) {
Expand All @@ -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)
}
Expand Down