diff --git a/test/e2e_env/kubernetes/kubernetes_suite_test.go b/test/e2e_env/kubernetes/kubernetes_suite_test.go index dbbeae31a076..c124a348bd01 100644 --- a/test/e2e_env/kubernetes/kubernetes_suite_test.go +++ b/test/e2e_env/kubernetes/kubernetes_suite_test.go @@ -49,7 +49,10 @@ var _ = E2ESynchronizedBeforeSuite(kubernetes.SetupAndGetState, kubernetes.Resto // Otherwise, we would close port-forward to the CP and remaining tests executed in different processes may fail. var _ = SynchronizedAfterSuite(func() {}, func() {}) -var _ = ReportAfterSuite("cp logs", kubernetes.PrintCPLogsOnFailure) +var ( + _ = ReportAfterSuite("cp logs", kubernetes.PrintCPLogsOnFailure) + _ = ReportAfterSuite("kube state", kubernetes.PrintKubeState) +) var ( _ = Describe("Virtual Probes", healthcheck.VirtualProbes, Ordered) diff --git a/test/e2e_env/multizone/multizone_suite_test.go b/test/e2e_env/multizone/multizone_suite_test.go index 176538974518..77ca3d6d1579 100644 --- a/test/e2e_env/multizone/multizone_suite_test.go +++ b/test/e2e_env/multizone/multizone_suite_test.go @@ -43,6 +43,7 @@ var ( } }) _ = ReportAfterSuite("cp logs", multizone.PrintCPLogsOnFailure) + _ = ReportAfterSuite("kube state", multizone.PrintKubeState) ) var ( diff --git a/test/framework/envs/kubernetes/env.go b/test/framework/envs/kubernetes/env.go index 9bf496e9e9af..c0e20dec13aa 100644 --- a/test/framework/envs/kubernetes/env.go +++ b/test/framework/envs/kubernetes/env.go @@ -3,6 +3,7 @@ package kubernetes import ( "encoding/json" + "github.com/gruntwork-io/terratest/modules/k8s" "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -82,3 +83,12 @@ func PrintCPLogsOnFailure(report ginkgo.Report) { } } } + +func PrintKubeState(report ginkgo.Report) { + if !report.SuiteSucceeded { + // just running it, prints the logs + if err := k8s.RunKubectlE(Cluster.GetTesting(), Cluster.GetKubectlOptions(), "get", "pods", "-A"); err != nil { + framework.Logf("could not retrieve kube pods") + } + } +} diff --git a/test/framework/envs/multizone/env.go b/test/framework/envs/multizone/env.go index 195895444765..eacc507f9899 100644 --- a/test/framework/envs/multizone/env.go +++ b/test/framework/envs/multizone/env.go @@ -4,6 +4,7 @@ import ( "encoding/json" "sync" + "github.com/gruntwork-io/terratest/modules/k8s" . "github.com/onsi/ginkgo/v2" . "github.com/onsi/gomega" @@ -272,13 +273,27 @@ func RestoreState(bytes []byte) { } func PrintCPLogsOnFailure(report Report) { - for _, cluster := range append(Zones(), Global) { - Logf("\n\n\n\n\nCP logs of: " + cluster.Name()) - logs, err := cluster.GetKumaCPLogs() - if err != nil { - Logf("could not retrieve cp logs") - } else { - Logf(logs) + if !report.SuiteSucceeded { + for _, cluster := range append(Zones(), Global) { + Logf("\n\n\n\n\nCP logs of: " + cluster.Name()) + logs, err := cluster.GetKumaCPLogs() + if err != nil { + Logf("could not retrieve cp logs") + } else { + Logf(logs) + } + } + } +} + +func PrintKubeState(report Report) { + if !report.SuiteSucceeded { + for _, cluster := range []Cluster{KubeZone1, KubeZone2} { + Logf("Kube state of cluster: " + cluster.Name()) + // just running it, prints the logs + if err := k8s.RunKubectlE(cluster.GetTesting(), cluster.GetKubectlOptions(), "get", "pods", "-A"); err != nil { + framework.Logf("could not retrieve kube pods") + } } } }