From 7ce839a3593770c623693d3736ecca492a1dc04b Mon Sep 17 00:00:00 2001 From: Aditya Thebe Date: Wed, 28 Aug 2024 20:15:13 +0545 Subject: [PATCH] feat: add display for kubernetes resource check --- api/v1/checks.go | 10 ++++++++++ canary-checker.properties | 1 + checks/kubernetes_resource.go | 8 ++++++++ .../k8s/kubernetes_resource_pod_exit_code_pass.yaml | 3 +++ 4 files changed, 22 insertions(+) diff --git a/api/v1/checks.go b/api/v1/checks.go index 2b53c8288..573708d46 100644 --- a/api/v1/checks.go +++ b/api/v1/checks.go @@ -972,6 +972,16 @@ type KubernetesResourceCheck struct { WaitFor KubernetesResourceCheckWaitFor `json:"waitFor,omitempty"` } +func (c KubernetesResourceCheck) GetDisplayTemplate() Template { + if !c.Templatable.Display.IsEmpty() { + return c.Templatable.Display + } + + return Template{ + Expression: "display.keys().map(k, k + ': ' + display[k]).join('\n')", + } +} + func (c KubernetesResourceCheck) TotalResources() int { return len(c.Resources) + len(c.StaticResources) } diff --git a/canary-checker.properties b/canary-checker.properties index 18c689bcc..63991988a 100644 --- a/canary-checker.properties +++ b/canary-checker.properties @@ -5,3 +5,4 @@ # check.disabled.tcp=false # topology.runNow=true +log.level.db=warn \ No newline at end of file diff --git a/checks/kubernetes_resource.go b/checks/kubernetes_resource.go index 6a930a1df..542d71f62 100644 --- a/checks/kubernetes_resource.go +++ b/checks/kubernetes_resource.go @@ -109,6 +109,8 @@ func (c *KubernetesResourceChecker) Check(ctx context.Context, check v1.Kubernet } ctx.Logger.V(4).Infof("found %d checks to run", len(check.Checks)) + + displayPerCheck := map[string]string{} for _, c := range check.Checks { virtualCanary := v1.Canary{ ObjectMeta: ctx.Canary.ObjectMeta, @@ -167,6 +169,9 @@ func (c *KubernetesResourceChecker) Check(ctx context.Context, check v1.Kubernet } } + for _, r := range res { + displayPerCheck[r.Check.GetName()] = r.Message + } return nil }) if retryErr != nil { @@ -174,6 +179,9 @@ func (c *KubernetesResourceChecker) Check(ctx context.Context, check v1.Kubernet } } + result.AddData(map[string]any{ + "display": displayPerCheck, + }) return results } diff --git a/fixtures/k8s/kubernetes_resource_pod_exit_code_pass.yaml b/fixtures/k8s/kubernetes_resource_pod_exit_code_pass.yaml index c97a12a83..e2d3d13f5 100644 --- a/fixtures/k8s/kubernetes_resource_pod_exit_code_pass.yaml +++ b/fixtures/k8s/kubernetes_resource_pod_exit_code_pass.yaml @@ -12,6 +12,9 @@ spec: - name: "pod exit code" description: "Create pod & check its exit code" namespace: default + display: + expr: | + "Result of check 'exit-code-check': " + display["exit-code-check"] resources: - apiVersion: v1 kind: Pod