From 4ed5b4838e738d46f817c8b9e18616f3991b8628 Mon Sep 17 00:00:00 2001 From: tstromberg Date: Mon, 3 Feb 2020 10:50:06 -0800 Subject: [PATCH] Add integration test to ensure that we addons enabled while the cluster was stopped come up successfully --- test/integration/start_stop_delete_test.go | 36 +++++++++++++++------- 1 file changed, 25 insertions(+), 11 deletions(-) diff --git a/test/integration/start_stop_delete_test.go b/test/integration/start_stop_delete_test.go index f71c78e6b2..6c9e2d6b48 100644 --- a/test/integration/start_stop_delete_test.go +++ b/test/integration/start_stop_delete_test.go @@ -105,9 +105,18 @@ func TestStartStop(t *testing.T) { t.Errorf("%s failed: %v", rr.Args, err) } - got := Status(ctx, t, Target(), profile, "Host") - if got != state.Stopped.String() { - t.Errorf("status = %q; want = %q", got, state.Stopped) + // The none driver never really stops + if !NoneDriver() { + got := Status(ctx, t, Target(), profile, "Host") + if got != state.Stopped.String() { + t.Errorf("post-stop host status = %q; want = %q", got, state.Stopped) + } + } + + // Enable an addon to assert it comes up afterwards + rr, err = Run(t, exec.CommandContext(ctx, Target(), "addons", "enable", "dashboard", "-p", profile)) + if err != nil { + t.Errorf("%s failed: %v", rr.Args, err) } rr, err = Run(t, exec.CommandContext(ctx, Target(), startArgs...)) @@ -118,13 +127,18 @@ func TestStartStop(t *testing.T) { if strings.Contains(tc.name, "cni") { t.Logf("WARNING: cni mode requires additional setup before pods can schedule :(") - } else if _, err := PodWait(ctx, t, profile, "default", "integration-test=busybox", 4*time.Minute); err != nil { - t.Fatalf("wait: %v", err) + } else { + if _, err := PodWait(ctx, t, profile, "default", "integration-test=busybox", 4*time.Minute); err != nil { + t.Fatalf("post-stop-start pod wait: %v", err) + } + if _, err := PodWait(ctx, t, profile, "kubernetes-dashboard", "k8s-app=kubernetes-dashboard", 4*time.Minute); err != nil { + t.Fatalf("post-stop-start addon wait: %v", err) + } } - got = Status(ctx, t, Target(), profile, "Host") + got := Status(ctx, t, Target(), profile, "Host") if got != state.Running.String() { - t.Errorf("host status = %q; want = %q", got, state.Running) + t.Errorf("post-start host status = %q; want = %q", got, state.Running) } if !NoneDriver() { @@ -227,12 +241,12 @@ func testPause(ctx context.Context, t *testing.T, profile string) { got := Status(ctx, t, Target(), profile, "APIServer") if got != state.Paused.String() { - t.Errorf("apiserver status = %q; want = %q", got, state.Paused) + t.Errorf("post-pause apiserver status = %q; want = %q", got, state.Paused) } got = Status(ctx, t, Target(), profile, "Kubelet") if got != state.Stopped.String() { - t.Errorf("kubelet status = %q; want = %q", got, state.Stopped) + t.Errorf("post-pause kubelet status = %q; want = %q", got, state.Stopped) } rr, err = Run(t, exec.CommandContext(ctx, Target(), "unpause", "-p", profile, "--alsologtostderr", "-v=1")) @@ -242,12 +256,12 @@ func testPause(ctx context.Context, t *testing.T, profile string) { got = Status(ctx, t, Target(), profile, "APIServer") if got != state.Running.String() { - t.Errorf("apiserver status = %q; want = %q", got, state.Running) + t.Errorf("post-unpause apiserver status = %q; want = %q", got, state.Running) } got = Status(ctx, t, Target(), profile, "Kubelet") if got != state.Running.String() { - t.Errorf("kubelet status = %q; want = %q", got, state.Running) + t.Errorf("post-unpause kubelet status = %q; want = %q", got, state.Running) } }