Browse Source

feat: Updated check ServiceMontior check to include APIVersions check for helm charts (#2683)

* feat: Added check for APIVersions

Signed-off-by: Parth Patel <p.patel81@yahoo.com>

* test: unit test for the APIVersions check

Signed-off-by: Parth Patel <p.patel81@yahoo.com>

---------

Signed-off-by: Parth Patel <p.patel81@yahoo.com>
Parth Patel 2 years ago
parent
commit
0a490f9181

+ 1 - 1
deploy/charts/external-secrets/templates/servicemonitor.yaml

@@ -1,4 +1,4 @@
-{{- if .Values.serviceMonitor.enabled }}
+{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) .Values.serviceMonitor.enabled -}}
 apiVersion: v1
 apiVersion: v1
 kind: Service
 kind: Service
 metadata:
 metadata:

+ 1 - 1
deploy/charts/external-secrets/tests/__snapshot__/crds_test.yaml.snap

@@ -4,7 +4,7 @@ should match snapshot of default values:
     kind: CustomResourceDefinition
     kind: CustomResourceDefinition
     metadata:
     metadata:
       annotations:
       annotations:
-        controller-gen.kubebuilder.io/version: v0.12.1
+        controller-gen.kubebuilder.io/version: v0.13.0
       name: secretstores.external-secrets.io
       name: secretstores.external-secrets.io
     spec:
     spec:
       conversion:
       conversion:

+ 34 - 0
deploy/charts/external-secrets/tests/service_monitor_test.yaml

@@ -0,0 +1,34 @@
+suite: test service monitor
+templates: 
+  - servicemonitor.yaml
+tests:
+  - it: should render service monitor when APIVersions is present and serviceMonitor is enabled
+    set:
+      serviceMonitor.enabled: true
+    capabilities:
+      apiVersions:
+        - "monitoring.coreos.com/v1"
+    asserts:
+      - hasDocuments:
+          count: 6
+  - it: should not render service monitor when APIVersions is not present but serviceMonitor is enabled
+    set:
+      serviceMonitor.enabled: true
+    asserts:
+      - hasDocuments:
+          count: 0
+  - it: should not render service monitor when APIVersions is present and serviceMonitor is disabled
+    set:
+      serviceMonitor.enabled: false
+    capabilities:
+      apiVersions:
+        - "monitoring.coreos.com/v1"
+    asserts:
+      - hasDocuments:
+          count: 0
+  - it: should not render service monitor when APIVersions is not present and serviceMonitor is disabled
+    set:
+      serviceMonitor.enabled: false
+    asserts:
+      - hasDocuments:
+          count: 0