diff --git a/test/e2e_federation/ingress.go b/test/e2e_federation/ingress.go index f93b4cfdea5..b6086699289 100644 --- a/test/e2e_federation/ingress.go +++ b/test/e2e_federation/ingress.go @@ -163,7 +163,7 @@ var _ = framework.KubeDescribe("Federated ingresses [Feature:Federation]", func( clusters = f.GetRegisteredClusters() ns = f.FederationNamespace.Name // create backend service - service = createServiceOrFail(f.FederationClientset, ns, FederatedIngressServiceName) + service = createLBServiceOrFail(f.FederationClientset, ns, FederatedIngressServiceName) // create the TLS secret secret = createTLSSecretOrFail(f.FederationClientset, ns, FederatedIngressTLSSecretName) // wait for services objects sync diff --git a/test/e2e_federation/service.go b/test/e2e_federation/service.go index 376b9f7a2c1..f45299d1091 100644 --- a/test/e2e_federation/service.go +++ b/test/e2e_federation/service.go @@ -183,7 +183,7 @@ var _ = framework.KubeDescribe("Federated Services [Feature:Federation]", func() backendPods = createBackendPodsOrFail(clusters, nsName, FederatedServicePodName) - service = createServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) + service = createLBServiceOrFail(f.FederationClientset, nsName, FederatedServiceName) obj, err := api.Scheme.DeepCopy(service) // Cloning shouldn't fail. On the off-chance it does, we // should shallow copy service to serviceShard before diff --git a/test/e2e_federation/util.go b/test/e2e_federation/util.go index 2b795384502..cdc65d9ce5d 100644 --- a/test/e2e_federation/util.go +++ b/test/e2e_federation/util.go @@ -120,6 +120,36 @@ func createService(clientset *fedclientset.Clientset, namespace, name string) (* } By(fmt.Sprintf("Creating federated service %q in namespace %q", name, namespace)) + service := &v1.Service{ + ObjectMeta: metav1.ObjectMeta{ + Name: name, + Namespace: namespace, + }, + Spec: v1.ServiceSpec{ + Selector: FederatedServiceLabels, + Type: v1.ServiceTypeClusterIP, + Ports: []v1.ServicePort{ + { + Name: "http", + Protocol: v1.ProtocolTCP, + Port: 80, + TargetPort: intstr.FromInt(8080), + }, + }, + SessionAffinity: v1.ServiceAffinityNone, + }, + } + + By(fmt.Sprintf("Trying to create service %q in namespace %q", service.Name, namespace)) + return clientset.Services(namespace).Create(service) +} + +func createLBService(clientset *fedclientset.Clientset, namespace, name string) (*v1.Service, error) { + if clientset == nil || len(namespace) == 0 { + return nil, fmt.Errorf("Internal error: invalid parameters passed to createService: clientset: %v, namespace: %v", clientset, namespace) + } + By(fmt.Sprintf("Creating federated service (type: load balancer) %q in namespace %q", name, namespace)) + // Tests can be run in parallel, so we need a different nodePort for // each test. // We add 1 to FederatedSvcNodePortLast because IntnRange's range end @@ -133,7 +163,7 @@ func createService(clientset *fedclientset.Clientset, namespace, name string) (* }, Spec: v1.ServiceSpec{ Selector: FederatedServiceLabels, - Type: "LoadBalancer", + Type: v1.ServiceTypeLoadBalancer, Ports: []v1.ServicePort{ { Name: "http", @@ -146,6 +176,7 @@ func createService(clientset *fedclientset.Clientset, namespace, name string) (* SessionAffinity: v1.ServiceAffinityNone, }, } + By(fmt.Sprintf("Trying to create service %q in namespace %q", service.Name, namespace)) return clientset.Services(namespace).Create(service) } @@ -157,6 +188,13 @@ func createServiceOrFail(clientset *fedclientset.Clientset, namespace, name stri return service } +func createLBServiceOrFail(clientset *fedclientset.Clientset, namespace, name string) *v1.Service { + service, err := createLBService(clientset, namespace, name) + framework.ExpectNoError(err, "Creating service %q in namespace %q", service.Name, namespace) + By(fmt.Sprintf("Successfully created federated service (type: load balancer) %q in namespace %q", name, namespace)) + return service +} + func deleteServiceOrFail(clientset *fedclientset.Clientset, namespace string, serviceName string, orphanDependents *bool) { if clientset == nil || len(namespace) == 0 || len(serviceName) == 0 { Fail(fmt.Sprintf("Internal error: invalid parameters passed to deleteServiceOrFail: clientset: %v, namespace: %v, service: %v", clientset, namespace, serviceName)) @@ -209,9 +247,11 @@ func cleanupServiceShardsAndProviderResources(namespace string, service *v1.Serv if err != nil { framework.Logf("Failed to delete service %q in namespace %q, in cluster %q: %v", service.Name, namespace, name, err) } - err = cleanupServiceShardLoadBalancer(name, cSvc, fedframework.FederatedDefaultTestTimeout) - if err != nil { - framework.Logf("Failed to delete cloud provider resources for service %q in namespace %q, in cluster %q", service.Name, namespace, name) + if service.Spec.Type == v1.ServiceTypeLoadBalancer { + err = cleanupServiceShardLoadBalancer(name, cSvc, fedframework.FederatedDefaultTestTimeout) + if err != nil { + framework.Logf("Failed to delete cloud provider resources for service %q in namespace %q, in cluster %q, err: %v", service.Name, namespace, name, err) + } } } }