Skip to content

Commit ed00f42

Browse files
authored
Merge pull request kubernetes#89563 from oomichi/RestartControllerManager
Separate RestartControllerManager() as e2ekubesystem
2 parents 6e9bec8 + 42bb845 commit ed00f42

File tree

8 files changed

+103
-44
lines changed

8 files changed

+103
-44
lines changed

test/e2e/framework/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,7 @@ filegroup(
115115
"//test/e2e/framework/job:all-srcs",
116116
"//test/e2e/framework/kubectl:all-srcs",
117117
"//test/e2e/framework/kubelet:all-srcs",
118+
"//test/e2e/framework/kubesystem:all-srcs",
118119
"//test/e2e/framework/log:all-srcs",
119120
"//test/e2e/framework/metrics:all-srcs",
120121
"//test/e2e/framework/network:all-srcs",
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
load("@io_bazel_rules_go//go:def.bzl", "go_library")
2+
3+
go_library(
4+
name = "go_default_library",
5+
srcs = ["kubesystem.go"],
6+
importpath = "k8s.io/kubernetes/test/e2e/framework/kubesystem",
7+
visibility = ["//visibility:public"],
8+
deps = [
9+
"//test/e2e/framework:go_default_library",
10+
"//test/e2e/framework/ssh:go_default_library",
11+
],
12+
)
13+
14+
filegroup(
15+
name = "package-srcs",
16+
srcs = glob(["**"]),
17+
tags = ["automanaged"],
18+
visibility = ["//visibility:private"],
19+
)
20+
21+
filegroup(
22+
name = "all-srcs",
23+
srcs = [":package-srcs"],
24+
tags = ["automanaged"],
25+
visibility = ["//visibility:public"],
26+
)
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
Copyright 2020 The Kubernetes Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package kubesystem
18+
19+
import (
20+
"fmt"
21+
"net"
22+
"strconv"
23+
"time"
24+
25+
"k8s.io/kubernetes/test/e2e/framework"
26+
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
27+
)
28+
29+
const (
30+
// ssh port
31+
sshPort = "22"
32+
)
33+
34+
// RestartControllerManager restarts the kube-controller-manager.
35+
func RestartControllerManager() error {
36+
// TODO: Make it work for all providers and distros.
37+
if !framework.ProviderIs("gce", "aws") {
38+
return fmt.Errorf("unsupported provider for RestartControllerManager: %s", framework.TestContext.Provider)
39+
}
40+
if framework.ProviderIs("gce") && !framework.MasterOSDistroIs("gci") {
41+
return fmt.Errorf("unsupported master OS distro: %s", framework.TestContext.MasterOSDistro)
42+
}
43+
cmd := "pidof kube-controller-manager | xargs sudo kill"
44+
framework.Logf("Restarting controller-manager via ssh, running: %v", cmd)
45+
result, err := e2essh.SSH(cmd, net.JoinHostPort(framework.GetMasterHost(), sshPort), framework.TestContext.Provider)
46+
if err != nil || result.Code != 0 {
47+
e2essh.LogResult(result)
48+
return fmt.Errorf("couldn't restart controller-manager: %v", err)
49+
}
50+
return nil
51+
}
52+
53+
// WaitForControllerManagerUp waits for the kube-controller-manager to be up.
54+
func WaitForControllerManagerUp() error {
55+
cmd := "curl http://localhost:" + strconv.Itoa(framework.InsecureKubeControllerManagerPort) + "/healthz"
56+
for start := time.Now(); time.Since(start) < time.Minute; time.Sleep(5 * time.Second) {
57+
result, err := e2essh.SSH(cmd, net.JoinHostPort(framework.GetMasterHost(), sshPort), framework.TestContext.Provider)
58+
if err != nil || result.Code != 0 {
59+
e2essh.LogResult(result)
60+
}
61+
if result.Stdout == "ok" {
62+
return nil
63+
}
64+
}
65+
return fmt.Errorf("waiting for controller-manager timed out")
66+
}

test/e2e/framework/util.go

Lines changed: 0 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,6 @@ import (
7272
e2emetrics "k8s.io/kubernetes/test/e2e/framework/metrics"
7373
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
7474
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
75-
e2essh "k8s.io/kubernetes/test/e2e/framework/ssh"
7675
)
7776

7877
const (
@@ -143,9 +142,6 @@ const (
143142

144143
// TODO(justinsb): Avoid hardcoding this.
145144
awsMasterIP = "172.20.0.9"
146-
147-
// ssh port
148-
sshPort = "22"
149145
)
150146

151147
var (
@@ -1114,40 +1110,6 @@ func AllNodesReady(c clientset.Interface, timeout time.Duration) error {
11141110
return nil
11151111
}
11161112

1117-
// RestartControllerManager restarts the kube-controller-manager.
1118-
func RestartControllerManager() error {
1119-
// TODO: Make it work for all providers and distros.
1120-
if !ProviderIs("gce", "aws") {
1121-
return fmt.Errorf("unsupported provider for RestartControllerManager: %s", TestContext.Provider)
1122-
}
1123-
if ProviderIs("gce") && !MasterOSDistroIs("gci") {
1124-
return fmt.Errorf("unsupported master OS distro: %s", TestContext.MasterOSDistro)
1125-
}
1126-
cmd := "pidof kube-controller-manager | xargs sudo kill"
1127-
Logf("Restarting controller-manager via ssh, running: %v", cmd)
1128-
result, err := e2essh.SSH(cmd, net.JoinHostPort(GetMasterHost(), sshPort), TestContext.Provider)
1129-
if err != nil || result.Code != 0 {
1130-
e2essh.LogResult(result)
1131-
return fmt.Errorf("couldn't restart controller-manager: %v", err)
1132-
}
1133-
return nil
1134-
}
1135-
1136-
// WaitForControllerManagerUp waits for the kube-controller-manager to be up.
1137-
func WaitForControllerManagerUp() error {
1138-
cmd := "curl http://localhost:" + strconv.Itoa(InsecureKubeControllerManagerPort) + "/healthz"
1139-
for start := time.Now(); time.Since(start) < time.Minute; time.Sleep(5 * time.Second) {
1140-
result, err := e2essh.SSH(cmd, net.JoinHostPort(GetMasterHost(), sshPort), TestContext.Provider)
1141-
if err != nil || result.Code != 0 {
1142-
e2essh.LogResult(result)
1143-
}
1144-
if result.Stdout == "ok" {
1145-
return nil
1146-
}
1147-
}
1148-
return fmt.Errorf("waiting for controller-manager timed out")
1149-
}
1150-
11511113
// LookForStringInLog looks for the given string in the log of a specific pod container
11521114
func LookForStringInLog(ns, podName, container, expectedString string, timeout time.Duration) (result string, err error) {
11531115
return lookForString(expectedString, timeout, func() string {

test/e2e/network/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ go_library(
7070
"//test/e2e/framework/deployment:go_default_library",
7171
"//test/e2e/framework/endpoints:go_default_library",
7272
"//test/e2e/framework/ingress:go_default_library",
73+
"//test/e2e/framework/kubesystem:go_default_library",
7374
"//test/e2e/framework/network:go_default_library",
7475
"//test/e2e/framework/node:go_default_library",
7576
"//test/e2e/framework/pod:go_default_library",

test/e2e/network/service.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import (
4747
"k8s.io/kubernetes/test/e2e/framework"
4848
e2edeployment "k8s.io/kubernetes/test/e2e/framework/deployment"
4949
e2eendpoints "k8s.io/kubernetes/test/e2e/framework/endpoints"
50+
e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
5051
e2enetwork "k8s.io/kubernetes/test/e2e/framework/network"
5152
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
5253
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
@@ -2345,11 +2346,11 @@ var _ = SIGDescribe("Services", func() {
23452346
}
23462347

23472348
ginkgo.By("restart kube-controller-manager")
2348-
if err := framework.RestartControllerManager(); err != nil {
2349-
framework.Failf("framework.RestartControllerManager() = %v; want nil", err)
2349+
if err := e2ekubesystem.RestartControllerManager(); err != nil {
2350+
framework.Failf("e2ekubesystem.RestartControllerManager() = %v; want nil", err)
23502351
}
2351-
if err := framework.WaitForControllerManagerUp(); err != nil {
2352-
framework.Failf("framework.WaitForControllerManagerUp() = %v; want nil", err)
2352+
if err := e2ekubesystem.WaitForControllerManagerUp(); err != nil {
2353+
framework.Failf("e2ekubesystem.WaitForControllerManagerUp() = %v; want nil", err)
23532354
}
23542355

23552356
ginkgo.By("health check should be reconciled")

test/e2e/storage/BUILD

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ go_library(
6767
"//test/e2e/framework/auth:go_default_library",
6868
"//test/e2e/framework/deployment:go_default_library",
6969
"//test/e2e/framework/kubectl:go_default_library",
70+
"//test/e2e/framework/kubesystem:go_default_library",
7071
"//test/e2e/framework/metrics:go_default_library",
7172
"//test/e2e/framework/node:go_default_library",
7273
"//test/e2e/framework/pod:go_default_library",

test/e2e/storage/nfs_persistent_volume-disruptive.go

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
utilerrors "k8s.io/apimachinery/pkg/util/errors"
3232
clientset "k8s.io/client-go/kubernetes"
3333
"k8s.io/kubernetes/test/e2e/framework"
34+
e2ekubesystem "k8s.io/kubernetes/test/e2e/framework/kubesystem"
3435
e2enode "k8s.io/kubernetes/test/e2e/framework/node"
3536
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
3637
e2epv "k8s.io/kubernetes/test/e2e/framework/pv"
@@ -214,9 +215,9 @@ var _ = utils.SIGDescribe("NFSPersistentVolumes[Disruptive][Flaky]", func() {
214215
pvc2 = nil
215216

216217
ginkgo.By("Restarting the kube-controller-manager")
217-
err = framework.RestartControllerManager()
218+
err = e2ekubesystem.RestartControllerManager()
218219
framework.ExpectNoError(err)
219-
err = framework.WaitForControllerManagerUp()
220+
err = e2ekubesystem.WaitForControllerManagerUp()
220221
framework.ExpectNoError(err)
221222
framework.Logf("kube-controller-manager restarted")
222223

0 commit comments

Comments
 (0)