From 8f1f5c7234e694a4830744f92e1b0f8d1e3cd43d Mon Sep 17 00:00:00 2001 From: fprovencherdrw <143546324+fprovencherdrw@users.noreply.github.com> Date: Fri, 13 Jun 2025 11:57:56 -0400 Subject: [PATCH] feat(health): add Logstash resource customization (#22028) Signed-off-by: Francis Provencher --- .../Logstash/health.lua | 20 +++++++++++++++++++ .../Logstash/health_test.yaml | 17 ++++++++++++++++ .../Logstash/testdata/green.yaml | 6 ++++++ .../Logstash/testdata/red.yaml | 6 ++++++ .../Logstash/testdata/unknown.yaml | 5 +++++ .../Logstash/testdata/yellow.yaml | 6 ++++++ 6 files changed, 60 insertions(+) create mode 100644 resource_customizations/logstash.k8s.elastic.co/Logstash/health.lua create mode 100644 resource_customizations/logstash.k8s.elastic.co/Logstash/health_test.yaml create mode 100644 resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/green.yaml create mode 100644 resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/red.yaml create mode 100644 resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/unknown.yaml create mode 100644 resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/yellow.yaml diff --git a/resource_customizations/logstash.k8s.elastic.co/Logstash/health.lua b/resource_customizations/logstash.k8s.elastic.co/Logstash/health.lua new file mode 100644 index 0000000000..e09c13497e --- /dev/null +++ b/resource_customizations/logstash.k8s.elastic.co/Logstash/health.lua @@ -0,0 +1,20 @@ +local hs = {} +if obj.status ~= nil and obj.status.health ~= nil then + if obj.status.health == "green" then + hs.status = "Healthy" + hs.message = "Logstash status is Green" + return hs + elseif obj.status.health == "yellow" then + hs.status = "Progressing" + hs.message = "Logstash status is Yellow" + return hs + elseif obj.status.health == "red" then + hs.status = "Degraded" + hs.message = "Logstash status is Red" + return hs + end +end + +hs.status = "Progressing" +hs.message = "Waiting for Logstash" +return hs diff --git a/resource_customizations/logstash.k8s.elastic.co/Logstash/health_test.yaml b/resource_customizations/logstash.k8s.elastic.co/Logstash/health_test.yaml new file mode 100644 index 0000000000..931cdcb020 --- /dev/null +++ b/resource_customizations/logstash.k8s.elastic.co/Logstash/health_test.yaml @@ -0,0 +1,17 @@ +tests: +- healthStatus: + status: Healthy + message: "Logstash status is Green" + inputPath: testdata/green.yaml +- healthStatus: + status: Progressing + message: "Logstash status is Yellow" + inputPath: testdata/yellow.yaml +- healthStatus: + status: Degraded + message: "Logstash status is Red" + inputPath: testdata/red.yaml +- healthStatus: + status: Progressing + message: "Waiting for Logstash" + inputPath: testdata/unknown.yaml diff --git a/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/green.yaml b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/green.yaml new file mode 100644 index 0000000000..d68985ee66 --- /dev/null +++ b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/green.yaml @@ -0,0 +1,6 @@ +apiVersion: logstash.k8s.elastic.co/v1alpha1 +kind: Logstash +metadata: + name: quickstart +status: + health: green diff --git a/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/red.yaml b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/red.yaml new file mode 100644 index 0000000000..2d420f458e --- /dev/null +++ b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/red.yaml @@ -0,0 +1,6 @@ +apiVersion: logstash.k8s.elastic.co/v1alpha1 +kind: Logstash +metadata: + name: quickstart +status: + health: red diff --git a/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/unknown.yaml b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/unknown.yaml new file mode 100644 index 0000000000..9e8f54c610 --- /dev/null +++ b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/unknown.yaml @@ -0,0 +1,5 @@ +apiVersion: logstash.k8s.elastic.co/v1alpha1 +kind: Logstash +metadata: + name: quickstart +status: {} diff --git a/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/yellow.yaml b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/yellow.yaml new file mode 100644 index 0000000000..8d0d57e27b --- /dev/null +++ b/resource_customizations/logstash.k8s.elastic.co/Logstash/testdata/yellow.yaml @@ -0,0 +1,6 @@ +apiVersion: logstash.k8s.elastic.co/v1alpha1 +kind: Logstash +metadata: + name: quickstart +status: + health: yellow