From 033c3f6e99c83b9ce7d02ed069c333e1224295f8 Mon Sep 17 00:00:00 2001
From: OZG-Cloud Team <noreply@ozg-sh.de>
Date: Fri, 5 Apr 2024 12:15:33 +0200
Subject: [PATCH] OZG-3328 cleanup and add helm unittests

---
 ...yment_defaults_containers_health_test.yaml | 81 +++++++++++++++++++
 xta-adapter/run_helm_test.sh                  |  2 +-
 ...ull-secret.yaml => image_pull_secret.yaml} |  0
 .../src/test/helm/image_pull_secret_test.yaml |  2 +-
 .../src/test/helm/service_account_test.yaml   |  4 +
 .../helm/xta_adapter_cronjob_basic_test.yaml  |  6 --
 ...=> xta_adapter_cronjob_bindings_test.yaml} |  0
 ...xta_adapter_cronjob_dummy_probes_test.yaml |  9 ---
 .../helm/xta_adapter_cronjob_env_test.yaml    |  2 -
 .../xta_adapter_cronjob_resources_test.yaml   |  1 -
 .../xta_adapter_cronjob_volumes_test.yaml     |  2 -
 ...-test.yaml => xta_bindings_type_test.yaml} | 10 ++-
 ...est.yaml => xta_keystore_secret_test.yaml} | 10 +++
 ...test.yaml => xta_root_ca_secret_test.yaml} |  9 +++
 14 files changed, 115 insertions(+), 23 deletions(-)
 create mode 100644 src/test/helm/deployment_defaults_containers_health_test.yaml
 rename xta-adapter/src/main/helm/templates/{image-pull-secret.yaml => image_pull_secret.yaml} (100%)
 rename xta-adapter/src/test/helm/{xta_adapter_bindings_test.yaml => xta_adapter_cronjob_bindings_test.yaml} (100%)
 rename xta-adapter/src/test/helm/{xta-bindings-type-test.yaml => xta_bindings_type_test.yaml} (89%)
 rename xta-adapter/src/test/helm/{xta-keystore-secret-test.yaml => xta_keystore_secret_test.yaml} (88%)
 rename xta-adapter/src/test/helm/{xta-root-ca-secret-test.yaml => xta_root_ca_secret_test.yaml} (88%)

diff --git a/src/test/helm/deployment_defaults_containers_health_test.yaml b/src/test/helm/deployment_defaults_containers_health_test.yaml
new file mode 100644
index 00000000..e57dbb70
--- /dev/null
+++ b/src/test/helm/deployment_defaults_containers_health_test.yaml
@@ -0,0 +1,81 @@
+#
+# Copyright (C) 2022 Das Land Schleswig-Holstein vertreten durch den
+# Ministerpräsidenten des Landes Schleswig-Holstein
+# Staatskanzlei
+# Abteilung Digitalisierung und zentrales IT-Management der Landesregierung
+#
+# Lizenziert unter der EUPL, Version 1.2 oder - sobald
+# diese von der Europäischen Kommission genehmigt wurden -
+# Folgeversionen der EUPL ("Lizenz");
+# Sie dürfen dieses Werk ausschließlich gemäß
+# dieser Lizenz nutzen.
+# Eine Kopie der Lizenz finden Sie hier:
+#
+# https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
+#
+# Sofern nicht durch anwendbare Rechtsvorschriften
+# gefordert oder in schriftlicher Form vereinbart, wird
+# die unter der Lizenz verbreitete Software "so wie sie
+# ist", OHNE JEGLICHE GEWÄHRLEISTUNG ODER BEDINGUNGEN -
+# ausdrücklich oder stillschweigend - verbreitet.
+# Die sprachspezifischen Genehmigungen und Beschränkungen
+# unter der Lizenz sind dem Lizenztext zu entnehmen.
+#
+
+suite: test deployment health check
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+tests:
+  - it: should work
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.failureThreshold
+          value: 3
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.httpGet.path
+          value: /actuator/health/readiness
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.httpGet.port
+          value: 8081
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.httpGet.scheme
+          value: HTTP
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.periodSeconds
+          value: 10
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.successThreshold
+          value: 1
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe.timeoutSeconds
+          value: 3  
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.failureThreshold
+          value: 10
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.httpGet.path
+          value: /actuator/health/readiness
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.httpGet.port
+          value: 8081
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.httpGet.scheme
+          value: HTTP
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.initialDelaySeconds
+          value: 30
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.periodSeconds
+          value: 5
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.successThreshold
+          value: 1
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe.timeoutSeconds
+          value: 5
+      
\ No newline at end of file
diff --git a/xta-adapter/run_helm_test.sh b/xta-adapter/run_helm_test.sh
index 9a57c3aa..31d13d5b 100755
--- a/xta-adapter/run_helm_test.sh
+++ b/xta-adapter/run_helm_test.sh
@@ -4,4 +4,4 @@ set -e
 
 helm template  ./src/main/helm/ -f src/test/helm-linter-values.yaml
 helm lint -f src/test/helm-linter-values.yaml ./src/main/helm/
