Commit e947cd9f authored by Shylaja Devadiga's avatar Shylaja Devadiga

Add cluster reset test to nightly builds

parent 07ca6399
......@@ -7,7 +7,6 @@ GITHUB_BRANCH = (ENV['E2E_GITHUB_BRANCH'] || "master")
RELEASE_VERSION = (ENV['E2E_RELEASE_VERSION'] || "")
EXTERNAL_DB = (ENV['E2E_EXTERNAL_DB'] || "etcd")
HARDENED = (ENV['E2E_HARDENED'] || "")
RANCHER = (ENV['E2E_RANCHER'] || "")
NODE_CPUS = (ENV['E2E_NODE_CPUS'] || 2).to_i
NODE_MEMORY = (ENV['E2E_NODE_MEMORY'] || 1024).to_i
# Virtualbox >= 6.1.28 require `/etc/vbox/network.conf` for expanded private networks
......@@ -90,35 +89,10 @@ def provision(vm, role, role_num, node_num)
vm.provision "shell", inline: "docker start #{EXTERNAL_DB}"
end
end
# This step does not run by default and is designed to be called by higher level tools
if !RANCHER.empty?
vm.provision "Install Rancher", type: "shell", run: "never", path: scripts_location + "/rancher.sh", args: node_ip
end
end
def getDBType(role, role_num, vm)
if EXTERNAL_DB == "mysql"
if role.include?("server") && role_num == 0
dockerInstall(vm)
vm.provision "Start mysql", inline: "docker run -d -p 3306:3306 --name #{EXTERNAL_DB} -e MYSQL_ROOT_PASSWORD=e2e mysql:5.7"
vm.provision "shell", inline: "echo \"Wait for mysql to startup\"; sleep 10"
return "datastore-endpoint: 'mysql://root:e2e@tcp(#{NETWORK_PREFIX}.100:3306)/k3s'"
elsif role.include?("server") && role_num != 0
return "datastore-endpoint: 'mysql://root:e2e@tcp(#{NETWORK_PREFIX}.100:3306)/k3s'"
end
elsif EXTERNAL_DB == "postgres"
if role.include?("server") && role_num == 0
dockerInstall(vm)
vm.provision "Start postgres", type: "shell", inline: "docker run -d -p 5432:5432 --name postgres -e POSTGRES_PASSWORD=e2e postgres:14-alpine"
vm.provision "shell", inline: "echo \"Wait for postgres to startup\"; sleep 10"
return "datastore-endpoint: 'postgres://postgres:e2e@#{NETWORK_PREFIX}.100:5432/k3s?sslmode=disable'"
elsif role.include?("server") && role_num != 0
return "datastore-endpoint: 'postgres://postgres:e2e@#{NETWORK_PREFIX}.100:5432/k3s?sslmode=disable'"
end
elsif ( EXTERNAL_DB == "" || EXTERNAL_DB == "etcd" )
if ( EXTERNAL_DB == "" || EXTERNAL_DB == "etcd" )
if role.include?("server") && role_num == 0
return "cluster-init: true"
end
......
......@@ -29,7 +29,7 @@ var local = flag.Bool("local", false, "deploy a locally built K3s binary")
func Test_E2EClusterReset(t *testing.T) {
RegisterFailHandler(Fail)
flag.Parse()
RunSpecs(t, "Create Cluster Test Suite")
RunSpecs(t, "Create ClusterReset Test Suite")
}
var (
......@@ -54,7 +54,6 @@ var _ = Describe("Verify Create", Ordered, func() {
fmt.Println("Agent Nodes:", agentNodeNames)
kubeConfigFile, err = e2e.GenKubeConfigFile(serverNodeNames[0])
Expect(err).NotTo(HaveOccurred())
Expect(e2e.DockerLogin(kubeConfigFile, *ci)).To(Succeed())
})
It("Checks Node and Pod Status", func() {
......@@ -100,7 +99,7 @@ var _ = Describe("Verify Create", Ordered, func() {
cmd = "sudo k3s server --cluster-reset"
res, err := e2e.RunCmdOnNode(cmd, "server-0")
Expect(err).NotTo(HaveOccurred())
Expect(res).Should(ContainSubstring("cluster-reset"))
Expect(res).Should(ContainSubstring("Managed etcd cluster membership has been reset, restart without --cluster-reset flag now"))
cmd = "sudo systemctl start k3s"
_, err = e2e.RunCmdOnNode(cmd, "server-0")
......@@ -111,9 +110,13 @@ var _ = Describe("Verify Create", Ordered, func() {
nodes, err := e2e.ParseNodes(kubeConfigFile, false)
g.Expect(err).NotTo(HaveOccurred())
for _, node := range nodes {
g.Expect(node.Status).Should(Equal("Ready"))
if strings.Contains(node.Name, "server-0") || strings.Contains(node.Name, "agent-") {
g.Expect(node.Status).Should(Equal("Ready"))
} else {
g.Expect(node.Status).Should(Equal("NotReady"))
}
}
}, "420s", "5s").Should(Succeed())
}, "480s", "5s").Should(Succeed())
_, _ = e2e.ParseNodes(kubeConfigFile, true)
fmt.Printf("\nFetching Pods status\n")
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment