Skip to content
This repository was archived by the owner on Jul 30, 2021. It is now read-only.

Commit e5f5dde

Browse files
authored
Merge pull request #637 from diegs/self-etcd-better
e2e improvements.
2 parents 428ee40 + 58c34fd commit e5f5dde

File tree

6 files changed

+190
-209
lines changed

6 files changed

+190
-209
lines changed

e2e/checkpointer_test.go

Lines changed: 49 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"bytes"
55
"fmt"
66
"strings"
7+
"sync"
78
"testing"
89
"time"
910

@@ -140,8 +141,8 @@ func waitCluster(t *testing.T) *Cluster {
140141
// apiserver-managed ones.
141142
// TODO(diegs): do something more scientific, like talking to docker.
142143
func waitForCheckpointDeactivation(t *testing.T) {
143-
t.Log("Waiting 30 seconds for checkpoints to deactivate.")
144-
time.Sleep(30 * time.Second)
144+
t.Log("Waiting 60 seconds for checkpoints to deactivate.")
145+
time.Sleep(60 * time.Second)
145146
successes := 0
146147
if err := retry(20, 3*time.Second, func() error {
147148
_, err := client.Discovery().ServerVersion()
@@ -228,15 +229,21 @@ func TestCheckpointerUnscheduleCheckpointer(t *testing.T) {
228229
}
229230

230231
// Disable the kubelet and reboot the masters.
232+
var rebootGroup sync.WaitGroup
231233
for i := range c.Masters {
232-
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl disable kubelet")
233-
if err != nil {
234-
t.Fatalf("Failed to disable kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
235-
}
236-
if err := c.Masters[i].Reboot(); err != nil {
237-
t.Fatalf("Failed to reboot master: %v", err)
238-
}
234+
rebootGroup.Add(1)
235+
go func(i int) {
236+
defer rebootGroup.Done()
237+
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl disable kubelet")
238+
if err != nil {
239+
t.Fatalf("Failed to disable kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
240+
}
241+
if err := c.Masters[i].Reboot(); err != nil {
242+
t.Fatalf("Failed to reboot master: %v", err)
243+
}
244+
}(i)
239245
}
246+
rebootGroup.Wait()
240247

241248
// Start the worker kubelet.
242249
stdout, stderr, err = c.Workers[0].SSH("sudo systemctl enable kubelet && sudo systemctl start kubelet")
@@ -253,12 +260,18 @@ func TestCheckpointerUnscheduleCheckpointer(t *testing.T) {
253260
}
254261

255262
// Start the master kubelet.
263+
var enableGroup sync.WaitGroup
256264
for i := range c.Masters {
257-
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl enable kubelet && sudo systemctl start kubelet")
258-
if err != nil {
259-
t.Fatalf("Failed to start kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
260-
}
265+
enableGroup.Add(1)
266+
go func(i int) {
267+
defer enableGroup.Done()
268+
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl enable kubelet && sudo systemctl start kubelet")
269+
if err != nil {
270+
t.Fatalf("Failed to start kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
271+
}
272+
}(i)
261273
}
274+
enableGroup.Wait()
262275

263276
// Verify that the pod-checkpointer is cleaned up but the daemonset is still running.
264277
if err := verifyPod(c, "pod-checkpointer", false); err != nil {
@@ -346,15 +359,21 @@ func TestCheckpointerUnscheduleParent(t *testing.T) {
346359
}
347360

348361
// Disable the kubelet and reboot the masters.
362+
var rebootGroup sync.WaitGroup
349363
for i := range c.Masters {
350-
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl disable kubelet")
351-
if err != nil {
352-
t.Fatalf("Failed to disable kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
353-
}
354-
if err := c.Masters[i].Reboot(); err != nil {
355-
t.Fatalf("Failed to reboot master: %v", err)
356-
}
364+
rebootGroup.Add(1)
365+
go func(i int) {
366+
defer rebootGroup.Done()
367+
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl disable kubelet")
368+
if err != nil {
369+
t.Fatalf("Failed to disable kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
370+
}
371+
if err := c.Masters[i].Reboot(); err != nil {
372+
t.Fatalf("Failed to reboot master: %v", err)
373+
}
374+
}(i)
357375
}
376+
rebootGroup.Wait()
358377

359378
// Start the worker kubelet.
360379
stdout, stderr, err = c.Workers[0].SSH("sudo systemctl enable kubelet && sudo systemctl start kubelet")
@@ -371,12 +390,18 @@ func TestCheckpointerUnscheduleParent(t *testing.T) {
371390
}
372391

373392
// Start the master kubelets.
393+
var enableGroup sync.WaitGroup
374394
for i := range c.Masters {
375-
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl enable kubelet && sudo systemctl start kubelet")
376-
if err != nil {
377-
t.Fatalf("unable to start kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
378-
}
395+
enableGroup.Add(1)
396+
go func(i int) {
397+
defer enableGroup.Done()
398+
stdout, stderr, err = c.Masters[i].SSH("sudo systemctl enable kubelet && sudo systemctl start kubelet")
399+
if err != nil {
400+
t.Fatalf("unable to start kubelet on master %q: %v\nstdout: %s\nstderr: %s", c.Masters[i].Name, err, stdout, stderr)
401+
}
402+
}(i)
379403
}
404+
enableGroup.Wait()
380405

381406
// Verify that checkpoint is cleaned up and not running, but the pod checkpointer should still be running.
382407
if err := verifyPod(c, "pod-checkpointer", true); err != nil {

0 commit comments

Comments
 (0)