Skip to content

Commit 7175ebe

Browse files
authored
E2E: Startup test cleanup + RunCommand Enhancement (k3s-io#7388)
* Add beforesuite to startup * Reduce timeouts for startup * Fix cleanup + set kubeconfig Signed-off-by: Derek Nola <[email protected]>
1 parent bbb8ee0 commit 7175ebe

File tree

3 files changed

+34
-22
lines changed

3 files changed

+34
-22
lines changed

.drone.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -752,6 +752,7 @@ steps:
752752
- |
753753
if [ "$DRONE_BUILD_EVENT" = "pull_request" ]; then
754754
cd ../upgradecluster
755+
vagrant destroy -f
755756
E2E_RELEASE_CHANNEL="latest" go test -v -timeout=45m ./upgradecluster_test.go -ci -local
756757
fi
757758
- docker stop registry && docker rm registry

tests/e2e/startup/startup_test.go

Lines changed: 25 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -71,23 +71,29 @@ func KillK3sCluster(nodes []string) error {
7171
if _, err := e2e.RunCmdOnNode("sudo k3s-killall.sh", node); err != nil {
7272
return err
7373
}
74+
if strings.Contains(node, "server") {
75+
if _, err := e2e.RunCmdOnNode("sudo rm -rf /var/lib/rancher/k3s/server/db", node); err != nil {
76+
return err
77+
}
78+
}
7479
}
7580
return nil
7681
}
7782

7883
var _ = ReportAfterEach(e2e.GenReport)
7984

85+
var _ = BeforeSuite(func() {
86+
var err error
87+
if *local {
88+
serverNodeNames, agentNodeNames, err = e2e.CreateLocalCluster(*nodeOS, 1, 1)
89+
} else {
90+
serverNodeNames, agentNodeNames, err = e2e.CreateCluster(*nodeOS, 1, 1)
91+
}
92+
Expect(err).NotTo(HaveOccurred(), e2e.GetVagrantLog(err))
93+
})
94+
8095
var _ = Describe("Various Startup Configurations", Ordered, func() {
8196
Context("Verify CRI-Dockerd :", func() {
82-
It("Stands up the nodes", func() {
83-
var err error
84-
if *local {
85-
serverNodeNames, agentNodeNames, err = e2e.CreateLocalCluster(*nodeOS, 1, 1)
86-
} else {
87-
serverNodeNames, agentNodeNames, err = e2e.CreateCluster(*nodeOS, 1, 1)
88-
}
89-
Expect(err).NotTo(HaveOccurred(), e2e.GetVagrantLog(err))
90-
})
9197
It("Starts K3s with no issues", func() {
9298
dockerYAML := "docker: true"
9399
err := StartK3sCluster(append(serverNodeNames, agentNodeNames...), dockerYAML, dockerYAML)
@@ -109,7 +115,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
109115
for _, node := range nodes {
110116
g.Expect(node.Status).Should(Equal("Ready"))
111117
}
112-
}, "620s", "5s").Should(Succeed())
118+
}, "360s", "5s").Should(Succeed())
113119
_, _ = e2e.ParseNodes(kubeConfigFile, true)
114120

115121
fmt.Printf("\nFetching pods status\n")
@@ -123,7 +129,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
123129
g.Expect(pod.Status).Should(Equal("Running"), pod.Name)
124130
}
125131
}
126-
}, "620s", "5s").Should(Succeed())
132+
}, "360s", "5s").Should(Succeed())
127133
_, _ = e2e.ParsePods(kubeConfigFile, true)
128134
})
129135
It("Kills the cluster", func() {
@@ -153,7 +159,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
153159
for _, node := range nodes {
154160
g.Expect(node.Status).Should(Equal("Ready"))
155161
}
156-
}, "620s", "5s").Should(Succeed())
162+
}, "360s", "5s").Should(Succeed())
157163
_, _ = e2e.ParseNodes(kubeConfigFile, true)
158164

