From aaaa950f6fa15ef4798f71d2bdb5110c4df60ba2 Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Thu, 11 Jan 2024 16:32:06 +0100
Subject: [PATCH] OZG-3328 use new helm unittest framework

---
 run_helm_test.sh                              |  7 +--
 src/main/helm/templates/_helpers.tpl          | 16 +++++--
 .../helm/templates/keycloak-client-crd.yaml   |  2 +-
 src/main/helm/templates/keycloak-crd.yaml     |  2 +-
 .../helm/templates/keycloak-group-crd.yaml    |  2 +-
 .../helm/templates/keycloak-user-crd.yaml     |  2 +-
 src/main/helm/templates/network_policy.yaml   |  2 +-
 ...d_keycloak_operator_secrets_read_role.yaml |  2 +-
 ...ak_operator_secrets_read_role_binding.yaml |  2 +-
 ..._keycloak_operator_secrets_write_role.yaml |  2 +-
 ...k_operator_secrets_write_role_binding.yaml |  2 +-
 src/main/helm/values.yaml                     |  5 --
 ...er-values.yaml => helm-linter-values.yaml} |  7 ++-
 src/test/helm/deployment_bindings_test.yaml   | 12 ++++-
 .../deployment_defaults_affinity_test.yaml    |  8 ++++
 .../deployment_defaults_annotaion_test.yaml   |  8 +++-
 .../helm/deployment_defaults_env_test.yaml    | 19 +++++++-
 .../helm/deployment_defaults_labels_test.yaml | 16 +++++--
 ..._defaults_spec_containers_health_test.yaml |  8 ++++
 ..._spec_containers_securityContext_test.yaml |  8 ++++
 ...loyment_defaults_spec_containers_test.yaml | 11 +++++
 .../helm/deployment_defaults_spec_test.yaml   | 13 ++++-
 .../helm/deployment_defaults_sso_test.yaml    | 18 +++++--
 ...faults_topologySpreadConstraints_test.yaml | 10 +++-
 src/test/helm/deployment_env_test.yaml        |  8 ++++
 .../helm/deployment_host_aliases_test.yaml    |  8 ++++
 src/test/helm/deployment_imageTag_test.yaml   |  8 ++++
 .../deployment_imagepull_secret_test.yaml     |  8 ++++
 .../helm/deployment_pluto_address_test.yaml   |  8 ++++
 src/test/helm/deployment_replicas_test.yaml   |  8 ++++
 src/test/helm/deployment_resources_test.yaml  |  8 ++++
 .../helm/deployment_service_account_test.yaml |  8 ++++
 .../helm/deployment_springProfile_test.yaml   |  8 ++++
 .../deployment_usermanager_address_test.yaml  | 10 +++-
 src/test/helm/image_pull_secret_test.yaml     |  4 +-
 src/test/helm/ingress-nginx-tests.yaml        | 13 +++--
 src/test/helm/keycloak-client-crd-test.yaml   | 27 +++--------
 src/test/helm/keycloak-crd-test.yaml          |  4 ++
 src/test/helm/keycloak-user-crd-test.yaml     |  2 +-
 src/test/helm/network_policy_test.yaml        | 11 ++++-
 src/test/helm/service_monitor_test.yaml       |  8 ++--
 src/test/helm/service_test.yaml               | 16 +++----
 src/test/unit-values.yaml                     | 48 -------------------
 43 files changed, 274 insertions(+), 125 deletions(-)
 rename src/test/{linter-values.yaml => helm-linter-values.yaml} (90%)
 delete mode 100644 src/test/unit-values.yaml

diff --git a/run_helm_test.sh b/run_helm_test.sh
index 28f3552a66..4395f39425 100755
--- a/run_helm_test.sh
+++ b/run_helm_test.sh
@@ -1,7 +1,8 @@
 #!/bin/sh
 
 set -e
+set -x
 
-helm template  ./src/main/helm/ -f src/test/linter-values.yaml
-helm lint -f src/test/linter-values.yaml ./src/main/helm/
-cd src/main/helm && helm unittest --helm3 -f '../../test/helm/*.yaml' -v '../../test/unit-values.yaml' .
\ No newline at end of file
+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' .
\ No newline at end of file
diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
index de78b3fcf2..5a010852ea 100644
--- a/src/main/helm/templates/_helpers.tpl
+++ b/src/main/helm/templates/_helpers.tpl
@@ -58,11 +58,15 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{ printf "%s.%s:9000" ( coalesce .Values.usermanagerName "user-manager" ) .Release.Namespace }}
 {{- end -}}
 
