From 344e09f86886821a902333dbaaa8de6d0654791c Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
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 000000000..e57dbb709
--- /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 9a57c3aa8..31d13d5b9 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 1db60649f..4ffa69cba 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 e69fb10ec..1027bebb9 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 b17ff7452..74afdf5e3 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 93637305c..dc08c5ac6 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 45eb29fa6..294bf8fb9 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 02efe3963..b9b879cd3 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 6acac9f4f..bbddacc94 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 ff4858ff0..ad3697998 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 b01988387..8272eb11c 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 c3861ba54..f65bbcb9e 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