mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-31 15:25:57 +00:00
Change TestNetwork to allow parallel execution
This commit is contained in:
parent
9dfbf46b23
commit
2d1ee816a1
@ -21,6 +21,7 @@ import (
|
|||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/client"
|
||||||
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/util"
|
||||||
"github.com/golang/glog"
|
"github.com/golang/glog"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -31,11 +32,27 @@ func TestNetwork(c *client.Client) bool {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ns := api.NamespaceDefault
|
ns := api.NamespaceDefault
|
||||||
svc, err := c.Services(ns).Create(loadObjectOrDie(assetPath(
|
// TODO(satnam6502): Replace call of randomSuffix with call to NewUUID when service
|
||||||
"contrib", "for-tests", "network-tester", "service.json",
|
// names have the same form as pod and replication controller names.
|
||||||
)).(*api.Service))
|
name := "nettest-" + randomSuffix()
|
||||||
|
svc, err := c.Services(ns).Create(&api.Service{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Name: name,
|
||||||
|
Labels: map[string]string{
|
||||||
|
"name": name,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Spec: api.ServiceSpec{
|
||||||
|
Port: 8080,
|
||||||
|
ContainerPort: util.NewIntOrStringFromInt(8080),
|
||||||
|
Selector: map[string]string{
|
||||||
|
"name": name,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
|
glog.Infof("Creating service with name %s", svc.Name)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("unable to create test service: %v", err)
|
glog.Errorf("unable to create test service %s: %v", svc.Name, err)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
// Clean up service
|
// Clean up service
|
||||||
@ -44,10 +61,35 @@ func TestNetwork(c *client.Client) bool {
|
|||||||
glog.Errorf("unable to delete svc %v: %v", svc.Name, err)
|
glog.Errorf("unable to delete svc %v: %v", svc.Name, err)
|
||||||
}
|
}
|
||||||
}()
|
}()
|
||||||
|
rc, err := c.ReplicationControllers(ns).Create(&api.ReplicationController{
|
||||||
rc, err := c.ReplicationControllers(ns).Create(loadObjectOrDie(assetPath(
|
ObjectMeta: api.ObjectMeta{
|
||||||
"contrib", "for-tests", "network-tester", "rc.json",
|
Name: name,
|
||||||
)).(*api.ReplicationController))
|
Labels: map[string]string{
|
||||||
|
"name": name,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
Spec: api.ReplicationControllerSpec{
|
||||||
|
Replicas: 8,
|
||||||
|
Selector: map[string]string{
|
||||||
|
"name": name,
|
||||||
|
},
|
||||||
|
Template: &api.PodTemplateSpec{
|
||||||
|
ObjectMeta: api.ObjectMeta{
|
||||||
|
Labels: map[string]string{"name": name},
|
||||||
|
},
|
||||||
|
Spec: api.PodSpec{
|
||||||
|
Containers: []api.Container{
|
||||||
|
{
|
||||||
|
Name: "webserver",
|
||||||
|
Image: "kubernetes/nettest:latest",
|
||||||
|
Command: []string{"-service=" + name},
|
||||||
|
Ports: []api.Port{{ContainerPort: 8080}},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
},
|
||||||
|
})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Errorf("unable to create test rc: %v", err)
|
glog.Errorf("unable to create test rc: %v", err)
|
||||||
return false
|
return false
|
||||||
@ -66,7 +108,7 @@ func TestNetwork(c *client.Client) bool {
|
|||||||
}()
|
}()
|
||||||
const maxAttempts = 60
|
const maxAttempts = 60
|
||||||
for i := 0; i < maxAttempts; i++ {
|
for i := 0; i < maxAttempts; i++ {
|
||||||
time.Sleep(time.Second)
|
time.Sleep(2 * time.Second)
|
||||||
body, err := c.Get().Prefix("proxy").Resource("services").Name(svc.Name).Suffix("status").Do().Raw()
|
body, err := c.Get().Prefix("proxy").Resource("services").Name(svc.Name).Suffix("status").Do().Raw()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
glog.Infof("Attempt %v/%v: service/pod still starting. (error: '%v')", i, maxAttempts, err)
|
glog.Infof("Attempt %v/%v: service/pod still starting. (error: '%v')", i, maxAttempts, err)
|
||||||
|
@ -18,7 +18,9 @@ package e2e
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
|
"math/rand"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
"strconv"
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
"github.com/GoogleCloudPlatform/kubernetes/pkg/api"
|
||||||
@ -183,3 +185,12 @@ func parseServiceOrDie(json string) *api.Service {
|
|||||||
}
|
}
|
||||||
return service
|
return service
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// TODO: Allow service names to have the same form as names
|
||||||
|
// for pods and replication controllers so we don't
|
||||||
|
// need to use such a function and can instead
|
||||||
|
// use the UUID utilty function.
|
||||||
|
func randomSuffix() string {
|
||||||
|
r := rand.New(rand.NewSource(time.Now().UnixNano()))
|
||||||
|
return strconv.Itoa(r.Int() % 10000)
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user