+{{- define "app.baseUrlDirect" -}}
+{{- required "baseUrl muss angegeben sein" .Values.baseUrl }}
+{{- end -}}
+
 {{- define "app.ozgcloud_user-manager_url" -}}
 {{- if (.Values).usermanagerUrl -}}
 {{ printf "%s" (.Values).usermanagerUrl }}
 {{- else -}}
-{{ printf "https://%s-%s.%s" (include "app.ozgcloudBezeichner" .) .Values.usermanagerName .Values.baseUrl }}
+{{ printf "https://%s-%s.%s" (include "app.ozgcloudBezeichner" .) .Values.usermanagerName (include "app.baseUrlDirect" .) }}
 {{- end -}}
 {{- end -}}
 
@@ -77,11 +81,15 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- end -}}
 
 {{- define "app.ozgcloudBezeichner" -}}
+{{- if (.Values.ozgcloud).bezeichner -}}
 {{ $length := len (.Values.ozgcloud).bezeichner }}
-{{- if ge 27 $length -}}
+{{- if lt 27 $length -}}
+{{ required (printf "Bezeichner %s ist zu lang (max. 27 Zeichen)" (.Values.ozgcloud).bezeichner) nil }}
+{{- else -}}
 {{- required "Bezeichner muss angegeben sein" (.Values.ozgcloud).bezeichner -}}
+{{- end -}}
 {{- else -}}
-{{ required (printf "Bezeichner %s ist zu lang (max. 27 Zeichen)" (.Values.ozgcloud).bezeichner) nil }}
+{{- required "Bezeichner muss angegeben sein" (.Values.ozgcloud).bezeichner -}}
 {{- end -}}
 {{- end -}}
 
@@ -112,7 +120,7 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- end -}}
 
 {{- define "app.ssoServerUrl" -}}
-{{- printf "%s" .Values.sso.serverUrl -}}
+{{- required "sso.serverUrl muss angegeben sein" (.Values.sso).serverUrl -}}
 {{- end -}}
 
 {{- define "app.baseUrl" -}}
diff --git a/src/main/helm/templates/keycloak-client-crd.yaml b/src/main/helm/templates/keycloak-client-crd.yaml
index fbcd6e5e36..2a2b9b48e7 100644
--- a/src/main/helm/templates/keycloak-client-crd.yaml
+++ b/src/main/helm/templates/keycloak-client-crd.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator -}}
-{{ range $client := .Values.sso.keycloak_clients }}
+{{ range $client := (.Values.sso).keycloak_clients }}
 ---
 {{- if $client.kopOperator }}
 apiVersion: api.kop-stack.de/v1
diff --git a/src/main/helm/templates/keycloak-crd.yaml b/src/main/helm/templates/keycloak-crd.yaml
index 71f21d0ee0..d1e686a4a9 100644
--- a/src/main/helm/templates/keycloak-crd.yaml
+++ b/src/main/helm/templates/keycloak-crd.yaml
@@ -5,6 +5,6 @@ metadata:
   name: {{ include "app.namespace" . }}-keycloak
   namespace: {{ include "app.namespace" . }}
 spec:
-  keep_after_delete: {{ .Values.sso.keep_after_delete | default false }}
+  keep_after_delete: {{ (.Values.sso).keep_after_delete | default false }}
   displayName: {{ include "app.ssoRealmDisplayName" . }}
 {{- end -}}
\ No newline at end of file
diff --git a/src/main/helm/templates/keycloak-group-crd.yaml b/src/main/helm/templates/keycloak-group-crd.yaml
index ce871eebb7..63900fb382 100644
--- a/src/main/helm/templates/keycloak-group-crd.yaml
+++ b/src/main/helm/templates/keycloak-group-crd.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator -}}
-{{ range $group := .Values.sso.keycloak_groups }}
+{{ range $group := (.Values.sso).keycloak_groups }}
 ---
 apiVersion: operator.ozgcloud.de/v1
 kind: OzgCloudKeycloakGroup