-cd src/main/helm && helm unittest -f '../../test/helm/*.yaml'  .
+cd src/main/helm && helm unittest -f '../../test/helm/**/*.yaml'  .
diff --git a/xta-adapter/src/main/helm/templates/image-pull-secret.yaml b/xta-adapter/src/main/helm/templates/image_pull_secret.yaml
similarity index 100%
rename from xta-adapter/src/main/helm/templates/image-pull-secret.yaml
rename to xta-adapter/src/main/helm/templates/image_pull_secret.yaml
diff --git a/xta-adapter/src/test/helm/image_pull_secret_test.yaml b/xta-adapter/src/test/helm/image_pull_secret_test.yaml
index 7929ffb7..c01b6a4b 100644
--- a/xta-adapter/src/test/helm/image_pull_secret_test.yaml
+++ b/xta-adapter/src/test/helm/image_pull_secret_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test image pull secret
 templates:
-  - templates/image-pull-secret.yaml
+  - templates/image_pull_secret.yaml
 release:
   name: xta-adapter
   namespace: helm-test
diff --git a/xta-adapter/src/test/helm/service_account_test.yaml b/xta-adapter/src/test/helm/service_account_test.yaml
index e69fb10e..1027bebb 100644
--- a/xta-adapter/src/test/helm/service_account_test.yaml
+++ b/xta-adapter/src/test/helm/service_account_test.yaml
@@ -36,6 +36,8 @@ tests:
     asserts:
       - isKind:
           of: ServiceAccount
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
           value: xta-adapter-service-account
@@ -50,6 +52,8 @@ tests:
     asserts:
       - isKind:
           of: ServiceAccount
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
           value: helm-service-account
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
index b17ff745..74afdf5e 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
@@ -33,7 +33,6 @@ set:
   
 tests:
   - it: validate basic data 
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
     asserts:
@@ -56,7 +55,6 @@ tests:
           path: spec.concurrencyPolicy
           value: Forbid
   - it: check set schedule
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
       xta:
@@ -70,7 +68,6 @@ tests:
           path: spec.schedule
           value: "1 1 * * * *"
   - it: check dev schedule
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
     asserts:
@@ -78,7 +75,6 @@ tests:
           path: spec.schedule
           value: "*/15 * * * *"
   - it: check container image
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
     asserts:
@@ -87,7 +83,6 @@ tests:
         value: "docker.ozg-sh.de/xta-adapter:9.9.99"
 
   - it: check securityContext
-    template: xta_adapter_cronjob.yaml
     asserts:
     - equal:
         path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation
@@ -124,7 +119,6 @@ tests:
           path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsGroup
           value: 1000
   - it: check pod labels
-    template: xta_adapter_cronjob.yaml
     asserts:
     - equal:
         path: spec.jobTemplate.spec.template.metadata.labels
diff --git a/xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml
similarity index 100%
rename from xta-adapter/src/test/helm/xta_adapter_bindings_test.yaml
rename to xta-adapter/src/test/helm/xta_adapter_cronjob_bindings_test.yaml
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml
index 93637305..dc08c5ac 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_dummy_probes_test.yaml
@@ -32,37 +32,31 @@ set:
   ozgcloud.environment: test
 tests:
   - it: check dummy livenessProbe default disabled
-    template: xta_adapter_cronjob.yaml
     asserts:
       - notExists:
           path: spec.jobTemplate.spec.template.spec.containers[0].livenessProbe
   - it: check dummy startupProbe default disabled
-    template: xta_adapter_cronjob.yaml
     asserts:
       - notExists:
           path: spec.jobTemplate.spec.template.spec.containers[0].startupProbe
   - it: check dummy readynessProbe default disabled
-    template: xta_adapter_cronjob.yaml
     asserts:
       - notExists:
           path: spec.jobTemplate.spec.template.spec.containers[0].readinessProbe
 
   - it: check dummy livenessProbe disabled
-    template: xta_adapter_cronjob.yaml
     set:
       dummyProbesEnabled: false
     asserts:
       - notExists:
           path: spec.jobTemplate.spec.template.spec.containers[0].livenessProbe
   - it: check dummy startupProbe disabled
-    template: xta_adapter_cronjob.yaml
     set:
       dummyProbesEnabled: false
     asserts:
       - notExists:
           path: spec.jobTemplate.spec.template.spec.containers[0].startupProbe
   - it: check dummy readynessProbe disabled
-    template: xta_adapter_cronjob.yaml
     set:
       dummyProbesEnabled: false
     asserts:
@@ -71,21 +65,18 @@ tests:
 
 
   - it: check dummy livenessProbe enabled
-    template: xta_adapter_cronjob.yaml
     set:
       dummyProbesEnabled: true
     asserts:
       - isNotEmpty:
           path: spec.jobTemplate.spec.template.spec.containers[0].livenessProbe
   - it: check dummy startupProbe enabled
