Merge pull request #42754 from madhusudancs/fed-e2e-nodeport-random

Automatic merge from submit-queue (batch tested with PRs 42211, 38691, 42737, 42757, 42754)

[Federation] Generate a random nodePort for each service object in e2e tests.

We now run e2e tests in parallel in the CI environment and nodeports are a single available range of numbers for all the service objects, so they have to be unique for each service object.

```release-note
NONE
```
pull/6/head
Kubernetes Submit Queue 2017-03-08 18:52:32 -08:00 committed by GitHub
commit 24d84fa3fb
2 changed files with 15 additions and 7 deletions

View File

@ -43,6 +43,7 @@ go_library(
"//vendor:k8s.io/apimachinery/pkg/apis/meta/v1",
"//vendor:k8s.io/apimachinery/pkg/util/intstr",
"//vendor:k8s.io/apimachinery/pkg/util/net",
"//vendor:k8s.io/apimachinery/pkg/util/rand",
"//vendor:k8s.io/apimachinery/pkg/util/wait",
"//vendor:k8s.io/client-go/rest",
"//vendor:k8s.io/client-go/tools/clientcmd",

View File

@ -20,10 +20,10 @@ import (
"fmt"
"time"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/intstr"
"k8s.io/apimachinery/pkg/util/rand"
"k8s.io/apimachinery/pkg/util/wait"
restclient "k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
@ -48,16 +48,17 @@ var (
UserAgentName = "federation-e2e"
// We use this to decide how long to wait for our DNS probes to succeed.
DNSTTL = 180 * time.Second // TODO: make k8s.io/kubernetes/federation/pkg/federation-controller/service.minDnsTtl exported, and import it here.
// FederatedSvcNodePort is the node port on which the federated
// service shards are exposed in the underlying cluster.
FederatedSvcNodePort = int32(32256)
)
const (
federatedNamespaceTimeout = 5 * time.Minute
federatedServiceTimeout = 5 * time.Minute
federatedClustersWaitTimeout = 1 * time.Minute
// [30000, 32767] is the allowed default service nodeport range and our
// tests just use the defaults.
FederatedSvcNodePortFirst = 30000
FederatedSvcNodePortLast = 32767
)
var FederationSuite common.Suite
@ -272,6 +273,12 @@ func createService(clientset *fedclientset.Clientset, namespace, name string) (*
}
By(fmt.Sprintf("Creating federated service %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
// is not inclusive.
nodePort := int32(rand.IntnRange(FederatedSvcNodePortFirst, FederatedSvcNodePortLast+1))
service := &v1.Service{
ObjectMeta: metav1.ObjectMeta{
Name: name,
@ -286,7 +293,7 @@ func createService(clientset *fedclientset.Clientset, namespace, name string) (*
Protocol: v1.ProtocolTCP,
Port: 80,
TargetPort: intstr.FromInt(8080),
NodePort: FederatedSvcNodePort,
NodePort: nodePort,
},
},
SessionAffinity: v1.ServiceAffinityNone,