diff --git a/src/main/helm/templates/keycloak-user-crd.yaml b/src/main/helm/templates/keycloak-user-crd.yaml
index fd766a7174..3bc5c7ab01 100644
--- a/src/main/helm/templates/keycloak-user-crd.yaml
+++ b/src/main/helm/templates/keycloak-user-crd.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator -}}
-{{ range $user := concat (.Values.sso.api_users | default list) (.Values.sso.keycloak_users | default list) }}
+{{ range $user := concat ((.Values.sso).api_users | default list) ((.Values.sso).keycloak_users | default list) }}
 ---
 {{- if $user.kopOperator }}
 apiVersion: api.kop-stack.de/v1
diff --git a/src/main/helm/templates/network_policy.yaml b/src/main/helm/templates/network_policy.yaml
index 899c5330fa..e5dc19013b 100644
--- a/src/main/helm/templates/network_policy.yaml
+++ b/src/main/helm/templates/network_policy.yaml
@@ -29,7 +29,7 @@ spec:
   # public keycloak ip
   - to:
     - ipBlock:         
-        cidr:  {{ required "Keycloak public IP must be set" (.Values.networkPolicy).ssoPublicIp }}
+        cidr:  {{ required "networkPolicy.ssoPublicIp must be set" (.Values.networkPolicy).ssoPublicIp }}
   - to:
     - namespaceSelector:
         matchLabels:
