Skip to content

Commit 3afbcad

Browse files
authored
Merge pull request kubernetes#89436 from oomichi/RestartKubelet
Move RestartKubelet() into e2e/storage/vsphere
2 parents 3481525 + 2306621 commit 3afbcad

File tree

2 files changed

+36
-48
lines changed

2 files changed

+36
-48
lines changed

test/e2e/framework/util.go

Lines changed: 0 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -1145,53 +1145,6 @@ func AllNodesReady(c clientset.Interface, timeout time.Duration) error {
11451145
return nil
11461146
}
11471147

1148-
// RestartKubelet restarts kubelet on the given host.
1149-
func RestartKubelet(host string) error {
1150-
// TODO: Make it work for all providers and distros.
1151-
supportedProviders := []string{"gce", "aws", "vsphere"}
1152-
if !ProviderIs(supportedProviders...) {
1153-
return fmt.Errorf("unsupported provider for RestartKubelet: %s, supported providers are: %v", TestContext.Provider, supportedProviders)
1154-
}
1155-
if ProviderIs("gce") && !NodeOSDistroIs("debian", "gci") {
1156-
return fmt.Errorf("unsupported node OS distro: %s", TestContext.NodeOSDistro)
1157-
}
1158-
var cmd string
1159-
1160-
if ProviderIs("gce") && NodeOSDistroIs("debian") {
1161-
cmd = "sudo /etc/init.d/kubelet restart"
1162-
} else if ProviderIs("vsphere") {
1163-
var sudoPresent bool
1164-
sshResult, err := e2essh.SSH("sudo --version", host, TestContext.Provider)
1165-
if err != nil {
1166-
return fmt.Errorf("Unable to ssh to host %s with error %v", host, err)
1167-
}
1168-
if !strings.Contains(sshResult.Stderr, "command not found") {
1169-
sudoPresent = true
1170-
}
1171-
sshResult, err = e2essh.SSH("systemctl --version", host, TestContext.Provider)
1172-
if err != nil {
1173-
return fmt.Errorf("Failed to execute command 'systemctl' on host %s with error %v", host, err)
1174-
}
1175-
if !strings.Contains(sshResult.Stderr, "command not found") {
1176-
cmd = "systemctl restart kubelet"
1177-
} else {
1178-
cmd = "service kubelet restart"
1179-
}
1180-
if sudoPresent {
1181-
cmd = fmt.Sprintf("sudo %s", cmd)
1182-
}
1183-
} else {
1184-
cmd = "sudo systemctl restart kubelet"
1185-
}
1186-
Logf("Restarting kubelet via ssh on host %s with command %s", host, cmd)
1187-
result, err := e2essh.SSH(cmd, host, TestContext.Provider)
1188-
if err != nil || result.Code != 0 {
1189-
e2essh.LogResult(result)
1190-
return fmt.Errorf("couldn't restart kubelet: %v", err)
1191-
}
1192-
return nil
1193-
}
1194-
11951148
// RestartApiserver restarts the kube-apiserver.
11961149
func RestartApiserver(namespace string, cs clientset.Interface) error {
11971150
// TODO: Make it work for all providers.

test/e2e/storage/vsphere/vsphere_volume_master_restart.go

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ import (
2020
"context"
2121
"fmt"
2222
"strconv"
23+
"strings"
2324
"time"
2425

2526
"github.com/onsi/ginkgo"
@@ -53,6 +54,40 @@ func waitForKubeletUp(host string) error {
5354
return fmt.Errorf("waiting for kubelet timed out")
5455
}
5556

57+
// restartKubelet restarts kubelet on the given host.
58+
func restartKubelet(host string) error {
59+
var cmd string
60+
61+
var sudoPresent bool
62+
sshResult, err := e2essh.SSH("sudo --version", host, framework.TestContext.Provider)
63+
if err != nil {
64+
return fmt.Errorf("Unable to ssh to host %s with error %v", host, err)
65+
}
66+
if !strings.Contains(sshResult.Stderr, "command not found") {
67+
sudoPresent = true
68+
}
69+
sshResult, err = e2essh.SSH("systemctl --version", host, framework.TestContext.Provider)
70+
if err != nil {
71+
return fmt.Errorf("Failed to execute command 'systemctl' on host %s with error %v", host, err)
72+
}
73+
if !strings.Contains(sshResult.Stderr, "command not found") {
74+
cmd = "systemctl restart kubelet"
75+
} else {
76+
cmd = "service kubelet restart"
77+
}
78+
if sudoPresent {
79+
cmd = fmt.Sprintf("sudo %s", cmd)
80+
}
81+
82+
framework.Logf("Restarting kubelet via ssh on host %s with command %s", host, cmd)
83+
result, err := e2essh.SSH(cmd, host, framework.TestContext.Provider)
84+
if err != nil || result.Code != 0 {
85+
e2essh.LogResult(result)
86+
return fmt.Errorf("couldn't restart kubelet: %v", err)
87+
}
88+
return nil
89+
}
90+
5691
/*
5792
Test to verify volume remains attached after kubelet restart on master node
5893
For the number of schedulable nodes,
@@ -134,7 +169,7 @@ var _ = utils.SIGDescribe("Volume Attach Verify [Feature:vsphere][Serial][Disrup
134169

135170
ginkgo.By("Restarting kubelet on master node")
136171
masterAddress := framework.GetMasterHost() + ":22"
137-
err := framework.RestartKubelet(masterAddress)
172+
err := restartKubelet(masterAddress)
138173
framework.ExpectNoError(err, "Unable to restart kubelet on master node")
139174

140175
ginkgo.By("Verifying the kubelet on master node is up")

0 commit comments

Comments
 (0)