diff --git a/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/health.lua b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/health.lua new file mode 100644 index 0000000000..ef6abf8a35 --- /dev/null +++ b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/health.lua @@ -0,0 +1,22 @@ +hs = {} +if obj.status ~= nil then + if obj.status.conditions ~= nil then + for i, condition in ipairs(obj.status.conditions) do + if condition.type == "Ready" then + hs.message = condition.message + if condition.status == "False" then + hs.status = "Degraded" + elseif condition.status == "True" then + hs.status = "Healthy" + else + hs.status = "Progressing" + end + return hs + end + end + end +end + +hs.status = "Progressing" +hs.message = "Waiting ..." +return hs diff --git a/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/health_test.yaml b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/health_test.yaml new file mode 100644 index 0000000000..941b279e89 --- /dev/null +++ b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/health_test.yaml @@ -0,0 +1,17 @@ +tests: + - healthStatus: + status: Progressing + message: "Waiting ..." + inputPath: testdata/empty.yaml + - healthStatus: + status: Healthy + message: "Grafana Instance reconciled" + inputPath: testdata/healthy.yaml + - healthStatus: + status: Degraded + message: >- + Failed to reach Grafana instance: Get + "http://grafana.grafana.invalid/api/user": dial tcp: + lookup grafana.grafana.invalid on 10.20.30.40:53: server + misbehaving + inputPath: testdata/degraded.yaml \ No newline at end of file diff --git a/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/degraded.yaml b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/degraded.yaml new file mode 100644 index 0000000000..3e02e98cac --- /dev/null +++ b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/degraded.yaml @@ -0,0 +1,20 @@ +apiVersion: grafana-org-operator.kubitus-project.gitlab.io/v1beta1 +kind: GrafanaInstance +metadata: + name: grafana + namespace: grafana-org-operator +spec: + url: http://grafana.grafana.svc.invalid + secretRef: grafana-admin +status: + conditions: + - lastTransitionTime: '2025-12-15T13:20:19Z' + message: >- + Failed to reach Grafana instance: Get + "http://grafana.grafana.invalid/api/user": dial tcp: + lookup grafana.grafana.invalid on 10.20.30.40:53: server + misbehaving + observedGeneration: 42 + reason: Unreachable + status: 'False' + type: Ready diff --git a/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/empty.yaml b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/empty.yaml new file mode 100644 index 0000000000..1566d60ef7 --- /dev/null +++ b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/empty.yaml @@ -0,0 +1,8 @@ +apiVersion: grafana-org-operator.kubitus-project.gitlab.io/v1beta1 +kind: GrafanaOrg +metadata: + name: my-org + namespace: grafana-org-operator +spec: + grafanaInstanceRef: grafana + orgName: My Org. diff --git a/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/healthy.yaml b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/healthy.yaml new file mode 100644 index 0000000000..07b4cc083b --- /dev/null +++ b/resource_customizations/grafana-org-operator.kubitus-project.gitlab.io/_/testdata/healthy.yaml @@ -0,0 +1,16 @@ +apiVersion: grafana-org-operator.kubitus-project.gitlab.io/v1beta1 +kind: GrafanaInstance +metadata: + name: grafana + namespace: grafana-org-operator +spec: + url: http://grafana.grafana.svc + secretRef: grafana-admin +status: + conditions: + - lastTransitionTime: '2025-10-21T12:33:41Z' + message: Grafana Instance reconciled + observedGeneration: 1 + reason: Reconciled + status: 'True' + type: Ready diff --git a/util/lua/lua_test.go b/util/lua/lua_test.go index a64dca4b84..96f10fc137 100644 --- a/util/lua/lua_test.go +++ b/util/lua/lua_test.go @@ -1075,5 +1075,10 @@ func Test_getHealthScriptPaths(t *testing.T) { // This test will fail any time a glob pattern is added to the health script paths. We don't expect that to happen // often. - assert.Equal(t, []string{"_.cnrm.cloud.google.com/_", "_.crossplane.io/_", "_.upbound.io/_"}, paths) + assert.Equal(t, []string{ + "_.cnrm.cloud.google.com/_", + "_.crossplane.io/_", + "_.upbound.io/_", + "grafana-org-operator.kubitus-project.gitlab.io/_", + }, paths) }