diff --git a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role.yaml b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role.yaml
index f03b806e1f..7ab36585e0 100644
--- a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role.yaml
+++ b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator }}
-{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
+{{- if or ((.Values.sso).keycloak_users) ((.Values.sso).api_users) }}
 apiVersion: rbac.authorization.k8s.io/v1
 kind: Role
 metadata:
diff --git a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role_binding.yaml b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role_binding.yaml
index 832fd464fd..4a500addcb 100644
--- a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role_binding.yaml
+++ b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_read_role_binding.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator }}
-{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
+{{- if or ((.Values.sso).keycloak_users) ((.Values.sso).api_users) }}
 apiVersion: rbac.authorization.k8s.io/v1
 kind: RoleBinding
 metadata:
diff --git a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role.yaml b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role.yaml
index 58a135db88..db46b42cc3 100644
--- a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role.yaml
+++ b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator }}
-{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
+{{- if or ((.Values.sso).keycloak_users) ((.Values.sso).api_users) }}
 apiVersion: rbac.authorization.k8s.io/v1
 kind: Role
 metadata:
diff --git a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role_binding.yaml b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role_binding.yaml
index 8f8fecc682..a2fbdd01f0 100644
--- a/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role_binding.yaml
+++ b/src/main/helm/templates/ozgcloud_keycloak_operator_secrets_write_role_binding.yaml
@@ -1,5 +1,5 @@
 {{- if not (.Values.sso).disableOzgOperator }}
-{{- if or (.Values.sso.keycloak_users) (.Values.sso.api_users) }}
+{{- if or ((.Values.sso).keycloak_users) ((.Values.sso).api_users) }}
 apiVersion: rbac.authorization.k8s.io/v1
 kind: RoleBinding
 metadata:
diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml
index df1548effd..186bcf8b33 100644
--- a/src/main/helm/values.yaml
+++ b/src/main/helm/values.yaml
@@ -24,11 +24,6 @@
 
 cluster_env: ""
 
-baseUrl: dev.by.ozg-cloud.de
-
-sso:
-  serverUrl: https://sso.dev.by.ozg-cloud.de
-
 
 image:
   repo: docker.ozg-sh.de
diff --git a/src/test/linter-values.yaml b/src/test/helm-linter-values.yaml
similarity index 90%
rename from src/test/linter-values.yaml
rename to src/test/helm-linter-values.yaml
index 0c6bd2d5b0..cba36bc480 100644
--- a/src/test/linter-values.yaml
+++ b/src/test/helm-linter-values.yaml
@@ -22,6 +22,8 @@
 # unter der Lizenz sind dem Lizenztext zu entnehmen.
 #
 
+baseUrl: test.company.local
+
 ozgcloud:
   bundesland: sh
   bezeichner: helm
@@ -29,4 +31,7 @@ ozgcloud:
 
 networkPolicy:
   ssoPublicIp: 51.89.117.53/32
-  dnsServerNamespace: dummy-dns
\ No newline at end of file
+  dnsServerNamespace: dummy-dns
+
+sso:
+  serverUrl: https://sso.company.local
\ No newline at end of file
diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml
index e1f8d9eccc..b92eab55ef 100644
--- a/src/test/helm/deployment_bindings_test.yaml
+++ b/src/test/helm/deployment_bindings_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+  baseUrl: test.company.local
 tests:
   - it: should have volumes
     set: 
@@ -87,7 +95,9 @@ tests:
   - it: should have sso tls cert mount
     set: 
        usermanagerName: user-manager
-       sso.tlsCertName: sso-tls-cert
+       sso:
+        tlsCertName: sso-tls-cert
+        serverUrl: https://sso.company.local
     asserts:
       - contains:
           path: spec.template.spec.volumes
diff --git a/src/test/helm/deployment_defaults_affinity_test.yaml b/src/test/helm/deployment_defaults_affinity_test.yaml
index 54c1a8f89d..66ff5b228b 100644
--- a/src/test/helm/deployment_defaults_affinity_test.yaml
+++ b/src/test/helm/deployment_defaults_affinity_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+  baseUrl: test.company.local
 tests:
   - it: should work
     asserts:
diff --git a/src/test/helm/deployment_defaults_annotaion_test.yaml b/src/test/helm/deployment_defaults_annotaion_test.yaml
index 311f2d9b66..3ccc5a5f7d 100644
--- a/src/test/helm/deployment_defaults_annotaion_test.yaml
+++ b/src/test/helm/deployment_defaults_annotaion_test.yaml
@@ -28,13 +28,19 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/ingress.yaml
+set:
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  
 tests:
   - it: check ingress annotaions for nginx
     asserts:
       - isKind:
           of: Ingress
       - equal:
-          path: metadata.annotations.[cert-manager.io/cluster-issuer]
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
           value: letsencrypt-prod
       - isNull:
           path: spec.ingressClassName
diff --git a/src/test/helm/deployment_defaults_env_test.yaml b/src/test/helm/deployment_defaults_env_test.yaml
index 382b573901..5e9eb166a3 100644
--- a/src/test/helm/deployment_defaults_env_test.yaml
+++ b/src/test/helm/deployment_defaults_env_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: check default values
     set: 
@@ -65,7 +73,13 @@ tests:
     templates:
       - templates/deployment.yaml
     set:
-      ozgcloud.user_assistance.documentation.url: http://
+      ozgcloud:
+        user_assistance:
+          documentation:
+            url: http://
+        environment: test
+        bundesland: sh
+        bezeichner: helm
     asserts:
       - contains:
           path: spec.template.spec.containers[0].env
@@ -78,6 +92,9 @@ tests:
       - templates/deployment.yaml
     set:
       ozgcloud:
+        environment: test
+        bundesland: sh
+        bezeichner: helm
         vorgang:
           bescheid:
             - formEngineName: AFM
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index 4cef56cb17..635f86e602 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -30,18 +30,26 @@ templates:
   - templates/deployment.yaml
   - templates/service_monitor.yaml
   - templates/service.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: check default labels
     asserts:
       - equal:
-          path: metadata.labels.[app.kubernetes.io/instance]
+          path: metadata.labels["app.kubernetes.io/instance"]
           value: alfa
       - equal:
-          path: metadata.labels.[app.kubernetes.io/name]
+          path: metadata.labels["app.kubernetes.io/name"]
           value: alfa
       - equal:
-          path: metadata.labels.[app.kubernetes.io/part-of]
+          path: metadata.labels["app.kubernetes.io/part-of"]
           value: ozgcloud
       - equal:
-          path: metadata.labels.[app.kubernetes.io/namespace]
+          path: metadata.labels["app.kubernetes.io/namespace"]
           value: sh-helm-test
diff --git a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
index 94ba8b1e75..b159900bff 100644
--- a/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_health_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should work
     asserts:
diff --git a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
index 16f0109ff5..ace851c715 100644
--- a/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_securityContext_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: check default values
     asserts:
diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml
index 2fc8310882..9c62d0707f 100644
--- a/src/test/helm/deployment_defaults_spec_containers_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml
@@ -28,6 +28,17 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
+  image:
+    path: docker.ozg-sh.de/alfa
+    tag: snapshot-latest
 tests:
   - it: check for some standard values
     asserts:
diff --git a/src/test/helm/deployment_defaults_spec_test.yaml b/src/test/helm/deployment_defaults_spec_test.yaml
index bda0c0df14..96b6b4d8d4 100644
--- a/src/test/helm/deployment_defaults_spec_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_test.yaml
@@ -28,6 +28,15 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  replicaCount: 5
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should work
     asserts:
@@ -43,10 +52,10 @@ tests:
           path: spec.revisionHistoryLimit
           value: 10
       - equal:
-          path: spec.selector.matchLabels.[app.kubernetes.io/name]
+          path: spec.selector.matchLabels["app.kubernetes.io/name"]
           value: alfa
       - equal:
-          path: spec.selector.matchLabels.[app.kubernetes.io/namespace]
+          path: spec.selector.matchLabels["app.kubernetes.io/namespace"]
           value: sh-helm-test
       - equal:
           path: spec.strategy.rollingUpdate.maxSurge
diff --git a/src/test/helm/deployment_defaults_sso_test.yaml b/src/test/helm/deployment_defaults_sso_test.yaml
index 9c4c14df0e..9577a9a015 100644
--- a/src/test/helm/deployment_defaults_sso_test.yaml
+++ b/src/test/helm/deployment_defaults_sso_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: check default values
     asserts:
@@ -47,11 +55,14 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: keycloak_auth-server-url
-            value: https://sso.sh.ozg-cloud.de
+            value: https://sso.company.local
 
   - it: check realm with long namespace
     set:
-      ozgcloud.bezeichner: eins-zwei-drei
+      ozgcloud:
+        bezeichner: eins-zwei-drei
+        environment: dev
+        bundesland: sh
     asserts:
       - isKind:
           of: Deployment
@@ -59,12 +70,13 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: keycloak_realm
-            value: sh-eins-zwei-drei-test
+            value: sh-eins-zwei-drei-dev
 
   - it: check different client name
     set:
       sso:
         client_name: different-client
+        serverUrl: https://sso.company.local
     asserts:
       - isKind:
           of: Deployment
diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
index bd7726196a..3dadf673fe 100644
--- a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
+++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: check default values
     asserts:
@@ -43,5 +51,5 @@ tests:
           path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable
           value: ScheduleAnyway
       - equal:
-          path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels.[app.kubernetes.io/name]
+          path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"]
           value: alfa
\ No newline at end of file
diff --git a/src/test/helm/deployment_env_test.yaml b/src/test/helm/deployment_env_test.yaml
index 082d6b64ca..4846e3c79c 100644
--- a/src/test/helm/deployment_env_test.yaml
+++ b/src/test/helm/deployment_env_test.yaml
@@ -25,6 +25,14 @@
 suite: test environments
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: check customList
     template: deployment.yaml
diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml
index 517408b4e2..68dd217554 100644
--- a/src/test/helm/deployment_host_aliases_test.yaml
+++ b/src/test/helm/deployment_host_aliases_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should not set hostAliases
     asserts:
diff --git a/src/test/helm/deployment_imageTag_test.yaml b/src/test/helm/deployment_imageTag_test.yaml
index 50a7ad7f6a..24eb6cd05e 100644
--- a/src/test/helm/deployment_imageTag_test.yaml
+++ b/src/test/helm/deployment_imageTag_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should set the latest imageTag
     set:
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index 6e94263954..376a207a28 100644
--- a/src/test/helm/deployment_imagepull_secret_test.yaml
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should use default imagePull secret
     asserts:
diff --git a/src/test/helm/deployment_pluto_address_test.yaml b/src/test/helm/deployment_pluto_address_test.yaml
index 38eb0f989f..f29d2a1019 100644
--- a/src/test/helm/deployment_pluto_address_test.yaml
+++ b/src/test/helm/deployment_pluto_address_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should set the vorgang-manager name
     set:
diff --git a/src/test/helm/deployment_replicas_test.yaml b/src/test/helm/deployment_replicas_test.yaml
index 84c496ab99..a02796b0fe 100644
--- a/src/test/helm/deployment_replicas_test.yaml
+++ b/src/test/helm/deployment_replicas_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should set the replica count
     set:
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
index f47aed0e61..9ef0c9aa2b 100644
--- a/src/test/helm/deployment_resources_test.yaml
+++ b/src/test/helm/deployment_resources_test.yaml
@@ -27,6 +27,14 @@ release:
   name: alfa
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: test resources
     set:
diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml
index 2a6a0afc9b..934ef504d2 100644
--- a/src/test/helm/deployment_service_account_test.yaml
+++ b/src/test/helm/deployment_service_account_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should use service account with default name
     set:
diff --git a/src/test/helm/deployment_springProfile_test.yaml b/src/test/helm/deployment_springProfile_test.yaml
index 4e0548977f..511917490f 100644
--- a/src/test/helm/deployment_springProfile_test.yaml
+++ b/src/test/helm/deployment_springProfile_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:  
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should override the spring profiles
     set:
diff --git a/src/test/helm/deployment_usermanager_address_test.yaml b/src/test/helm/deployment_usermanager_address_test.yaml
index a1b0246dec..59bc6ef7de 100644
--- a/src/test/helm/deployment_usermanager_address_test.yaml
+++ b/src/test/helm/deployment_usermanager_address_test.yaml
@@ -28,6 +28,14 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
+set:
+  baseUrl: test.company.local
+  ozgcloud:
+    environment: test
+    bundesland: sh
+    bezeichner: helm
+  sso:
+    serverUrl: https://sso.company.local
 tests:
   - it: should build the usermanager url for test environment
     set:
@@ -37,7 +45,7 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: ozgcloud_user-manager_url
-            value: https://helm-my-test-usermanager-name.test.sh.ozg-cloud.de
+            value: https://helm-my-test-usermanager-name.test.company.local
   - it: should use usermanager url from values
     set:
       usermanagerUrl: http://test.domain.local
diff --git a/src/test/helm/image_pull_secret_test.yaml b/src/test/helm/image_pull_secret_test.yaml
index 6ea26d0703..170ae93b98 100644
--- a/src/test/helm/image_pull_secret_test.yaml
+++ b/src/test/helm/image_pull_secret_test.yaml
@@ -48,8 +48,8 @@ tests:
       - equal:
           path: metadata.namespace
           value: helm-test
-      - isNotEmpty:
-          path: data.[.dockerconfigjson]
+      - isNotNullOrEmpty:
+          path: data[".dockerconfigjson"]
 
   - it: should not create image pull secret
     set:
diff --git a/src/test/helm/ingress-nginx-tests.yaml b/src/test/helm/ingress-nginx-tests.yaml
index 6d092d18ef..6b0d88bfaa 100644
--- a/src/test/helm/ingress-nginx-tests.yaml
+++ b/src/test/helm/ingress-nginx-tests.yaml
@@ -28,6 +28,11 @@ release:
   namespace: sh-helm-test
 templates:
   - templates/ingress.yaml
+set:  
+  ozgcloud:
+    bundesland: by
+    bezeichner: helm
+    environment: test
 tests:
   - it: should create ingress tls
     asserts:
@@ -47,7 +52,7 @@ tests:
   - it: should use default letsencrypt-prod cluster-issuer
     asserts:
       - equal:
-          path: metadata.annotations.[cert-manager.io/cluster-issuer]
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
           value: letsencrypt-prod
 
   - it: should use letsencrypt-staging cluster-issuer
@@ -55,7 +60,7 @@ tests:
       ingress.use_staging_cert: true
     asserts:
       - equal:
-          path: metadata.annotations.[cert-manager.io/cluster-issuer]
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
           value: letsencrypt-staging
 
   - it: should use letsencrypt-prod cluster-issuer
@@ -63,12 +68,12 @@ tests:
       ingress.use_staging_cert: false
     asserts:
       - equal:
-          path: metadata.annotations.[cert-manager.io/cluster-issuer]
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
           value: letsencrypt-prod
   - it: should set proxy body size to 42m
     asserts:
       - equal:
-          path: metadata.annotations.[nginx.ingress.kubernetes.io/proxy-body-size]
+          path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-body-size"]
           value: 42m
   - it: should not set ingressClassName
     asserts:
diff --git a/src/test/helm/keycloak-client-crd-test.yaml b/src/test/helm/keycloak-client-crd-test.yaml
index 4902829d97..5b9300d1b6 100644
--- a/src/test/helm/keycloak-client-crd-test.yaml
+++ b/src/test/helm/keycloak-client-crd-test.yaml
@@ -28,6 +28,11 @@ release:
   namespace: by-helm-test
 templates:
   - templates/keycloak-client-crd.yaml
+set:
+  ozgcloud:
+    bundesland: by
+    bezeichner: helm
+    environment: test
 tests:
   - it: should contain header data
     set:
@@ -70,15 +75,11 @@ tests:
             kopOperator: true
     asserts:
       - equal:
-          path: metadata.annotations.[helm.sh/resource-policy]
+          path: metadata.annotations["helm.sh/resource-policy"]
           value: keep
   - it: should have default Values
     set:
       baseUrl: test.by.ozg-cloud.de
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
         keycloak_clients:
           - client_name: alfa
@@ -105,10 +106,6 @@ tests:
   - it: should override default redirect uris
     set:
       baseUrl: test.by.ozg-cloud.de
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
         keycloak_clients:
           - client_name: alfa
@@ -137,10 +134,6 @@ tests:
   - it: should contain additional redirect uris
     set:
       baseUrl: test.by.ozg-cloud.de
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
         keycloak_clients:
           - client_name: alfa
@@ -169,10 +162,6 @@ tests:
   - it: should contain client roles
     set:
       baseUrl: test.by.ozg-cloud.de
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
         keycloak_clients:
           - client_name: alfa
@@ -202,10 +191,6 @@ tests:
   - it: should map client protocol mapper
     set:
       baseUrl: test.by.ozg-cloud.de
-      ozgcloud:
-        bundesland: by
-        bezeichner: helm
-        environment: test
       sso:
         keycloak_clients:
           - client_name: alfa
diff --git a/src/test/helm/keycloak-crd-test.yaml b/src/test/helm/keycloak-crd-test.yaml
index 0c0e17061d..8010a45e07 100644
--- a/src/test/helm/keycloak-crd-test.yaml
+++ b/src/test/helm/keycloak-crd-test.yaml
@@ -28,6 +28,10 @@ release:
   namespace: by-helm-test
 templates:
   - templates/keycloak-crd.yaml
+set:
+  ozgcloud:
+    environment: test
+    bezeichner: helm
 tests:
   - it: should contain header data
     asserts:
diff --git a/src/test/helm/keycloak-user-crd-test.yaml b/src/test/helm/keycloak-user-crd-test.yaml
index 6749e412ec..0685f872b3 100644
--- a/src/test/helm/keycloak-user-crd-test.yaml
+++ b/src/test/helm/keycloak-user-crd-test.yaml
@@ -552,7 +552,7 @@ tests:
           path: spec.keycloak_user.username
           value: kop
       - equal:
-          path: metadata.annotations.[helm.sh/resource-policy]
+          path: metadata.annotations["helm.sh/resource-policy"]
           value: keep
 
   - it: should not create user cr if ozg operator is disabled
diff --git a/src/test/helm/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml
index 9bf96f7895..48ff2afe0c 100644
--- a/src/test/helm/network_policy_test.yaml
+++ b/src/test/helm/network_policy_test.yaml
@@ -28,6 +28,10 @@ release:
   namespace: by-helm-test
 templates:
   - templates/network_policy.yaml
+set:
+  networkPolicy:
+    dnsServerNamespace: kube-system
+    ssoPublicIp: 1.1.1.1/32
 tests:
   - it: should match apiVersion
     asserts:
@@ -48,6 +52,7 @@ tests:
     set:
       networkPolicy:
         dnsServerNamespace: kube-system
+        ssoPublicIp: 1.1.1.1/32
     asserts:
       - equal:
           path: spec
@@ -72,7 +77,7 @@ tests:
             # public keycloak ip
             - to:
               - ipBlock:         
-                  cidr: 51.89.117.53/32
+                  cidr: 1.1.1.1/32
             - to:
               - namespaceSelector:
                   matchLabels:
@@ -89,6 +94,8 @@ tests:
   - it: add ingress rule by values
     set:
       networkPolicy:
+        ssoPublicIp: 1.1.1.1
+        dnsServerNamespace: kube-system
         additionalIngressConfig:
         - podSelector: 
             matchLabels:
@@ -115,7 +122,9 @@ tests:
   - it: test network policy unset should be disabled
     set:
       networkPolicy:
+        ssoPublicIp: 1.1.1.1
         disabled: false
+        dnsServerNamespace: test-dns-server-namespace
     asserts:
       - hasDocuments:
           count: 1
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
index fcfb12b4b4..d5dd89a475 100644
--- a/src/test/helm/service_monitor_test.yaml
+++ b/src/test/helm/service_monitor_test.yaml
@@ -34,7 +34,7 @@ tests:
       - isKind:
           of: ServiceMonitor
       - equal:
-          path: metadata.labels.[component]
+          path: metadata.labels["component"]
           value: alfa-service-monitor
   - it: should have the metrics endpoint configured by default
     set:
@@ -64,13 +64,13 @@ tests:
   - it: selector should contain the component label with the value alfa-service
     asserts:
       - equal:
-          path: spec.selector.matchLabels.[component]
+          path: spec.selector.matchLabels["component"]
           value: alfa-service
   - it: selector should contain helm recommended labels name and namespace
     asserts:
       - equal:
-          path: spec.selector.matchLabels.[app.kubernetes.io/name]
+          path: spec.selector.matchLabels["app.kubernetes.io/name"]
           value: alfa
       - equal:
-          path: spec.selector.matchLabels.[app.kubernetes.io/namespace]
+          path: spec.selector.matchLabels["app.kubernetes.io/namespace"]
           value: sh-helm-test
diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml
index 5c32bce0f5..8baec4baff 100644
--- a/src/test/helm/service_test.yaml
+++ b/src/test/helm/service_test.yaml
@@ -34,7 +34,7 @@ tests:
       - isKind:
           of: Service
       - equal:
-          path: metadata.labels.[component]
+          path: metadata.labels["component"]
           value: alfa-service
   - it: should be of type ClusterIP
     asserts:
@@ -50,8 +50,8 @@ tests:
             port: 8080
             protocol: TCP
             targetPort: 8080
-        count: 1
-        any: true
+          count: 1
+          any: true
   - it: ports should contain the metrics port
     asserts:
       - contains:
@@ -60,19 +60,19 @@ tests:
             name: metrics
             port: 8081
             protocol: TCP
-        count: 1
-        any: true
+          count: 1
+          any: true
   - it: selector should contain the component label with the value alfa
     asserts:
       - equal:
-          path: spec.selector.[component]
+          path: spec.selector["component"]
           value: alfa
   - it: selector should contain helm recommended labels name and namespace
     asserts:
       - equal:
-          path: spec.selector.[app.kubernetes.io/name]
+          path: spec.selector["app.kubernetes.io/name"]
           value: alfa
       - equal:
-          path: spec.selector.[app.kubernetes.io/namespace]
+          path: spec.selector["app.kubernetes.io/namespace"]
           value: helm-test
   
\ No newline at end of file
diff --git a/src/test/unit-values.yaml b/src/test/unit-values.yaml
deleted file mode 100644
index 1e11128f1c..0000000000
--- a/src/test/unit-values.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-#
-# 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.
-#
-
-cluster_env: ""
-
-replicaCount: 5
-vorgangManagerName: vorgang-manager
-usermanagerName: my-test-usermanager-name
-
-ozgcloud:
-  bundesland: sh
-  bezeichner: helm
-  environment: test
-
-sso:
-  apiPassword: test1234
-  serverUrl: https://sso.sh.ozg-cloud.de
-
-baseUrl: test.sh.ozg-cloud.de
-
-image:
-  path: docker.ozg-sh.de/alfa
-  tag: snapshot-latest
-
-networkPolicy:
-  ssoPublicIp: 51.89.117.53/32
-  dnsServerNamespace: dummy-dns
\ No newline at end of file
-- 
GitLab