159165
fmt.Printf("\nFetching pods status\n")
@@ -167,7 +173,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
167173
g.Expect(pod.Status).Should(Equal("Running"), pod.Name)
168174
}
169175
}
170-
}, "620s", "5s").Should(Succeed())
176+
}, "360s", "5s").Should(Succeed())
171177
_, _ = e2e.ParsePods(kubeConfigFile, true)
172178
})
173179
It("Kills the cluster", func() {
@@ -197,7 +203,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
197203
for _, node := range nodes {
198204
g.Expect(node.Status).Should(Equal("Ready"))
199205
}
200-
}, "620s", "5s").Should(Succeed())
206+
}, "360s", "5s").Should(Succeed())
201207
_, _ = e2e.ParseNodes(kubeConfigFile, true)
202208

203209
fmt.Printf("\nFetching pods status\n")
@@ -211,21 +217,21 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
211217
g.Expect(pod.Status).Should(Equal("Running"), pod.Name)
212218
}
213219
}
214-
}, "620s", "5s").Should(Succeed())
220+
}, "360s", "5s").Should(Succeed())
215221
_, _ = e2e.ParsePods(kubeConfigFile, true)
216222
})
217223

218224
It("Returns pod metrics", func() {
219225
cmd := "kubectl top pod -A"
220226
Eventually(func() error {
221-
_, err := e2e.RunCmdOnNode(cmd, serverNodeNames[0])
227+
_, err := e2e.RunCommand(cmd)
222228
return err
223-
}, "620s", "5s").Should(Succeed())
229+
}, "600s", "5s").Should(Succeed())
224230
})
225231

226232
It("Returns node metrics", func() {
227233
cmd := "kubectl top node"
228-
_, err := e2e.RunCmdOnNode(cmd, serverNodeNames[0])
234+
_, err := e2e.RunCommand(cmd)
229235
Expect(err).NotTo(HaveOccurred())
230236
})
231237

@@ -237,7 +243,7 @@ var _ = Describe("Various Startup Configurations", Ordered, func() {
237243

238244
It("Collects logs from a pod", func() {
239245
cmd := "kubectl logs -n kube-system -l app.kubernetes.io/name=traefik -c traefik"
240-
_, err := e2e.RunCmdOnNode(cmd, serverNodeNames[0])
246+
_, err := e2e.RunCommand(cmd)
241247
Expect(err).NotTo(HaveOccurred())
242248
})
243249

tests/e2e/testutils.go

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -303,6 +303,9 @@ func GenKubeConfigFile(serverName string) (string, error) {
303303
if err := os.WriteFile(kubeConfigFile, []byte(kubeConfig), 0644); err != nil {
304304
return "", err
305305
}
306+
if err := os.Setenv("E2E_KUBECONFIG", kubeConfigFile); err != nil {
307+
return "", err
308+
}
306309
return kubeConfigFile, nil
307310
}
308311

@@ -437,17 +440,19 @@ func RestartClusterAgent(nodeNames []string) error {
437440

438441
// RunCmdOnNode executes a command from within the given node
439442
func RunCmdOnNode(cmd string, nodename string) (string, error) {
440-
runcmd := "vagrant ssh -c \"" + cmd + "\" " + nodename
443+
runcmd := "vagrant ssh " + nodename + " -c \"" + cmd + "\""
441444
out, err := RunCommand(runcmd)
442445
if err != nil {
443-
return out, fmt.Errorf("failed to run command %s on node %s: %v", cmd, nodename, err)
446+
return out, fmt.Errorf("failed to run command: %s on node %s: %s, %v", cmd, nodename, out, err)
444447
}
445448
return out, nil
446449
}
447450

448-
// RunCommand executes a command on the host
449451
func RunCommand(cmd string) (string, error) {
450452
c := exec.Command("bash", "-c", cmd)
453+
if kc, ok := os.LookupEnv("E2E_KUBECONFIG"); ok {
454+
c.Env = append(os.Environ(), "KUBECONFIG="+kc)
455+
}
451456
out, err := c.CombinedOutput()
452457
return string(out), err
453458
}

0 commit comments

Comments
 (0)