-    template: xta_adapter_cronjob.yaml
     set:
       dummyProbesEnabled: true
     asserts:
       - isNotEmpty:
           path: spec.jobTemplate.spec.template.spec.containers[0].startupProbe
   - it: check dummy readynessProbe enabled
-    template: xta_adapter_cronjob.yaml
     set:
       dummyProbesEnabled: true
     asserts:
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
index 45eb29fa..294bf8fb 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_env_test.yaml
@@ -32,7 +32,6 @@ set:
   ozgcloud.environment: test
 tests:
   - it: check default env
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
       xta:
@@ -112,7 +111,6 @@ tests:
             name: grpc_client_vorgang-manager-vorgang-manager_negotiationType
             value: "PLAINTEXT"
   - it: check set env values
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
       env.overrideSpringProfiles: local
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml
index 02efe396..b9b879cd 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_resources_test.yaml
@@ -32,7 +32,6 @@ set:
   ozgcloud.environment: dev
 tests:
   - it: check resources
-    template: xta_adapter_cronjob.yaml
     set:
       resources:
         limits:
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
index 6acac9f4..bbddacc9 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_volumes_test.yaml
@@ -32,7 +32,6 @@ set:
   ozgcloud.environment: dev
 tests:
   - it: check volume mounts
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
       xta:
@@ -63,7 +62,6 @@ tests:
             subPath: file
             readOnly: true
   - it: check volumes
-    template: xta_adapter_cronjob.yaml
     set:
       image.name: xta-adapter
       xta:
diff --git a/xta-adapter/src/test/helm/xta-bindings-type-test.yaml b/xta-adapter/src/test/helm/xta_bindings_type_test.yaml
similarity index 89%
rename from xta-adapter/src/test/helm/xta-bindings-type-test.yaml
rename to xta-adapter/src/test/helm/xta_bindings_type_test.yaml
index ff4858ff..ad369799 100644
--- a/xta-adapter/src/test/helm/xta-bindings-type-test.yaml
+++ b/xta-adapter/src/test/helm/xta_bindings_type_test.yaml
@@ -37,6 +37,8 @@ tests:
     asserts:
       - isKind:
           of: ConfigMap
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
           value: xta-adapter-bindings-type
@@ -45,4 +47,10 @@ tests:
           value: helm-test
       - equal:
           path: data.type
-          value: ca-certificates
\ No newline at end of file
+          value: ca-certificates
+  - it: should not create config map by default
+    asserts:
+      - hasDocuments:
+        count: 0
+
+    
\ No newline at end of file
diff --git a/xta-adapter/src/test/helm/xta-keystore-secret-test.yaml b/xta-adapter/src/test/helm/xta_keystore_secret_test.yaml
similarity index 88%
rename from xta-adapter/src/test/helm/xta-keystore-secret-test.yaml
rename to xta-adapter/src/test/helm/xta_keystore_secret_test.yaml
index 83eafba7..fca872c1 100644
--- a/xta-adapter/src/test/helm/xta-keystore-secret-test.yaml
+++ b/xta-adapter/src/test/helm/xta_keystore_secret_test.yaml
@@ -39,6 +39,11 @@ tests:
     asserts:
       - isKind:
           of: Secret
+      - isAPIVersion:
+          of: v1
+      - equal:
+          path: type
+          value: Opaque
       - equal:
           path: metadata.name
           value: xta-keystore
@@ -51,4 +56,9 @@ tests:
       - equal:
           path: data.file
           value: Z2VoZWltCg==
+
+  - it: should not create keystore by default
+    asserts:
+      - hasDocuments:
+        count: 0
       
diff --git a/xta-adapter/src/test/helm/xta-root-ca-secret-test.yaml b/xta-adapter/src/test/helm/xta_root_ca_secret_test.yaml
similarity index 88%
rename from xta-adapter/src/test/helm/xta-root-ca-secret-test.yaml
rename to xta-adapter/src/test/helm/xta_root_ca_secret_test.yaml
index c3861ba5..f65bbcb9 100644
--- a/xta-adapter/src/test/helm/xta-root-ca-secret-test.yaml
+++ b/xta-adapter/src/test/helm/xta_root_ca_secret_test.yaml
@@ -37,9 +37,14 @@ tests:
     asserts:
       - isKind:
           of: Secret
+      - isAPIVersion:
+          of: v1
       - equal:
           path: metadata.name
           value: xta-root-ca
+      - equal:
+          path: type
+          value: Opaque
       - equal:
           path: metadata.namespace
           value: helm-test
@@ -47,3 +52,7 @@ tests:
           path: data["ca.crt"]
           value: Z2VoZWltCg==
       
+  - it: should not create ca secret by default
+    asserts:
+      - hasDocuments:
+        count: 0
\ No newline at end of file
-- 
GitLab