Commit 9d1d824a authored by Brad Davidson's avatar Brad Davidson Committed by Brad Davidson

Fix flakey dynamic-cert.json in cert rotation e2e test

parent 30e01f4a
...@@ -305,9 +305,8 @@ var _ = Describe("Verify Create", Ordered, func() { ...@@ -305,9 +305,8 @@ var _ = Describe("Verify Create", Ordered, func() {
for _, nodeName := range serverNodeNames { for _, nodeName := range serverNodeNames {
cmd := "k3s certificate rotate" cmd := "k3s certificate rotate"
if _, err := e2e.RunCmdOnNode(cmd, nodeName); err != nil { _, err := e2e.RunCmdOnNode(cmd, nodeName)
Expect(err).NotTo(HaveOccurred(), "Certificate could not be rotated successfully") Expect(err).NotTo(HaveOccurred(), "Certificate could not be rotated successfully on "+nodeName)
}
} }
}) })
...@@ -320,12 +319,11 @@ var _ = Describe("Verify Create", Ordered, func() { ...@@ -320,12 +319,11 @@ var _ = Describe("Verify Create", Ordered, func() {
Expect(err).NotTo(HaveOccurred(), "Cluster could not be started successfully") Expect(err).NotTo(HaveOccurred(), "Cluster could not be started successfully")
Eventually(func(g Gomega) { Eventually(func(g Gomega) {
nodes, err := e2e.ParseNodes(kubeConfigFile, false) for _, nodeName := range serverNodeNames {
g.Expect(err).NotTo(HaveOccurred()) cmd := "test ! -e /var/lib/rancher/k3s/server/tls/dynamic-cert-regenerate"
for _, node := range nodes { _, err := e2e.RunCmdOnNode(cmd, nodeName)
g.Expect(node.Status).Should(Equal("Ready")) Expect(err).NotTo(HaveOccurred(), "Dynamic cert regenerate file not removed on "+nodeName)
} }
fmt.Println("help")
}, "620s", "5s").Should(Succeed()) }, "620s", "5s").Should(Succeed())
Eventually(func(g Gomega) { Eventually(func(g Gomega) {
...@@ -340,41 +338,39 @@ var _ = Describe("Verify Create", Ordered, func() { ...@@ -340,41 +338,39 @@ var _ = Describe("Verify Create", Ordered, func() {
} }
}, "620s", "5s").Should(Succeed()) }, "620s", "5s").Should(Succeed())
}) })
It("Validates certificates", func() { It("Validates certificates", func() {
const grepCert = "ls -lt /var/lib/rancher/k3s/server/ | grep tls" const grepCert = "ls -lt /var/lib/rancher/k3s/server/ | grep tls"
var expectResult = []string{"client-ca.crt", // This is a list of files that should be IDENTICAL after certificates are rotated.
"client-ca.key", // Everything else should be changed.
"client-ca.nochain.crt", var expectResult = []string{
"client-ca.crt", "client-ca.key", "client-ca.nochain.crt",
"client-supervisor.crt", "client-supervisor.key", "client-supervisor.crt", "client-supervisor.key",
"dynamic-cert.json", "peer-ca.crt", "peer-ca.crt", "peer-ca.key",
"peer-ca.key", "server-ca.crt", "server-ca.crt", "server-ca.key",
"server-ca.key", "request-header-ca.crt", "request-header-ca.crt", "request-header-ca.key",
"request-header-ca.key", "server-ca.crt", "server-ca.crt", "server-ca.key", "server-ca.nochain.crt",
"server-ca.key", "server-ca.nochain.crt",
"service.current.key", "service.key", "service.current.key", "service.key",
"apiserver-loopback-client__.crt", "apiserver-loopback-client__.crt",
"apiserver-loopback-client__.key", "", "apiserver-loopback-client__.key", "",
} }
var finalResult string
var finalErr error
for _, nodeName := range serverNodeNames { for _, nodeName := range serverNodeNames {
grCert, errGrep := e2e.RunCmdOnNode(grepCert, nodeName) grCert, errGrep := e2e.RunCmdOnNode(grepCert, nodeName)
Expect(errGrep).NotTo(HaveOccurred(), "Certificate could not be created successfully") Expect(errGrep).NotTo(HaveOccurred(), "TLS dirs could not be listed on "+nodeName)
re := regexp.MustCompile("tls-[0-9]+") re := regexp.MustCompile("tls-[0-9]+")
tls := re.FindAllString(grCert, -1)[0] tls := re.FindAllString(grCert, -1)[0]
final := fmt.Sprintf("diff -sr /var/lib/rancher/k3s/server/tls/ /var/lib/rancher/k3s/server/%s/"+ diff := fmt.Sprintf("diff -sr /var/lib/rancher/k3s/server/tls/ /var/lib/rancher/k3s/server/%s/"+
"| grep -i identical | cut -f4 -d ' ' | xargs basename -a \n", tls) "| grep -i identical | cut -f4 -d ' ' | xargs basename -a \n", tls)
finalResult, finalErr = e2e.RunCmdOnNode(final, nodeName) result, err := e2e.RunCmdOnNode(diff, nodeName)
Expect(finalErr).NotTo(HaveOccurred(), "Final Certification does not created successfully") Expect(err).NotTo(HaveOccurred(), "Certificate diff not created successfully on "+nodeName)
certArray := strings.Split(result, "\n")
Expect((certArray)).Should((Equal(expectResult)), "Certificate diff does not match the expected results on "+nodeName)
} }
errRestartAgent := e2e.RestartCluster(agentNodeNames) errRestartAgent := e2e.RestartCluster(agentNodeNames)
Expect(errRestartAgent).NotTo(HaveOccurred(), "Agent could not be restart successfully") Expect(errRestartAgent).NotTo(HaveOccurred(), "Agent could not be restart successfully")
finalCert := strings.Replace(finalResult, "\n", ",", -1)
finalCertArray := strings.Split(finalCert, ",")
Expect((finalCertArray)).Should((Equal(expectResult)), "Final certification does not match the expected results")
}) })
}) })
......
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