diff --git a/test/integration/master/kube_apiserver_test.go b/test/integration/master/kube_apiserver_test.go index d4d52a7506f..e8d30899738 100644 --- a/test/integration/master/kube_apiserver_test.go +++ b/test/integration/master/kube_apiserver_test.go @@ -24,6 +24,7 @@ import ( "net/http" "reflect" "strings" + "sync" "testing" "time" @@ -412,8 +413,8 @@ func verifyEndpointsWithIPs(servers []*kubeapiservertesting.TestServer, ips []st } func testReconcilersMasterLease(t *testing.T, leaseCount int, masterCount int) { - var leaseServers []*kubeapiservertesting.TestServer - var masterCountServers []*kubeapiservertesting.TestServer + var leaseServers = make([]*kubeapiservertesting.TestServer, leaseCount) + var masterCountServers = make([]*kubeapiservertesting.TestServer, masterCount) etcd := framework.SharedEtcd() instanceOptions := &kubeapiservertesting.TestServerInstanceOptions{ @@ -423,16 +424,22 @@ func testReconcilersMasterLease(t *testing.T, leaseCount int, masterCount int) { // cleanup the registry storage defer registry.CleanupStorage() + wg := sync.WaitGroup{} // 1. start masterCount api servers for i := 0; i < masterCount; i++ { // start master count api server - server := kubeapiservertesting.StartTestServerOrDie(t, instanceOptions, []string{ - "--endpoint-reconciler-type", "master-count", - "--advertise-address", fmt.Sprintf("10.0.1.%v", i+1), - "--apiserver-count", fmt.Sprintf("%v", masterCount), - }, etcd) - masterCountServers = append(masterCountServers, server) + wg.Add(1) + go func(i int) { + defer wg.Done() + server := kubeapiservertesting.StartTestServerOrDie(t, instanceOptions, []string{ + "--endpoint-reconciler-type", "master-count", + "--advertise-address", fmt.Sprintf("10.0.1.%v", i+1), + "--apiserver-count", fmt.Sprintf("%v", masterCount), + }, etcd) + masterCountServers[i] = server + }(i) } + wg.Wait() // 2. verify master count servers have registered if err := wait.PollImmediate(3*time.Second, 2*time.Minute, func() (bool, error) { @@ -453,14 +460,23 @@ func testReconcilersMasterLease(t *testing.T, leaseCount int, masterCount int) { // 3. start lease api servers for i := 0; i < leaseCount; i++ { - options := []string{ - "--endpoint-reconciler-type", "lease", - "--advertise-address", fmt.Sprintf("10.0.1.%v", i+10), - } - server := kubeapiservertesting.StartTestServerOrDie(t, instanceOptions, options, etcd) - defer server.TearDownFn() - leaseServers = append(leaseServers, server) + wg.Add(1) + go func(i int) { + defer wg.Done() + options := []string{ + "--endpoint-reconciler-type", "lease", + "--advertise-address", fmt.Sprintf("10.0.1.%v", i+10), + } + server := kubeapiservertesting.StartTestServerOrDie(t, instanceOptions, options, etcd) + leaseServers[i] = server + }(i) } + wg.Wait() + defer func() { + for i := 0; i < leaseCount; i++ { + leaseServers[i].TearDownFn() + } + }() time.Sleep(3 * time.Second) @@ -488,15 +504,15 @@ func testReconcilersMasterLease(t *testing.T, leaseCount int, masterCount int) { } func TestReconcilerMasterLeaseCombined(t *testing.T) { - testReconcilersMasterLease(t, 1, 3) + testReconcilersMasterLease(t, 1, 2) } func TestReconcilerMasterLeaseMultiMoreMasters(t *testing.T) { - testReconcilersMasterLease(t, 3, 2) + testReconcilersMasterLease(t, 2, 1) } func TestReconcilerMasterLeaseMultiCombined(t *testing.T) { - testReconcilersMasterLease(t, 3, 3) + testReconcilersMasterLease(t, 2, 2) } func TestMultiMasterNodePortAllocation(t *testing.T) {