From fe0aebb6238e10f14452c627aab18e2d7410c213 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 15:49:21 +0100
Subject: [PATCH 1/7] Revert deleting of intelliform-helm charts

This partially reverts commit 3c92f888dedc0b42eabd8f90bf0d228073f5fdd1.
---
 Jenkinsfile                                   |  39 ++-
 pom.xml                                       |  12 +-
 run_helm_test.sh                              |  31 +++
 src/main/helm/Chart.yaml                      |  31 +++
 src/main/helm/README.md                       | 100 ++++++++
 src/main/helm/templates/NOTES.txt             |  24 ++
 src/main/helm/templates/_helpers.tpl          | 133 +++++++++++
 .../templates/bindings_type_configmap.yaml    |  32 +++
 src/main/helm/templates/deployment.yaml       | 193 +++++++++++++++
 src/main/helm/templates/ingress.yaml          |  67 ++++++
 src/main/helm/templates/network_policy.yaml   |  91 +++++++
 src/main/helm/templates/service.yaml          |  45 ++++
 src/main/helm/templates/service_account.yaml  |  31 +++
 src/main/helm/templates/service_monitor.yaml  |  43 ++++
 .../tests/test-ingress-connection.yaml        |  39 +++
 .../tests/test-service-connection.yaml        |  39 +++
 src/main/helm/values.yaml                     |  40 ++++
 src/test/helm-linter-values.yaml              |  33 +++
 src/test/helm/bindings_type_test.yaml         |  46 ++++
 src/test/helm/deployment_63_chars_test.yaml   |  56 +++++
 src/test/helm/deployment_bindings_test.yaml   |  75 ++++++
 ...yment_container_security_context_test.yaml |  89 +++++++
 ...yment_defaults_containers_health_test.yaml |  82 +++++++
 .../helm/deployment_defaults_labels_test.yaml |  49 ++++
 ...loyment_defaults_spec_containers_test.yaml |  75 ++++++
 ...faults_topologySpreadConstraints_test.yaml |  48 ++++
 .../helm/deployment_env_customList_test.yaml  |  72 ++++++
 .../helm/deployment_host_aliases_test.yaml    |  54 +++++
 .../deployment_imagepull_secret_test.yaml     |  44 ++++
 .../helm/deployment_liveness_probe_test.yaml  |  51 ++++
 ...ployment_pod_default_spec_values_test.yaml |  50 ++++
 src/test/helm/deployment_resources_test.yaml  |  61 +++++
 .../deployment_routing_strategy_env_test.yaml |  80 +++++++
 .../helm/deployment_routing_zufi_test.yaml    |  89 +++++++
 .../helm/deployment_service_account_test.yaml |  84 +++++++
 .../deployment_springProfile_env_test.yaml    |  50 ++++
 ...t_general_value_and_default_spec_test.yaml |  73 ++++++
 src/test/helm/ingress_create_or_not_test.yaml |  49 ++++
 src/test/helm/ingress_nginx_test.yaml         |  68 ++++++
 src/test/helm/ingress_test.yaml               | 147 ++++++++++++
 src/test/helm/network_policy_test.yaml        | 225 ++++++++++++++++++
 src/test/helm/realm_name_length_test.yaml     |  41 ++++
 src/test/helm/service_account_test.yaml       | 108 +++++++++
 src/test/helm/service_monitor_test.yaml       |  96 ++++++++
 src/test/helm/service_test.yaml               | 100 ++++++++
 45 files changed, 3069 insertions(+), 16 deletions(-)
 create mode 100755 run_helm_test.sh
 create mode 100644 src/main/helm/Chart.yaml
 create mode 100644 src/main/helm/README.md
 create mode 100644 src/main/helm/templates/NOTES.txt
 create mode 100644 src/main/helm/templates/_helpers.tpl
 create mode 100644 src/main/helm/templates/bindings_type_configmap.yaml
 create mode 100644 src/main/helm/templates/deployment.yaml
 create mode 100644 src/main/helm/templates/ingress.yaml
 create mode 100644 src/main/helm/templates/network_policy.yaml
 create mode 100644 src/main/helm/templates/service.yaml
 create mode 100644 src/main/helm/templates/service_account.yaml
 create mode 100644 src/main/helm/templates/service_monitor.yaml
 create mode 100644 src/main/helm/templates/tests/test-ingress-connection.yaml
 create mode 100644 src/main/helm/templates/tests/test-service-connection.yaml
 create mode 100644 src/main/helm/values.yaml
 create mode 100644 src/test/helm-linter-values.yaml
 create mode 100644 src/test/helm/bindings_type_test.yaml
 create mode 100644 src/test/helm/deployment_63_chars_test.yaml
 create mode 100644 src/test/helm/deployment_bindings_test.yaml
 create mode 100644 src/test/helm/deployment_container_security_context_test.yaml
 create mode 100644 src/test/helm/deployment_defaults_containers_health_test.yaml
 create mode 100644 src/test/helm/deployment_defaults_labels_test.yaml
 create mode 100644 src/test/helm/deployment_defaults_spec_containers_test.yaml
 create mode 100644 src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
 create mode 100644 src/test/helm/deployment_env_customList_test.yaml
 create mode 100644 src/test/helm/deployment_host_aliases_test.yaml
 create mode 100644 src/test/helm/deployment_imagepull_secret_test.yaml
 create mode 100644 src/test/helm/deployment_liveness_probe_test.yaml
 create mode 100644 src/test/helm/deployment_pod_default_spec_values_test.yaml
 create mode 100644 src/test/helm/deployment_resources_test.yaml
 create mode 100644 src/test/helm/deployment_routing_strategy_env_test.yaml
 create mode 100644 src/test/helm/deployment_routing_zufi_test.yaml
 create mode 100644 src/test/helm/deployment_service_account_test.yaml
 create mode 100644 src/test/helm/deployment_springProfile_env_test.yaml
 create mode 100644 src/test/helm/deyploment_general_value_and_default_spec_test.yaml
 create mode 100644 src/test/helm/ingress_create_or_not_test.yaml
 create mode 100644 src/test/helm/ingress_nginx_test.yaml
 create mode 100644 src/test/helm/ingress_test.yaml
 create mode 100644 src/test/helm/network_policy_test.yaml
 create mode 100644 src/test/helm/realm_name_length_test.yaml
 create mode 100644 src/test/helm/service_account_test.yaml
 create mode 100644 src/test/helm/service_monitor_test.yaml
 create mode 100644 src/test/helm/service_test.yaml

diff --git a/Jenkinsfile b/Jenkinsfile
index 8779b9c4f..eba345c98 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -68,7 +68,7 @@ pipeline {
 
                     if ( !isSameVersion([commonVersion, routerVersion, formCycleAdapterVersion, enterpriseAdapterVersion], rootVersion)) {
                         error("Versionen sind nicht identisch")
-                    }                    
+                    }
                 }
             }
         }
@@ -88,10 +88,10 @@ pipeline {
                 }
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh "mvn -s $MAVEN_SETTINGS versions:set -DnewVersion=${JAR_TAG} -DprocessAllModules=true"
-                    
+
                 }
           }
-        }   
+        }
         stage('Build Eingang-Adapter') {
             steps {
                 script {
@@ -100,12 +100,12 @@ pipeline {
                 configFileProvider([configFile(fileId: 'maven-settings', variable: 'MAVEN_SETTINGS')]) {
                     sh 'mvn --version'
                     sh 'mvn -s $MAVEN_SETTINGS -P ci-build clean install -Dmaven.wagon.http.retryHandler.count=3'
-                        
+
                     script {
                       	try {
 	                        if (env.BRANCH_NAME == 'main') {
 		                        withSonarQubeEnv('sonarqube-ozg-sh'){
-		        					sh 'mvn -s $MAVEN_SETTINGS sonar:sonar'	                                
+		        					sh 'mvn -s $MAVEN_SETTINGS sonar:sonar'
 		                        }
 		                    }
 		                } catch (Exception e) {
@@ -154,6 +154,23 @@ pipeline {
             }
         }
 
+        stage('Test, build and deploy Intelliform-Adapter Helm Chart') {
+            steps {
+                script {
+                    FAILED_STAGE=env.STAGE_NAME
+                    HELM_CHART_VERSION = buildVersionName()
+
+                    sh "./run_helm_test.sh"
+
+                    dir('src/main/helm') {
+                        sh "helm package --version=${HELM_CHART_VERSION} ."
+
+                        deployHelmChart("Intelliform-Adapter", HELM_CHART_VERSION)
+                    }
+                }
+            }
+        }
+
         stage('Trigger Dev rollout') {
             when {
                 branch 'main'
@@ -217,7 +234,7 @@ pipeline {
     }
 }
 
-Void deployHelmChart(String helmChartName, String helmChartVersion) {       
+Void deployHelmChart(String helmChartName, String helmChartVersion) {
     withCredentials([usernamePassword(credentialsId: 'jenkins-nexus-login', usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]){
         if (env.BRANCH_NAME == 'release') {
             result = sh script: '''curl -u $USERNAME:$PASSWORD https://nexus.ozg-sh.de/service/rest/v1/components?repository=ozg-base-apps -F file=@'''+helmChartName+'''-'''+helmChartVersion+'''.tgz''', returnStdout: true
@@ -256,7 +273,7 @@ Void sendFailureMessage() {
                     "body":"Eingang-Manager: Build Failed. Stage: ${FAILED_STAGE} Build-ID: ${env.BUILD_NUMBER} Link: ${JENKINS_URL}", \
                     "format": "org.matrix.custom.html", \
                     "formatted_body":"Eingang-Manager: Build Failed. Stage: ${FAILED_STAGE} Build-ID: <a href='${JENKINS_URL}'>${env.BUILD_NUMBER}</a>"}"""
-       
+
     if (env.BRANCH_NAME == 'main') {
         room = "!GjqhmouBtnDbwUkAjx:matrix.ozg-sh.de"
     }
@@ -292,7 +309,7 @@ Void setNewFormcycleAdapterVersion(String environment) {
         envVersions.formcycle_adapter.helm.version = HELM_CHART_VERSION
 
         writeYaml file: envFile, data: envVersions, overwrite: true
-    }    
+    }
 }
 
 Void setNewEnterpriseAdapterVersion(String environment) {
@@ -304,7 +321,7 @@ Void setNewEnterpriseAdapterVersion(String environment) {
         envVersions.enterprise_adapter.helm.version = HELM_CHART_VERSION
 
         writeYaml file: envFile, data: envVersions, overwrite: true
-    }    
+    }
 }
 
 Void pushNewDevVersion() {
@@ -320,8 +337,8 @@ Void pushNewGitopsVersion(String environment) {
         if (!hasAdapterValuesFileChanged(environment)) {
             return
         }
-        
-        withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {            
+
+        withCredentials([usernamePassword(credentialsId: 'jenkins-gitea-access-token', passwordVariable: 'TOKEN', usernameVariable: 'USER')]) {
             sh "git add ${environment}/application/values/*-adapter-values.yaml"
 
             sh "git commit -m 'jenkins rollout ${environment} eingang-manager version ${IMAGE_TAG}'"
diff --git a/pom.xml b/pom.xml
index 700589324..b5ba996e2 100644
--- a/pom.xml
+++ b/pom.xml
@@ -24,7 +24,9 @@
     unter der Lizenz sind dem Lizenztext zu entnehmen.
 
 -->
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
 
 	<modelVersion>4.0.0</modelVersion>
 
@@ -32,7 +34,7 @@
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-parent</artifactId>
 		<version>4.9.0</version>
-		<relativePath/> <!-- lookup parent from repository -->
+		<relativePath /> <!-- lookup parent from repository -->
 	</parent>
 
 	<groupId>de.ozgcloud.eingang</groupId>
@@ -48,8 +50,8 @@
 		<module>semantik-adapter</module>
 		<module>formcycle-adapter</module>
 		<module>enterprise-adapter</module>
-        <module>fim-adapter</module>
-    </modules>
+		<module>fim-adapter</module>
+	</modules>
 
 	<properties>
 		<vorgang-manager.version>2.10.0</vorgang-manager.version>
@@ -205,4 +207,4 @@
 		</snapshotRepository>
 	</distributionManagement>
 
-</project>
+</project>
\ No newline at end of file
diff --git a/run_helm_test.sh b/run_helm_test.sh
new file mode 100755
index 000000000..8f4005a2c
--- /dev/null
+++ b/run_helm_test.sh
@@ -0,0 +1,31 @@
+#!/bin/sh
+#
+# Copyright (C) 2023 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.
+#
+
+
+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' .
\ No newline at end of file
diff --git a/src/main/helm/Chart.yaml b/src/main/helm/Chart.yaml
new file mode 100644
index 000000000..2b05d0cc4
--- /dev/null
+++ b/src/main/helm/Chart.yaml
@@ -0,0 +1,31 @@
+#
+# 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.
+#
+
+apiVersion: v1
+appVersion: "1.1"
+description: A Helm chart for Intelliform Adapter
+name: Intelliform-Adapter
+version: 0.0.0-MANAGED-BY-JENKINS
+icon: https://simpleicons.org/icons/helm.svg
+
diff --git a/src/main/helm/README.md b/src/main/helm/README.md
new file mode 100644
index 000000000..67032f537
--- /dev/null
+++ b/src/main/helm/README.md
@@ -0,0 +1,100 @@
+# Intelliform Adapter
+
+Adapter zum empfangen von Formulardaten von einem IntellForm basierten Formularserver, zum Beispiel iAFM (integriertes Antrags- und Formularmanagement).
+
+## Routingkonfiguration
+
+### Vorgang-Manager Instanzen
+
+Für alle Vorgang-Manager-Instanzen, die von dem Adapter erreichbar sein sollen, muss in das _Environment_ ein Eintrag mit dem GRPC-Service ergänzt werden:
+
+```yaml
+grpc.client.vorgang-manager-*vorgang-manager-name*.address:*url und port*
+grpc.client.vorgang-manager-*vorgang-manager-name*.negotiationType: PLAINTEXT
+```
+
+### Fallback Strategy
+
+Die Fallback Stratey steuert wie mit Eingängen umgegangen werden soll, für die keine passende Vorgang-Manager-Instanze gefunden werden konnte.
+
+Folgende Optionen stehen zur Verfügung:
+
+- **DENY** der Antrag wird mit einer Fehlermeldung abgelehnt. Dies funktioniert nur, solange die Abarbeitung synchron erfolgt.
+
+- **FUNDSTELLE** der Antrag wird an eine zentrale Fundstelle weitergeleitet. Dafür muss der Name der Vorgang-Manager-Instanze, die als Fundstelle fungiert, eingetragen werden.
+
+### Routing Strategy
+
+Die Routing Strategy steuert wie das Routing konfiguriert wird und wieviele Vorgang-Manager-Instanzen berücksichtigt werden können.
+
+Folgende Optionen stehen zur Verfügung:
+
+- **MULTI** es kann an beliebig viele Vorgang-Manager-Instanzen geroutet werden. Dafür muss in der Environment ein Mapping der Organisationseinheit-Id auf den Namen einer Vorgang-Manager-Instanz konfiguriert werden.
+
+```yaml
+ozgcloud.adapter.organisationseinheiten.*id*: *vorgang-manager-name*
+```
+
+- **SINGLE** es wird immer nur an eine Vorgang-Manager-Instanze geroutet, der Name der Instanz ist im Feld 'Vorgang-Manager Name' anzugeben.
+
+### Beispielkonfiguration
+
+```yaml
+env:
+  springProfiles: "oc, dev"
+  grpc:
+    - name: grpc_client_vorgang-manager-test_address
+      value: "vorgang-manager.test:9090"
+    - name: grpc_client_vorgang-manager-test_negotiationType
+      value: PLAINTEXT
+    - name: ozgcloud.adapter.organisationseinheiten.1357913579
+      value: test
+image:
+  tag: snapshot-latest
+imageCredentials:
+  email: webmaster@ozg-sh.de
+  password:  
+  registry: docker.ozg-sh.de
+  username: ozgcloud
+ingress:
+  host: kiel-afm.dev.by.ozg-cloud.de
+replicaCount: 2
+resources:
+  limits:
+    cpu: 1
+    memory: 1200Mi
+  requests:
+    cpu: 100m
+    memory: 250Mi
+global:
+  cattle:
+    clusterId: c-8g78g
+    clusterName: ozg-dev
+    systemDefaultRegistry: ""
+  systemDefaultRegistry: ""
+routing:
+  fallbackStrategy: FUNDSTELLE
+  fundstelleVorgangManagerName: kiel
+  routingStrategy: MULTI
+  targetVorgangManagerName: kiel
+```
+
+### Benutzung beliebiger environment Werte
+
+In jedem der Projekte kann man beliebige weitere environments setzen. Dazu muss man in der jeweiligen values.yaml unter env.customList ein name value Paar setzen:
+
+```yaml
+env:
+  customList:
+    - name: Dinge
+      value: true
+    - name: ...
+      value: ...
+```
+
+```yaml
+env:
+  customList:
+    key_1: value_1
+    key_2: value_2
+```
\ No newline at end of file
diff --git a/src/main/helm/templates/NOTES.txt b/src/main/helm/templates/NOTES.txt
new file mode 100644
index 000000000..0fa4f7107
--- /dev/null
+++ b/src/main/helm/templates/NOTES.txt
@@ -0,0 +1,24 @@
+====
+    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.
+====
+
diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
new file mode 100644
index 000000000..5578089ba
--- /dev/null
+++ b/src/main/helm/templates/_helpers.tpl
@@ -0,0 +1,133 @@
+#
+# 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.
+#
+
+{{/* vim: set filetype=mustache: */}}
+
+{{/* error check 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec) */}}
+{{/* Namespace */}}
+{{- define "app.namespace" -}}
+{{- if gt (len (.Release.Namespace)) 63 -}}
+{{- fail (printf ".Release.Namespace %s ist zu lang (max. 63 Zeichen)" .Release.Namespace) -}}
+{{- end -}}
+{{ printf "%s" .Release.Namespace }}
+{{- end -}}
+
+{{/* Chart: Name + Version */}}
+{{- define "app.chart" -}}
+{{- if gt (len (printf "%s-%s" .Chart.Name .Chart.Version)) 63 -}}
+{{- fail (printf ".Chart.Name-.Chart.Version %s-%s ist zu lang (max. 63 Zeichen)" .Chart.Name .Chart.Version) -}}
+{{- end -}}
+{{ printf "%s-%s" .Chart.Name .Chart.Version }}
+{{- end -}}
+
+{{/* Managed-by -> On Helm, this value is always Helm */}}
+{{- define "app.managedBy" -}}
+{{- if gt (len (.Release.Service)) 63 -}}
+{{- fail (printf ".Release.Service %s ist zu lang (max. 63 Zeichen)" .Release.Service) -}}
+{{- end -}}
+{{ printf "%s" .Release.Service }}
+{{- end -}}
+
+{{/* Default Labels: Helm recommended best-practice labels https://helm.sh/docs/chart_best_practices/labels/ */}}
+{{- define "app.defaultLabels" }}
+app.kubernetes.io/instance: afm-adapter
+app.kubernetes.io/managed-by: {{ include "app.managedBy" . }}
+app.kubernetes.io/name: {{ .Release.Name }}
+app.kubernetes.io/part-of: ozgcloud
+app.kubernetes.io/version: {{ .Chart.Version }}
+app.kubernetes.io/namespace: {{ include "app.namespace" . }}
+helm.sh/chart: {{ include "app.chart" . }}
+ozg-component: eingangsadapter
+{{- end -}}
+
+{{- define "app.matchLabels" }}
+app.kubernetes.io/name: {{ .Release.Name }}
+app.kubernetes.io/namespace: {{ include "app.namespace" . }}
+{{- end -}}
+
+
+{{- define "app.envSpringProfiles" }}
+{{- if (.Values.env).overrideSpringProfiles -}}
+{{ printf "%s" (.Values.env).overrideSpringProfiles }}
+{{- else -}}
+{{ printf "oc, %s" (include "app.ozgcloudEnvironment" . ) }}
+{{- end -}}
+{{- end -}}
+
+{{- define "app.ozgcloudEnvironment" -}}
+{{- required "Environment muss angegeben sein" (.Values.ozgcloud).environment -}}
+{{- end -}}
+
+{{- define "app.ozgcloudBezeichner" -}}
+{{ $length := len (.Values.ozgcloud).bezeichner }}
+{{- if ge 46 $length -}}
+{{ (.Values.ozgcloud).bezeichner }}
+{{- else -}}
+{{ required (printf "Bezeichner %s ist zu lang (max. 46 Zeichen)" (.Values.ozgcloud).bezeichner) nil }}
+{{- end -}}
+{{- end -}}
+
+{{- define "app.ingress.host" }}
+{{- if (.Values.ingress).adapterBezeichner }}
+{{- printf "%s-%s.%s" (include "app.ozgcloudBezeichner" .) .Values.ingress.adapterBezeichner .Values.baseUrl }}
+{{- else if eq (.Values.image).name "formsolutions-adapter" }}
+{{- printf "%s-fs.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
+{{- else if eq (.Values.image).name "formcycle-adapter" }}
+{{- printf "%s-formcycle.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
+{{- else }}
+{{- printf "%s-afm.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
+{{- end }}
+{{- end -}}
+
+{{- define "app.serviceAccountName" -}}
+{{- if (.Values.serviceAccount).name }}
+{{- printf "%s" .Values.serviceAccount.name }}
+{{- else if eq (.Values.image).name "intelliform-adapter" }}
+{{- printf "afm-adapter-service-account" }}
+{{- else if eq (.Values.image).name "formsolutions-adapter" }}
+{{- printf "fs-adapter-service-account" }}
+{{- else if eq (.Values.image).name "formcycle-adapter" }}
+{{- printf "formcycle-adapter-service-account" }}
+{{- else if eq (.Values.image).name "enterprise-adapter" }}
+{{- printf "enterprise-adapter-service-account" }}
+{{- end }}
+{{- end -}}
+
+{{- define "app.getCustomList" -}}
+{{- with (.Values.env).customList -}}
+{{- if kindIs "map" . -}}
+{{ include "app.dictToList" . }}
+{{- else if kindIs "slice" . -}}
+{{ . | toYaml }}
+{{- end -}}
+{{- end -}}
+{{- end -}}
+
+{{- define "app.dictToList" -}}
+{{- $customList := list -}}
+{{- range $key, $value := . -}}
+{{- $customList = append $customList (dict "name" $key "value" $value) }}
+{{- end -}}
+{{- $customList | toYaml -}}
+{{- end -}}
\ No newline at end of file
diff --git a/src/main/helm/templates/bindings_type_configmap.yaml b/src/main/helm/templates/bindings_type_configmap.yaml
new file mode 100644
index 000000000..d1b873e06
--- /dev/null
+++ b/src/main/helm/templates/bindings_type_configmap.yaml
@@ -0,0 +1,32 @@
+#
+# Copyright (C) 2024 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.
+#
+
+apiVersion: v1
+kind: ConfigMap
+metadata:
+  name: {{ .Release.Name }}-bindings-type
+  namespace: {{ include "app.namespace" . }}
+data:
+  type: |
+    ca-certificates
\ No newline at end of file
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
new file mode 100644
index 000000000..b59bb1cc4
--- /dev/null
+++ b/src/main/helm/templates/deployment.yaml
@@ -0,0 +1,193 @@
+#
+# 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.
+#
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ .Release.Name }}
+  namespace: {{ include "app.namespace" . }}
+  labels:
+    {{- include "app.defaultLabels" . | indent 4 }}
+spec:
+  progressDeadlineSeconds: 600
+  replicas: {{ .Values.replicaCount }}
+  revisionHistoryLimit: 10
+  selector:
+    matchLabels:
+      {{- include "app.matchLabels" . | indent 6 }}
+  strategy:
+    rollingUpdate:
+      maxSurge: 1
+      maxUnavailable: 0
+    type: RollingUpdate
+  template:
+    metadata:
+      labels:
+        {{- include "app.defaultLabels" . | indent 8 }}
+        component: afm-adapter
+    spec:
+      {{- if (.Values.serviceAccount).create }}
+      serviceAccountName: {{ include "app.serviceAccountName" . }}
+      {{- end }}
+      topologySpreadConstraints:
+      - maxSkew: 1
+        topologyKey: kubernetes.io/hostname
+        whenUnsatisfiable: DoNotSchedule
+        labelSelector:
+          matchLabels:
+            app.kubernetes.io/name: {{ .Release.Name }}
+      containers:
+      - env:
+        - name: SERVICE_BINDING_ROOT
+          value: "/bindings"
+        {{- range (.Values.env).grpc }}
+        - name: {{ .name }} 
+          value: {{ .value }}
+        {{- end }}
+        - name: spring_profiles_active
+          value: {{ include "app.envSpringProfiles" . }}
+        - name: ozgcloud_adapter_fallbackStrategy
+          value: {{ (.Values.routing).fallbackStrategy | default "DENY"}}
+        {{- if (.Values.routing).fundstelleVorgangManagerName}}
+        - name: ozgcloud_adapter_fundstelleVorgangManagerName
+          value: {{ .Values.routing.fundstelleVorgangManagerName }}
+        {{- end }}
+        - name: ozgcloud_adapter_routingStrategy
+          value: {{ (.Values.routing).routingStrategy | default "SINGLE"}}
+        {{- if (.Values.routing).targetVorgangManagerName }}
+        - name: ozgcloud_adapter_targetVorgangManagerName
+          value: {{ (.Values.routing).targetVorgangManagerName}}
+        - name: grpc_client_vorgang-manager-{{ (.Values.routing).targetVorgangManagerName}}_address
+          value: 'dns:///vorgang-manager.{{ coalesce (.Values.routing).targetNamespace .Release.Namespace }}:9090'
+        - name: grpc_client_vorgang-manager-{{ (.Values.routing).targetVorgangManagerName}}_negotiationType
+          value: {{ (.Values.routing).negotiationType | default "TLS" }}
+        {{- end }}
+        {{- if eq (.Values.routing).routingStrategy "ZUFI" }}
+        - name: grpc_client_zufi-manager_address
+          value: {{ required "routing.zufiManager.address must be set when routingStrategy=ZUFI" ((.Values.routing).zufiManager).address | quote }}
+        - name: grpc_client_zufi-manager_negotiationType
+          value: {{ ((.Values.routing).zufiManager).negotiationType | default "PLAINTEXT" }}
+        {{- end }}
+
+        {{- with include "app.getCustomList" . }}
+{{ . | indent 8 }}
+        {{- end }}
+        image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}"
+        imagePullPolicy: Always
+        name: intelliform-adapter
+        ports:
+        - containerPort: 8080
+          name: 8080tcp1
+          protocol: TCP
+        - containerPort: 8081
+          name: metrics
+          protocol: TCP
+        readinessProbe:
+          failureThreshold: 3
+          httpGet:
+            path: /actuator/health/readiness
+            port: 8081
+            scheme: HTTP
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 3
+        startupProbe:
+          failureThreshold: 10
+          httpGet:
+            path: /actuator/health/readiness
+            port: 8081
+            scheme: HTTP
+          initialDelaySeconds: 30
+          periodSeconds: 5
+          successThreshold: 1
+          timeoutSeconds: 5
+        {{- if .Values.enableLivenessProbe }}
+        livenessProbe:
+          failureThreshold: 3
+          httpGet:
+            path: /actuator/health/liveness
+            port: 8081
+            scheme: HTTP
+          periodSeconds: 10
+          successThreshold: 1
+          timeoutSeconds: 3
+        {{- end }}
+        resources:
+        {{- with .Values.resources }}
+{{ toYaml . | indent 10 }}
+        {{- end }}
+        securityContext:
+          allowPrivilegeEscalation: false
+          privileged: false
+          readOnlyRootFilesystem: false
+          runAsNonRoot: true
+          {{- with (.Values.securityContext).runAsUser }}
+          runAsUser: {{ . }}
+          {{- end }}
+          {{- with (.Values.securityContext).runAsGroup }}
+          runAsGroup: {{ . }}
+          {{- end }}
+          {{- with (.Values.securityContext).capabilities }}
+          capabilities:
+{{ toYaml . | indent 12 }}
+          {{- end }}
+        stdin: true
+        terminationMessagePath: /dev/termination-log
+        terminationMessagePolicy: File
+        tty: true
+        volumeMounts:
+          - name: temp-dir
+            mountPath: "/tmp"
+          - name: namespace-ca-cert
+            mountPath: "/bindings/namespace-certificate"
+            readOnly: true
+      volumes:
+        - name: temp-dir
+          emptyDir: {}
+        - name: namespace-ca-cert
+          projected:
+            sources:
+            - secret:
+                name: {{ include "app.namespace" . }}-ca-cert
+                optional: true
+                items:
+                  - key: ca.crt
+                    path: ca.crt
+            - configMap:
+                name: {{ .Release.Name }}-bindings-type
+      dnsConfig: {}
+      dnsPolicy: ClusterFirst
+      imagePullSecrets:
+      - name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }}
+      restartPolicy: Always
+      {{- with .Values.hostAliases }}
+      hostAliases:
+{{ toYaml . | indent 8 }}
+      {{- end }}
+      schedulerName: default-scheduler
+      {{- with .Values.podSecurityContext }}
+      securityContext:
+{{ toYaml . | indent 8 }}
+      {{- end }}
+      terminationGracePeriodSeconds: 30
\ No newline at end of file
diff --git a/src/main/helm/templates/ingress.yaml b/src/main/helm/templates/ingress.yaml
new file mode 100644
index 000000000..fa2ba46fe
--- /dev/null
+++ b/src/main/helm/templates/ingress.yaml
@@ -0,0 +1,67 @@
+#
+# 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.
+#
+
+{{- if (.Values.ingress).enabled }}
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+  annotations:
+    {{- with (.Values.ingress).annotations }}
+{{ toYaml . | indent 4 }}
+    {{- end }}
+    {{- if not (.Values.ingress).disableDefaultCertManager }}
+    {{- if (.Values.ingress).use_staging_cert }}
+    cert-manager.io/cluster-issuer: letsencrypt-staging
+    {{- else }}
+    cert-manager.io/cluster-issuer: letsencrypt-prod
+    {{- end }}
+    {{- end }}
+  name: {{ .Release.Name }}
+  namespace: {{ include "app.namespace" . }}
+spec:
+  {{- if and (.Values.ingress).className }}
+  ingressClassName: {{ .Values.ingress.className }}
+  {{- end }}
+  rules:
+    - http:
+        paths:
+          - backend:
+              service:
+                port:
+                  number: 8080
+                name: {{ .Release.Name }}
+            path: ''
+            pathType: ImplementationSpecific
+      host: {{ include "app.ingress.host" . }}
+  tls:
+    - hosts:
+      - {{ include "app.ingress.host" . }}
+      {{- if not (.Values.ingress).skipTlsSecret -}}
+      {{- if (.Values.ingress).tlsSecretName }}
+      secretName: {{ (.Values.ingress).tlsSecretName }}
+      {{- else }}
+      secretName: {{ .Values.ozgcloud.bezeichner }}-{{ .Release.Name }}-tls
+      {{- end }}
+      {{- end }}
+{{- end -}}
\ No newline at end of file
diff --git a/src/main/helm/templates/network_policy.yaml b/src/main/helm/templates/network_policy.yaml
new file mode 100644
index 000000000..17f7bc782
--- /dev/null
+++ b/src/main/helm/templates/network_policy.yaml
@@ -0,0 +1,91 @@
+#
+# Copyright (C) 2023 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.
+#
+
+{{- if not (.Values.networkPolicy).disabled }} 
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: network-policy-{{ .Release.Name}}
+  namespace: {{ .Release.Namespace }} 
+spec:
+  podSelector:
+    matchLabels:
+      ozg-component: eingangsadapter
+  policyTypes:
+    - Ingress
+    - Egress
+  ingress:
+  - ports:
+    - port: 8080
+  - from:
+    - namespaceSelector:
+        matchLabels:
+          name: {{ (.Values.networkPolicy).monitoringNamespace | default "openshift-user-workload-monitoring" }}
+    ports:
+    - protocol: TCP
+      port: 8081
+  egress:
+  - to:
+    - podSelector: 
+        matchLabels:
+          component: vorgang-manager
+    ports:
+      - port: 9090
+        protocol: TCP
+  - to:
+    - namespaceSelector:
+        matchLabels:
+          kubernetes.io/metadata.name: {{ required "networkPolicy.dnsServerNamespace must be set" (.Values.networkPolicy).dnsServerNamespace }}
+    ports:
+      - port: 53
+        protocol: UDP
+      - port: 53
+        protocol: TCP
+      - port: 5353
+        protocol: UDP
+      - port: 5353
+        protocol: TCP
+
+{{- if eq (.Values.routing).routingStrategy "ZUFI" }}
+  - to:
+    - namespaceSelector:
+        matchLabels:
+          kubernetes.io/metadata.name: {{ required "routing.zufiManager.namespace must be set if routingStrategy=ZUFI" ((.Values.routing).zufiManager).namespace }}
+      podSelector: 
+        matchLabels:
+          component: zufi-server
+    ports:
+      - port: 9090
+        protocol: TCP
+  - to:
+    - namespaceSelector: {}
+      podSelector: 
+        matchLabels:
+          component: vorgang-manager
+    ports:
+      - port: 9090
+        protocol: TCP
+{{- end }}
+
+{{- end }} 
\ No newline at end of file
diff --git a/src/main/helm/templates/service.yaml b/src/main/helm/templates/service.yaml
new file mode 100644
index 000000000..93574b29b
--- /dev/null
+++ b/src/main/helm/templates/service.yaml
@@ -0,0 +1,45 @@
+#
+# 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.
+#
+
+apiVersion: v1
+kind: Service
+metadata:
+  name: {{ .Release.Name }}
+  namespace: {{ include "app.namespace" . }}
+  labels:
+    {{- include "app.defaultLabels" . | indent 4 }}
+    component: afm-adapter-service
+spec:
+  ports:
+    - name: http
+      port: 8080
+      protocol: TCP
+      targetPort: 8080
+    - name: metrics
+      port: 8081
+      protocol: TCP
+  type: ClusterIP
+  selector:
+    {{- include "app.matchLabels" . | indent 4 }}
+    component: afm-adapter
\ No newline at end of file
diff --git a/src/main/helm/templates/service_account.yaml b/src/main/helm/templates/service_account.yaml
new file mode 100644
index 000000000..33de9e322
--- /dev/null
+++ b/src/main/helm/templates/service_account.yaml
@@ -0,0 +1,31 @@
+#
+# Copyright (C) 2023 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.
+#
+
+{{- if (.Values.serviceAccount).create }}
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: {{ include "app.serviceAccountName" . }}
+  namespace: {{ include "app.namespace" . }}
+{{- end }}
\ No newline at end of file
diff --git a/src/main/helm/templates/service_monitor.yaml b/src/main/helm/templates/service_monitor.yaml
new file mode 100644
index 000000000..053a25810
--- /dev/null
+++ b/src/main/helm/templates/service_monitor.yaml
@@ -0,0 +1,43 @@
+#
+# 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.
+#
+
+apiVersion: monitoring.coreos.com/v1
+kind: ServiceMonitor
+metadata:
+  name: {{ .Release.Name }}
+  namespace: {{ include "app.namespace" . }}
+  labels:
+    {{- include "app.defaultLabels" . | indent 4 }}
+    component: afm-adapter-service-monitor
+spec:
+  endpoints:
+  - port: metrics
+    path: /actuator/prometheus
+  namespaceSelector:
+    matchNames:
+    - {{ include "app.namespace" . }}
+  selector:
+    matchLabels:
+      {{- include "app.matchLabels" . | indent 6 }}
+      component: afm-adapter-service
\ No newline at end of file
diff --git a/src/main/helm/templates/tests/test-ingress-connection.yaml b/src/main/helm/templates/tests/test-ingress-connection.yaml
new file mode 100644
index 000000000..6d33a4e54
--- /dev/null
+++ b/src/main/helm/templates/tests/test-ingress-connection.yaml
@@ -0,0 +1,39 @@
+#
+# 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.
+#
+
+apiVersion: v1
+kind: Pod
+metadata:
+  name: "{{ .Release.Name }}-test-ingress"
+  labels:
+    {{- include "app.matchLabels" . | nindent 4 }}
+  annotations:
+    "helm.sh/hook": test
+spec:
+  containers:
+    - name: wget
+      image: busybox
+      command: ['wget']
+      args: ['https://{{ .Values.ingress.host }}/ws/intelliform_formDatas.wsdl']
+  restartPolicy: Never
diff --git a/src/main/helm/templates/tests/test-service-connection.yaml b/src/main/helm/templates/tests/test-service-connection.yaml
new file mode 100644
index 000000000..62dda4f5e
--- /dev/null
+++ b/src/main/helm/templates/tests/test-service-connection.yaml
@@ -0,0 +1,39 @@
+#
+# 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.
+#
+
+apiVersion: v1
+kind: Pod
+metadata:
+  name: "{{ .Release.Name }}-test-connection"
+  labels:
+    {{- include "app.matchLabels" . | nindent 4 }}
+  annotations:
+    "helm.sh/hook": test
+spec:
+  containers:
+    - name: wget
+      image: busybox
+      command: ['wget']
+      args: ['{{ .Release.Name }}:8080/ws/intelliform_formDatas.wsdl']
+  restartPolicy: Never
diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml
new file mode 100644
index 000000000..118009532
--- /dev/null
+++ b/src/main/helm/values.yaml
@@ -0,0 +1,40 @@
+#
+# 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.
+#
+
+baseUrl: test.sh.ozg-cloud.de
+
+image:
+  repo: docker.ozg-sh.de
+  name: intelliform-adapter # [default: intelliform-adapter]
+  tag: latest # [default: latest]
+
+
+ingress:
+  enabled: true
+  # overrideHost: kiel-afm.dev.by.ozg-cloud.de
+
+routing:
+  targetVorgangManagerName: vorgang-manager
+#  fallbackStrategy: DENY
+#  routingStrategy: SINGLE
diff --git a/src/test/helm-linter-values.yaml b/src/test/helm-linter-values.yaml
new file mode 100644
index 000000000..64913958b
--- /dev/null
+++ b/src/test/helm-linter-values.yaml
@@ -0,0 +1,33 @@
+#
+# Copyright (C) 2023 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.
+#
+
+ozgcloud:
+  environment: test
+  bezeichner: helm
+  bundesland: sh
+
+networkPolicy:
+  dnsServerNamespace: test-dns-server-namespace
+
+imagePullSecret: image-pull-secret
\ No newline at end of file
diff --git a/src/test/helm/bindings_type_test.yaml b/src/test/helm/bindings_type_test.yaml
new file mode 100644
index 000000000..f55012888
--- /dev/null
+++ b/src/test/helm/bindings_type_test.yaml
@@ -0,0 +1,46 @@
+#
+# Copyright (C) 2024 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 bindings type configmap
+templates:
+  - templates/bindings_type_configmap.yaml
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+tests:
+  - it: xta bindings type
+    asserts:
+      - isKind:
+          of: ConfigMap
+      - isAPIVersion:
+          of: v1
+      - equal:
+          path: metadata.name
+          value: eingang-manager-bindings-type
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+      - equal:
+          path: data.type
+          value: ca-certificates
diff --git a/src/test/helm/deployment_63_chars_test.yaml b/src/test/helm/deployment_63_chars_test.yaml
new file mode 100644
index 000000000..417144739
--- /dev/null
+++ b/src/test/helm/deployment_63_chars_test.yaml
@@ -0,0 +1,56 @@
+#
+# Copyright (C) 2024 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 deyploment less than 63 chars
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+  
+chart:
+  name: eingang-manager
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+templates:
+  - templates/deployment.yaml
+
+tests:
+  - it: should fail on .Release.Namespace length longer than 63 characters
+    release:
+      namespace: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+    asserts:
+      - failedTemplate:
+          errorMessage: .Release.Namespace test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+  - it: should not fail on .Release.Namespace length less than 63 characters
+    asserts:
+      - notFailedTemplate: {}
+  - it: should fail on .Chart.Name-.Chart.Version length longer than 63 characters
+    chart:
+      version: 1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+    asserts:
+      - failedTemplate:
+          errorMessage: .Chart.Name-.Chart.Version Intelliform-Adapter-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+  - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters
+    asserts:
+      - notFailedTemplate: {}
\ No newline at end of file
diff --git a/src/test/helm/deployment_bindings_test.yaml b/src/test/helm/deployment_bindings_test.yaml
new file mode 100644
index 000000000..f4e0f24ea
--- /dev/null
+++ b/src/test/helm/deployment_bindings_test.yaml
@@ -0,0 +1,75 @@
+#
+# Copyright (C) 2024 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: deployment bindings
+templates:
+  - templates/deployment.yaml
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should have temp-dir volume
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].volumeMounts
+          content:
+            name: temp-dir
+            mountPath: "/tmp"
+
+  - it: should have temp-dir volume mount
+    asserts:
+      - contains:
+          path: spec.template.spec.volumes
+          content:
+            name: temp-dir
+            emptyDir: {}
+
+  - it: should have projected namespace-ca-cert volume
+    asserts:
+      - contains:
+          path: spec.template.spec.volumes
+          content:
+            name: namespace-ca-cert
+            projected:
+              sources:
+              - secret:
+                  name: sh-helm-test-ca-cert
+                  optional: true
+                  items:
+                    - key: ca.crt
+                      path: ca.crt
+              - configMap:
+                  name: eingang-manager-bindings-type
+
+  - it: should have namespace-ca-cert volume mount
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].volumeMounts
+          content:
+            name: namespace-ca-cert
+            mountPath: "/bindings/namespace-certificate"
+            readOnly: true
\ No newline at end of file
diff --git a/src/test/helm/deployment_container_security_context_test.yaml b/src/test/helm/deployment_container_security_context_test.yaml
new file mode 100644
index 000000000..6076fdc7a
--- /dev/null
+++ b/src/test/helm/deployment_container_security_context_test.yaml
@@ -0,0 +1,89 @@
+#
+# Copyright (C) 2023 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 container security
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: check default values
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.allowPrivilegeEscalation
+          value: false
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.privileged
+          value: false
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.readOnlyRootFilesystem
+          value: false
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.runAsNonRoot
+          value: true
+      - isNull:
+          path: spec.template.spec.containers[0].securityContext.runAsUser
+      - isNull:
+          path: spec.template.spec.containers[0].securityContext.runAsGroup
+      - isNull:
+          path: spec.template.spec.securityContext.fsGroup
+      - isNull:
+          path: spec.template.spec.containers[0].securityContext.capabilities
+  - it: check runAsUser
+    set:
+      securityContext.runAsUser: 1000
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.runAsUser
+          value: 1000
+  - it: check runAsGroup
+    set:
+      securityContext.runAsGroup: 1000
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.runAsGroup
+          value: 1000
+  - it: check fsGroup
+    set:
+      podSecurityContext.fsGroup: 1000
+    asserts:
+      - equal:
+          path: spec.template.spec.securityContext.fsGroup
+          value: 1000
+  - it: check capabilities
+    set:
+      securityContext:
+        capabilities:
+          drop:
+            - ALL
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].securityContext.capabilities
+          value:
+            drop:
+              - ALL
\ No newline at end of file
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..0ee7a6d76
--- /dev/null
+++ b/src/test/helm/deployment_defaults_containers_health_test.yaml
@@ -0,0 +1,82 @@
+#
+# Copyright (C) 2024 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
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should have correct health check values
+    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/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
new file mode 100644
index 000000000..4e2d5f7fd
--- /dev/null
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -0,0 +1,49 @@
+#
+# 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 default label
+release:
+  name: intelliform-adapter
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: check default labels
+    asserts:
+      - equal:
+          path: metadata.labels
+          value: 
+            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: intelliform-adapter
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
+
diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml
new file mode 100644
index 000000000..07d4b6ee7
--- /dev/null
+++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml
@@ -0,0 +1,75 @@
+#
+# Copyright (C) 2024 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 actuator
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:  
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: check for some standard values
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: docker.ozg-sh.de/intelliform-adapter:latest
+      - equal:
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: Always
+      - equal:
+          path: spec.template.spec.containers[0].name
+          value: intelliform-adapter
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].containerPort
+          value: 8080
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].name
+          value: 8080tcp1
+      - equal:
+          path: spec.template.spec.containers[0].ports[0].protocol
+          value: TCP
+      - equal:
+          path: spec.template.spec.containers[0].stdin
+          value: true
+      - equal:
+          path: spec.template.spec.containers[0].terminationMessagePath
+          value: /dev/termination-log
+      - equal:
+          path: spec.template.spec.containers[0].terminationMessagePolicy
+          value: File
+      - equal:
+          path: spec.template.spec.containers[0].tty
+          value: true
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].containerPort
+          value: 8081
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].name
+          value: metrics
+      - equal:
+          path: spec.template.spec.containers[0].ports[1].protocol
+          value: TCP
\ No newline at end of file
diff --git a/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
new file mode 100644
index 000000000..ccacfe793
--- /dev/null
+++ b/src/test/helm/deployment_defaults_topologySpreadConstraints_test.yaml
@@ -0,0 +1,48 @@
+#
+# Copyright (C) 2024 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 topology
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:  
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: check default values
+    asserts:
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].maxSkew
+          value: 1
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].topologyKey
+          value: kubernetes.io/hostname
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].whenUnsatisfiable
+          value: DoNotSchedule
+      - equal:
+          path: spec.template.spec.topologySpreadConstraints[0].labelSelector.matchLabels["app.kubernetes.io/name"]
+          value: eingang-manager
\ No newline at end of file
diff --git a/src/test/helm/deployment_env_customList_test.yaml b/src/test/helm/deployment_env_customList_test.yaml
new file mode 100644
index 000000000..57595c8c5
--- /dev/null
+++ b/src/test/helm/deployment_env_customList_test.yaml
@@ -0,0 +1,72 @@
+#
+# Copyright (C) 2024 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 environments customList
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: check customList as list
+    set:
+      env.customList:
+        - name: my_test_environment_name
+          value: "A test value"
+        - name: test_environment
+          value: "B test value"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: my_test_environment_name
+            value: "A test value"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: test_environment
+            value: "B test value"
+  - it: check customList as dict
+    set:
+      env.customList:
+        my_test_environment_name: "A test value"
+        test_environment: "B test value"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: my_test_environment_name
+            value: "A test value"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: test_environment
+            value: "B test value"
+  - it: check customList test value is not set by default
+    asserts:
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: my_test_environment_name
+            value: "A test value"
diff --git a/src/test/helm/deployment_host_aliases_test.yaml b/src/test/helm/deployment_host_aliases_test.yaml
new file mode 100644
index 000000000..134afaf2f
--- /dev/null
+++ b/src/test/helm/deployment_host_aliases_test.yaml
@@ -0,0 +1,54 @@
+#
+# Copyright (C) 2023 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: deployment host aliases
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should not set hostAliases
+    asserts:
+      - isNull:
+          path: spec.template.spec.hostAliases
+  - it: should set hostAliases
+    set:
+      hostAliases:
+        - ip: "127.0.0.1"
+          hostname:
+          - "eins"
+          - "zwei"
+    asserts:
+      - contains:
+          path: spec.template.spec.hostAliases
+          content:
+            ip: "127.0.0.1"
+            hostname:
+            - "eins"
+            - "zwei"
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
new file mode 100644
index 000000000..44d18840f
--- /dev/null
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -0,0 +1,44 @@
+#
+# Copyright (C) 2023 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 imagepullsecret
+release:
+  name: afm-adapter
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+tests:
+  - it: should set the imagePull secret
+    set:
+      imagePullSecret: image-pull-secret
+    asserts:
+      - equal:
+          path: spec.template.spec.imagePullSecrets[0].name
+          value: image-pull-secret
+  - it: should fail tempalte when not set
+    asserts:
+      - failedTemplate:
+          errorMessage: imagePullSecret must be set
\ No newline at end of file
diff --git a/src/test/helm/deployment_liveness_probe_test.yaml b/src/test/helm/deployment_liveness_probe_test.yaml
new file mode 100644
index 000000000..96cd4a95d
--- /dev/null
+++ b/src/test/helm/deployment_liveness_probe_test.yaml
@@ -0,0 +1,51 @@
+#
+# Copyright (C) 2024 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 liveness probe
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: livenessProbe should be disabled by default
+    asserts:
+      - notExists:
+          path: spec.template.spec.containers[0].livenessProbe
+
+  - it: enable livenessProbe
+    set:
+      enableLivenessProbe: true
+    asserts:
+      - isSubset:
+          path: spec.template.spec.containers[0].livenessProbe
+          content:
+            failureThreshold: 3
+            httpGet:
+              path: /actuator/health/liveness
+              port: 8081
+              scheme: HTTP
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 3
diff --git a/src/test/helm/deployment_pod_default_spec_values_test.yaml b/src/test/helm/deployment_pod_default_spec_values_test.yaml
new file mode 100644
index 000000000..ed1df2ad6
--- /dev/null
+++ b/src/test/helm/deployment_pod_default_spec_values_test.yaml
@@ -0,0 +1,50 @@
+ #
+# Copyright (C) 2024 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 container basics
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+ - it: should have correct pod template values
+   asserts:
+      - isEmpty:
+          path: spec.template.spec.dnsConfig
+      - equal:
+          path: spec.template.spec.dnsPolicy
+          value: "ClusterFirst"
+      - equal:
+          path: spec.template.spec.restartPolicy
+          value: "Always"
+      - equal:
+          path: spec.template.spec.schedulerName
+          value: "default-scheduler"
+      - equal:
+          path: spec.template.spec.terminationGracePeriodSeconds
+          value: 30
\ No newline at end of file
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
new file mode 100644
index 000000000..6404c0c9b
--- /dev/null
+++ b/src/test/helm/deployment_resources_test.yaml
@@ -0,0 +1,61 @@
+#
+# 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 resources
+release:
+  name: afm-adapter
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: test resources
+    set:
+      resources:
+        limits:
+          cpu: "11m"
+          memory: "22Mi"
+        requests:
+          cpu: "33m"
+          memory: "44Mi"
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.cpu
+          value: 11m
+      - equal:
+          path: spec.template.spec.containers[0].resources.limits.memory
+          value: 22Mi
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.cpu
+          value: 33m
+      - equal:
+          path: spec.template.spec.containers[0].resources.requests.memory
+          value: 44Mi
+
+  - it: test empty resources
+    asserts:
+      - isEmpty:
+          path: spec.template.spec.containers[0].resources
+
diff --git a/src/test/helm/deployment_routing_strategy_env_test.yaml b/src/test/helm/deployment_routing_strategy_env_test.yaml
new file mode 100644
index 000000000..e70cff6f1
--- /dev/null
+++ b/src/test/helm/deployment_routing_strategy_env_test.yaml
@@ -0,0 +1,80 @@
+#
+# Copyright (C) 2024 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 routing strategy
+release:
+  name: intelliform-adapter
+  namespace: sh-helm-test
+templates:
+  - deployment.yaml
+set:
+  image.tag: latest
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: validate default routing values without questions.yaml
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_adapter_routingStrategy
+            value: SINGLE
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_adapter_fallbackStrategy
+            value: DENY
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_vorgang-manager-vorgang-manager_negotiationType
+            value: TLS
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_vorgang-manager-vorgang-manager_address
+            value: dns:///vorgang-manager.sh-helm-test:9090
+
+  - it: validate routing infos
+    set:
+      routing:
+        routingStrategy: MULTI
+        fallbackStrategy: FUNDSTELLE
+        negotiationType: PLAINTEXT
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_adapter_routingStrategy
+            value: MULTI
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: ozgcloud_adapter_fallbackStrategy
+            value: FUNDSTELLE
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_vorgang-manager-vorgang-manager_negotiationType
+            value: PLAINTEXT
\ No newline at end of file
diff --git a/src/test/helm/deployment_routing_zufi_test.yaml b/src/test/helm/deployment_routing_zufi_test.yaml
new file mode 100644
index 000000000..85c3e1b73
--- /dev/null
+++ b/src/test/helm/deployment_routing_zufi_test.yaml
@@ -0,0 +1,89 @@
+#
+# Copyright (C) 2024 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 zufi routing
+release:
+  name: intelliform-adapter
+  namespace: sh-helm-test
+templates:
+  - deployment.yaml
+set:
+  image.tag: latest
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should set zufi routing values when zufi is enabled
+    set:
+      routing:
+        routingStrategy: "ZUFI"
+        zufiManager:
+          address: "127.0.0.1"
+          negotiationType: "TLS"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_zufi-manager_address
+            value: "127.0.0.1"
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_zufi-manager_negotiationType
+            value: "TLS"
+  
+  - it: should not set zufi routing values when zufi is disabled
+    asserts:
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_zufi-manager_address
+          any: true
+      - notContains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_zufi-manager_negotiationType
+          any: true
+
+  - it: should throw error if zufi manager address is not set
+    set:
+      routing:
+        routingStrategy: "ZUFI"
+        zufiManager:
+          negotiationType: "PLAINTEXT"
+    asserts:
+      - failedTemplate:
+          errorMessage: "routing.zufiManager.address must be set when routingStrategy=ZUFI"
+
+  - it: should set default value for zufi negotiationType
+    set:
+      routing:
+        routingStrategy: "ZUFI"
+        zufiManager:
+          address: "127.0.0.1"
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: grpc_client_zufi-manager_negotiationType
+            value: "PLAINTEXT"
\ No newline at end of file
diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml
new file mode 100644
index 000000000..0110fb671
--- /dev/null
+++ b/src/test/helm/deployment_service_account_test.yaml
@@ -0,0 +1,84 @@
+#
+# Copyright (C) 2023 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: deployment service account
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should use afm-adapter service account name
+    set:
+      image.name: intelliform-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - equal:
+          path: spec.template.spec.serviceAccountName
+          value: afm-adapter-service-account
+  - it: should use fs-adapter service account name
+    set:
+      image.name: formsolutions-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - equal:
+          path: spec.template.spec.serviceAccountName
+          value: fs-adapter-service-account
+  - it: should use formcycle-adapter service account name
+    set:
+      image.name: formcycle-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - equal:
+          path: spec.template.spec.serviceAccountName
+          value: formcycle-adapter-service-account
+  - it: should use enterprise-adapter service account name
+    set:
+      image.name: enterprise-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - equal:
+          path: spec.template.spec.serviceAccountName
+          value: enterprise-adapter-service-account
+  - it: should use service account with name
+    set:
+      serviceAccount:
+        create: true
+        name: helm-service-account
+    asserts:
+      - equal:
+          path: spec.template.spec.serviceAccountName
+          value: helm-service-account
+  - it: should use default service account
+    asserts:
+      - isNull:
+          path: spec.template.spec.serviceAccountName
\ No newline at end of file
diff --git a/src/test/helm/deployment_springProfile_env_test.yaml b/src/test/helm/deployment_springProfile_env_test.yaml
new file mode 100644
index 000000000..9001380a3
--- /dev/null
+++ b/src/test/helm/deployment_springProfile_env_test.yaml
@@ -0,0 +1,50 @@
+#
+# Copyright (C) 2024 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 spring profiles
+release:
+  name: if-adapter
+templates:
+  - templates/deployment.yaml
+set:
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should override spring profiles
+    set:
+      env.overrideSpringProfiles: oc,stage,ea
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: spring_profiles_active
+            value: oc,stage,ea
+  - it: should generate spring profiles
+    set:
+      ozgcloud.environment: test
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: spring_profiles_active
+            value: oc, test
\ No newline at end of file
diff --git a/src/test/helm/deyploment_general_value_and_default_spec_test.yaml b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
new file mode 100644
index 000000000..0ab50fa23
--- /dev/null
+++ b/src/test/helm/deyploment_general_value_and_default_spec_test.yaml
@@ -0,0 +1,73 @@
+#
+# Copyright (C) 2024 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 general values
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+set:
+  ozgcloud.environment: test
+  imagePullSecret: image-pull-secret
+tests:
+  - it: should have correct apiVersion
+    asserts:
+      - isKind:
+          of: Deployment
+      - isAPIVersion:
+           of: "apps/v1"
+      
+  - it: should have correct deployment metadata 
+    asserts: 
+      - equal:
+          path: metadata.name
+          value: eingang-manager
+      - equal: 
+          path: metadata.namespace
+          value: sh-helm-test
+
+
+  - it: should have correct deyployment general spec values
+    asserts:
+      - equal:
+          path: spec.progressDeadlineSeconds
+          value: 600
+      - equal:
+          path: spec.replicas
+          value: null
+      - equal:
+          path: spec.revisionHistoryLimit
+          value: 10
+  - it: should have correct deployment spec strategy values
+    asserts:
+      - equal: 
+          path: spec.strategy
+          value: 
+            rollingUpdate:
+              maxSurge: 1
+              maxUnavailable: 0
+            type: RollingUpdate
+          
+
diff --git a/src/test/helm/ingress_create_or_not_test.yaml b/src/test/helm/ingress_create_or_not_test.yaml
new file mode 100644
index 000000000..9b302ef3b
--- /dev/null
+++ b/src/test/helm/ingress_create_or_not_test.yaml
@@ -0,0 +1,49 @@
+#
+# Copyright (C) 2024 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 ingress creation dependent from values
+templates:
+  - templates/ingress.yaml
+
+set:
+  ozgcloud:
+    bezeichner: helm
+    
+tests:
+  - it: create ingress by config
+    set:
+      ingress.enabled: true
+    asserts:
+      - isKind:
+          of: Ingress
+  - it: not create ingress by config
+    set:
+      ingress.enabled: false
+    asserts:
+      - hasDocuments:
+          count: 0
+  - it: ingress should be created by default
+    asserts:
+      - isKind:
+          of: Ingress
diff --git a/src/test/helm/ingress_nginx_test.yaml b/src/test/helm/ingress_nginx_test.yaml
new file mode 100644
index 000000000..954319725
--- /dev/null
+++ b/src/test/helm/ingress_nginx_test.yaml
@@ -0,0 +1,68 @@
+#
+# Copyright (C) 2024 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 ingress options
+templates:
+  - templates/ingress.yaml
+
+set:
+  ozgcloud:
+    bezeichner: helm
+    
+tests:
+  - it: should create afm ingress tls
+    release:
+      name: afm-adapter
+    asserts:
+      - equal:
+          path: spec.tls[0].secretName
+          value: helm-afm-adapter-tls
+  - it: should create afm ingress tls
+    release:
+      name: fs-adapter
+    set:
+      image.name: formsolutions-adapter
+    asserts:
+      - equal:
+          path: spec.tls[0].secretName
+          value: helm-fs-adapter-tls
+
+  - it: should not set secretName
+    set:
+      ingress.skipTlsSecret: true
+    asserts:
+      - isNull:
+          path: spec.tls[0].secretName
+
+  - it: should not set ingressClassName
+    asserts:
+      - isNull:
+          path: spec.ingressClassName
+  - it: should set ingressClassName
+    set:
+      ingress.className: nginx
+    asserts:
+      - equal:
+          path: spec.ingressClassName
+          value: nginx
\ No newline at end of file
diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml
new file mode 100644
index 000000000..ee0b43da7
--- /dev/null
+++ b/src/test/helm/ingress_test.yaml
@@ -0,0 +1,147 @@
+#
+# 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 ingress creation
+release:
+  name: intelliform-adapter
+  namespace: sh-helm-test
+templates:
+  - templates/ingress.yaml
+set:
+  ozgcloud:
+    bezeichner: helm
+tests:
+  - it: should match basic data
+    asserts:
+      - containsDocument:
+          kind: Ingress
+          apiVersion: networking.k8s.io/v1
+      - equal:
+          path: metadata.name
+          value: intelliform-adapter
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should match service port number
+    asserts:
+      - equal:
+          path: spec.rules[0].http.paths[0].backend.service.port.number
+          value: 8080
+  - it: should match service name
+    asserts:
+      - equal:
+          path: spec.rules[0].http.paths[0].backend.service.name
+          value: intelliform-adapter
+  - it: should match service path
+    asserts:
+      - equal:
+          path: spec.rules[0].http.paths[0].path
+          value: ''
+  - it: should match service pathType
+    asserts:
+      - equal:
+          path: spec.rules[0].http.paths[0].pathType
+          value: ImplementationSpecific
+  - it: should create afm host
+    asserts:
+      - equal:
+          path: spec.rules[0].host
+          value: helm-afm.test.sh.ozg-cloud.de
+      - equal:
+          path: spec.tls[0].hosts[0]
+          value: helm-afm.test.sh.ozg-cloud.de
+
+
+  - it: should create fs host
+    set:
+      image.name: formsolutions-adapter
+    asserts:
+      - equal:
+          path: spec.rules[0].host
+          value: helm-fs.test.sh.ozg-cloud.de
+      - equal:
+          path: spec.tls[0].hosts[0]
+          value: helm-fs.test.sh.ozg-cloud.de
+  
+  - it: should create formcycle host
+    set:
+      image.name: formcycle-adapter
+    asserts:
+      - equal:
+          path: spec.rules[0].host
+          value: helm-formcycle.test.sh.ozg-cloud.de
+      - equal:
+          path: spec.tls[0].hosts[0]
+          value: helm-formcycle.test.sh.ozg-cloud.de
+
+
+  - it: should create custom adapter host
+    set:
+      ingress.adapterBezeichner: test
+    asserts:
+      - equal:
+          path: spec.rules[0].host
+          value: helm-test.test.sh.ozg-cloud.de
+      - equal:
+          path: spec.tls[0].hosts[0]
+          value: helm-test.test.sh.ozg-cloud.de
+
+  - it: should use letsencrypt-prod cluster-issuer as default
+    asserts:
+      - equal:
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
+          value: letsencrypt-prod
+
+  - it: should use letsencrypt-staging cluster-issuer if use_staging_cert is true
+    set:
+      ingress.use_staging_cert: true
+    asserts:
+      - equal:
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
+          value: letsencrypt-staging
+
+  - it: should use letsencrypt-prod cluster-issuer if use_staging_cert is false
+    set:
+      ingress.use_staging_cert: false
+    asserts:
+      - equal:
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
+          value: letsencrypt-prod
+
+  - it: should disable default cert-manager
+    set:
+      ingress.disableDefaultCertManager: true
+    asserts:
+      - notExists:
+          path: metadata.annotations["cert-manager.io/cluster-issuer"]
+
+  - it: should set ingress annotation proxy body size to 42m
+    set:
+      ingress:
+        annotations:
+          nginx.ingress.kubernetes.io/proxy-body-size: 42m
+    asserts:
+      - equal:
+          path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-body-size"]
+          value: 42m
\ No newline at end of file
diff --git a/src/test/helm/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml
new file mode 100644
index 000000000..06a416e43
--- /dev/null
+++ b/src/test/helm/network_policy_test.yaml
@@ -0,0 +1,225 @@
+#
+# Copyright (C) 2023 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: network policy test
+release:
+  name: afm-adapter
+  namespace: by-helm-test
+templates:
+  - templates/network_policy.yaml
+tests:
+  - it: should match apiVersion
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-namespace
+    asserts:
+      - isAPIVersion:
+          of: networking.k8s.io/v1
+  - it: should match kind
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-namespace
+    asserts:
+      - isKind:
+          of: NetworkPolicy
+  - it: validate metadata
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-namespace
+    asserts:
+      - equal:
+          path: metadata
+          value:
+            name: network-policy-afm-adapter
+            namespace: by-helm-test
+  - it: validate spec
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-namespace
+    asserts:
+      - equal:
+          path: spec
+          value:
+            podSelector:
+              matchLabels:
+                ozg-component: eingangsadapter
+            policyTypes:
+              - Ingress
+              - Egress
+            ingress:
+            - ports:
+              - port: 8080
+            - from:
+              - namespaceSelector:
+                  matchLabels:
+                    name: openshift-user-workload-monitoring
+              ports:
+              - protocol: TCP
+                port: 8081
+            egress:
+            - to:
+              - podSelector: 
+                  matchLabels:
+                    component: vorgang-manager
+              ports:
+                - port: 9090
+                  protocol: TCP
+            - to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: test-dns-namespace
+              ports:
+                - port: 53
+                  protocol: UDP
+                - port: 53
+                  protocol: TCP
+                - port: 5353
+                  protocol: UDP
+                - port: 5353
+                  protocol: TCP
+
+  - it: should set monitoring namespace
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-namespace
+        monitoringNamespace: test-monitoring
+    asserts:
+      - contains:
+          path: spec.ingress
+          content:
+            from:
+              - namespaceSelector:
+                  matchLabels:
+                    name: test-monitoring
+            ports:
+              - protocol: TCP
+                port: 8081
+
+  - it: test network policy disabled
+    set:
+      networkPolicy:
+        disabled: true
+        dnsServerNamespace: test-dns-namespace
+    asserts:
+      - hasDocuments:
+          count: 0
+
+  - it: test network policy unset should be disabled
+    set:
+      networkPolicy:
+        disabled: false
+        dnsServerNamespace: test-dns-namespace
+    asserts:
+      - hasDocuments:
+          count: 1
+  - it: test network policy dnsServerNamespace must be set message
+    set:
+      networkPolicy:
+        disabled: false
+    asserts:
+      - failedTemplate:
+          errorMessage: networkPolicy.dnsServerNamespace must be set
+
+  - it: test network policy should be enabled by default
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-server-namespace
+    asserts:
+      - hasDocuments:
+          count: 1
+
+
+  - it: should add zufi rules when zufi-routing is enabled
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-server-namespace
+      routing:
+        routingStrategy: ZUFI
+        zufiManager: 
+          namespace: zufi-namespace
+    asserts:
+    - contains:
+        path: spec.egress
+        content:
+          to:
+          - namespaceSelector:
+              matchLabels:
+                kubernetes.io/metadata.name: zufi-namespace
+            podSelector: 
+              matchLabels:
+                component: zufi-server
+          ports:
+          - port: 9090
+            protocol: TCP
+    - contains:
+        path: spec.egress
+        content:
+          to:
+          - namespaceSelector: {}
+            podSelector: 
+              matchLabels:
+                component: vorgang-manager
+          ports:
+            - port: 9090
+              protocol: TCP
+
+  - it: should throw error when zufi is enabled but zufi namespace not set
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-server-namespace
+      routing:
+        routingStrategy: ZUFI
+    asserts:
+    - failedTemplate:
+        errorMessage: routing.zufiManager.namespace must be set if routingStrategy=ZUFI
+
+  - it: should not add zufi rule when zufi-routing is disabled
+    set:
+      networkPolicy:
+        dnsServerNamespace: test-dns-server-namespace
+      routing:
+        zufiManager: 
+          namespace: zufi-namespace
+    asserts:
+    - notContains:
+        path: spec.egress
+        content:
+          to:
+          - namespaceSelector:
+              matchLabels:
+                kubernetes.io/metadata.name: zufi-namespace
+            podSelector: 
+              matchLabels:
+                component: zufi-server
+    - notContains:
+        path: spec.egress
+        content:
+          to:
+          - namespaceSelector: {}
+            podSelector: 
+              matchLabels:
+                component: vorgang-manager
+          ports:
+            - port: 9090
+              protocol: TCP
\ No newline at end of file
diff --git a/src/test/helm/realm_name_length_test.yaml b/src/test/helm/realm_name_length_test.yaml
new file mode 100644
index 000000000..ef87fd640
--- /dev/null
+++ b/src/test/helm/realm_name_length_test.yaml
@@ -0,0 +1,41 @@
+#
+# Copyright (C) 2024 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 ozgcloud bezeichner length
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/ingress.yaml
+
+tests:
+  - it: should fail on bezeichner length longer than 46 characters
+    set:
+      ozgcloud:
+        bezeichner: test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
+        environment: test
+        bundesland: by
+    asserts:
+      - failedTemplate:
+          errorMessage: Bezeichner test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 46 Zeichen)
\ No newline at end of file
diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml
new file mode 100644
index 000000000..3ae43770b
--- /dev/null
+++ b/src/test/helm/service_account_test.yaml
@@ -0,0 +1,108 @@
+#
+# Copyright (C) 2023 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 service account
+release:
+  name: eingang-manager
+  namespace: sh-helm-test
+templates:
+  - templates/service_account.yaml
+tests:
+  - it: should create default afm adapter service account name
+    set:
+      image.name: intelliform-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - isKind:
+          of: ServiceAccount
+      - isAPIVersion:
+          of: v1
+      - equal:
+          path: metadata.name
+          value: afm-adapter-service-account
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test    
+
+  - it: should create default fs adapter service account name
+    set:
+      image.name: formsolutions-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - isKind:
+          of: ServiceAccount
+      - equal:
+          path: metadata.name
+          value: fs-adapter-service-account
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should create default formcycle adapter service account name
+    set:
+      image.name: formcycle-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - isKind:
+          of: ServiceAccount
+      - equal:
+          path: metadata.name
+          value: formcycle-adapter-service-account
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should create default enterprise adapter service account name
+    set:
+      image.name: enterprise-adapter
+      serviceAccount:
+        create: true
+    asserts:
+      - isKind:
+          of: ServiceAccount
+      - equal:
+          path: metadata.name
+          value: enterprise-adapter-service-account
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should create service account with name
+    set:
+      serviceAccount:
+        create: true
+        name: helm-service-account
+    asserts:
+      - isKind:
+          of: ServiceAccount
+      - equal:
+          path: metadata.name
+          value: helm-service-account
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should not create service account
+    asserts:
+      - hasDocuments:
+        count: 0
\ No newline at end of file
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
new file mode 100644
index 000000000..c85a7a6b6
--- /dev/null
+++ b/src/test/helm/service_monitor_test.yaml
@@ -0,0 +1,96 @@
+#
+# 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 service monitor
+release:
+  name: afm-adapter
+  namespace: sh-helm-test
+templates:
+  - templates/service_monitor.yaml
+tests:
+  - it: should have basic info and the label component with value afm-adapter-service-monitor attached
+    asserts:
+      - isKind:
+          of: ServiceMonitor
+      - isAPIVersion:
+          of: monitoring.coreos.com/v1
+      - equal:
+          path: metadata.name
+          value: afm-adapter
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+      - equal:
+          path: metadata.labels["component"]
+          value: afm-adapter-service-monitor
+      
+  - it: should contain default lables and component lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value:
+            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: afm-adapter
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: afm-adapter-service-monitor
+            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
+
+  - it: should have the metrics endpoint configured by default
+    set:
+      env.springProfiles: oc,stage
+    asserts:
+      - contains:
+          path: spec.endpoints
+          content:
+            port: metrics
+            path: /actuator/prometheus
+  - it: should be able to enable the endpoint
+    asserts:
+      - contains:
+          path: spec.endpoints
+          content:
+            port: metrics
+            path: /actuator/prometheus
+  - it: namespace selector should contain the namespace
+    asserts:
+      - contains:
+          path: spec.namespaceSelector.matchNames
+          content: sh-helm-test
+  - it: selector should contain the component label with the value afm-adapter-service
+    asserts:
+      - equal:
+          path: spec.selector.matchLabels["component"]
+          value: afm-adapter-service
+  - it: selector should contain helm recommended labels name and namespace
+    asserts:
+      - equal:
+          path: spec.selector.matchLabels["app.kubernetes.io/name"]
+          value: afm-adapter
+      - equal:
+          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
new file mode 100644
index 000000000..ebc38d5c4
--- /dev/null
+++ b/src/test/helm/service_test.yaml
@@ -0,0 +1,100 @@
+#
+# 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 service
+release:
+  name: afm-adapter
+  namespace: sh-helm-test
+templates:
+  - templates/service.yaml
+tests:
+  - it: should have basics and the label component with value afm-adapter-service attached
+    asserts:
+      - isKind:
+          of: Service
+      - isAPIVersion:
+          of: v1
+      - equal:
+          path: metadata.labels["component"]
+          value: afm-adapter-service
+      - equal:
+          path: metadata.name
+          value: afm-adapter
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
+  - it: should be of type ClusterIP
+    asserts:
+      - equal:
+          path: spec.type
+          value: ClusterIP
+  - it: ports should contain the 8080 default http port
+    asserts:
+      - contains:
+          path: spec.ports
+          content:
+            name: http
+            port: 8080
+            protocol: TCP
+            targetPort: 8080
+          count: 1
+          any: true
+  - it: ports should contain the metrics port
+    asserts:
+      - contains:
+          path: spec.ports
+          content:
+            name: metrics
+            port: 8081
+            protocol: TCP
+          count: 1
+          any: true
+  - it: selector should contain the component label with the value afm-adapter
+    asserts:
+      - equal:
+          path: spec.selector["component"]
+          value: afm-adapter
+  - it: selector should contain helm recommended labels name and namespace
+    asserts:
+      - equal:
+          path: spec.selector["app.kubernetes.io/name"]
+          value: afm-adapter
+      - equal:
+          path: spec.selector["app.kubernetes.io/namespace"]
+          value: sh-helm-test
+
+  - it: should contain default lables and component lables
+    asserts:
+      - equal:
+          path: metadata.labels
+          value:
+            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/managed-by: Helm
+            app.kubernetes.io/name: afm-adapter
+            app.kubernetes.io/namespace: sh-helm-test
+            app.kubernetes.io/part-of: ozgcloud
+            app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
+            component: afm-adapter-service
+            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
\ No newline at end of file
-- 
GitLab


From acbc4f0d2bf21a5b475752f68565f4925155c86b Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 15:56:18 +0100
Subject: [PATCH 2/7] rename Jenkins stage

---
 Jenkinsfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index eba345c98..7cfd63a12 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -154,7 +154,7 @@ pipeline {
             }
         }
 
-        stage('Test, build and deploy Intelliform-Adapter Helm Chart') {
+        stage('Test, build and deploy Eingang-Adapter Helm Chart') {
             steps {
                 script {
                     FAILED_STAGE=env.STAGE_NAME
-- 
GitLab


From dced415338f8b4ecd4ce8daaf2de737a2a497b5d Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 15:58:40 +0100
Subject: [PATCH 3/7] rename helm chart name

---
 Jenkinsfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Jenkinsfile b/Jenkinsfile
index 7cfd63a12..38488fb06 100644
--- a/Jenkinsfile
+++ b/Jenkinsfile
@@ -165,7 +165,7 @@ pipeline {
                     dir('src/main/helm') {
                         sh "helm package --version=${HELM_CHART_VERSION} ."
 
-                        deployHelmChart("Intelliform-Adapter", HELM_CHART_VERSION)
+                        deployHelmChart("eingang-adapter", HELM_CHART_VERSION)
                     }
                 }
             }
-- 
GitLab


From 782a3e93e1b4f20a5055dba42bc02bd691758025 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 16:17:43 +0100
Subject: [PATCH 4/7] replace intelliform adapter with eingang-adapter

---
 src/main/helm/Chart.yaml                           |  5 ++---
 src/main/helm/templates/deployment.yaml            |  4 ++--
 src/main/helm/values.yaml                          |  3 +--
 src/test/helm/deployment_63_chars_test.yaml        |  6 +++---
 src/test/helm/deployment_defaults_labels_test.yaml |  9 ++++-----
 .../deployment_defaults_spec_containers_test.yaml  |  4 ++--
 .../helm/deployment_routing_strategy_env_test.yaml |  4 ++--
 src/test/helm/deployment_routing_zufi_test.yaml    |  6 +++---
 src/test/helm/ingress_test.yaml                    | 14 ++++++--------
 src/test/helm/service_monitor_test.yaml            |  4 ++--
 src/test/helm/service_test.yaml                    |  4 ++--
 11 files changed, 29 insertions(+), 34 deletions(-)

diff --git a/src/main/helm/Chart.yaml b/src/main/helm/Chart.yaml
index 2b05d0cc4..118bc6f74 100644
--- a/src/main/helm/Chart.yaml
+++ b/src/main/helm/Chart.yaml
@@ -24,8 +24,7 @@
 
 apiVersion: v1
 appVersion: "1.1"
-description: A Helm chart for Intelliform Adapter
-name: Intelliform-Adapter
+description: A Helm chart for Eingang Adapter
+name: eingang-adapter
 version: 0.0.0-MANAGED-BY-JENKINS
 icon: https://simpleicons.org/icons/helm.svg
-
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
index b59bb1cc4..ff60598c9 100644
--- a/src/main/helm/templates/deployment.yaml
+++ b/src/main/helm/templates/deployment.yaml
@@ -62,7 +62,7 @@ spec:
         - name: SERVICE_BINDING_ROOT
           value: "/bindings"
         {{- range (.Values.env).grpc }}
-        - name: {{ .name }} 
+        - name: {{ .name }}
           value: {{ .value }}
         {{- end }}
         - name: spring_profiles_active
@@ -95,7 +95,7 @@ spec:
         {{- end }}
         image: "{{ .Values.image.repo }}/{{ .Values.image.name }}:{{ coalesce (.Values.image).tag "latest" }}"
         imagePullPolicy: Always
-        name: intelliform-adapter
+        name: eingang-adapter
         ports:
         - containerPort: 8080
           name: 8080tcp1
diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml
index 118009532..541998250 100644
--- a/src/main/helm/values.yaml
+++ b/src/main/helm/values.yaml
@@ -26,10 +26,9 @@ baseUrl: test.sh.ozg-cloud.de
 
 image:
   repo: docker.ozg-sh.de
-  name: intelliform-adapter # [default: intelliform-adapter]
+  name: eingang-adapter # [default: eingang-adapter]
   tag: latest # [default: latest]
 
-
 ingress:
   enabled: true
   # overrideHost: kiel-afm.dev.by.ozg-cloud.de
diff --git a/src/test/helm/deployment_63_chars_test.yaml b/src/test/helm/deployment_63_chars_test.yaml
index 417144739..a40e1b8e4 100644
--- a/src/test/helm/deployment_63_chars_test.yaml
+++ b/src/test/helm/deployment_63_chars_test.yaml
@@ -26,7 +26,7 @@ suite: test deyploment less than 63 chars
 release:
   name: eingang-manager
   namespace: sh-helm-test
-  
+
 chart:
   name: eingang-manager
 set:
@@ -50,7 +50,7 @@ tests:
       version: 1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890
     asserts:
       - failedTemplate:
-          errorMessage: .Chart.Name-.Chart.Version Intelliform-Adapter-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
+          errorMessage: .Chart.Name-.Chart.Version eingang-adapter-1.0-test1234567890123123456789012345678901234567890123456789012345678901234567890123456789012345678904567890 ist zu lang (max. 63 Zeichen)
   - it: should not fail on .Chart.Name-.Chart.Version length less than 63 characters
     asserts:
-      - notFailedTemplate: {}
\ No newline at end of file
+      - notFailedTemplate: {}
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index 4e2d5f7fd..89894411a 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test deployment default label
 release:
-  name: intelliform-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
@@ -37,13 +37,12 @@ tests:
     asserts:
       - equal:
           path: metadata.labels
-          value: 
+          value:
             app.kubernetes.io/instance: afm-adapter
             app.kubernetes.io/managed-by: Helm
-            app.kubernetes.io/name: intelliform-adapter
+            app.kubernetes.io/name: eingang-adapter
             app.kubernetes.io/namespace: sh-helm-test
             app.kubernetes.io/part-of: ozgcloud
             app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
-            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            helm.sh/chart: eingang-adapter-0.0.0-MANAGED-BY-JENKINS
             ozg-component: eingangsadapter
-
diff --git a/src/test/helm/deployment_defaults_spec_containers_test.yaml b/src/test/helm/deployment_defaults_spec_containers_test.yaml
index 07d4b6ee7..55f0afcf7 100644
--- a/src/test/helm/deployment_defaults_spec_containers_test.yaml
+++ b/src/test/helm/deployment_defaults_spec_containers_test.yaml
@@ -36,13 +36,13 @@ tests:
     asserts:
       - equal:
           path: spec.template.spec.containers[0].image
-          value: docker.ozg-sh.de/intelliform-adapter:latest
+          value: docker.ozg-sh.de/eingang-adapter:latest
       - equal:
           path: spec.template.spec.containers[0].imagePullPolicy
           value: Always
       - equal:
           path: spec.template.spec.containers[0].name
-          value: intelliform-adapter
+          value: eingang-adapter
       - equal:
           path: spec.template.spec.containers[0].ports[0].containerPort
           value: 8080
diff --git a/src/test/helm/deployment_routing_strategy_env_test.yaml b/src/test/helm/deployment_routing_strategy_env_test.yaml
index e70cff6f1..92220ea51 100644
--- a/src/test/helm/deployment_routing_strategy_env_test.yaml
+++ b/src/test/helm/deployment_routing_strategy_env_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test deployment routing strategy
 release:
-  name: intelliform-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - deployment.yaml
@@ -77,4 +77,4 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: grpc_client_vorgang-manager-vorgang-manager_negotiationType
-            value: PLAINTEXT
\ No newline at end of file
+            value: PLAINTEXT
diff --git a/src/test/helm/deployment_routing_zufi_test.yaml b/src/test/helm/deployment_routing_zufi_test.yaml
index 85c3e1b73..a2d8aac38 100644
--- a/src/test/helm/deployment_routing_zufi_test.yaml
+++ b/src/test/helm/deployment_routing_zufi_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test deployment zufi routing
 release:
-  name: intelliform-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - deployment.yaml
@@ -51,7 +51,7 @@ tests:
           content:
             name: grpc_client_zufi-manager_negotiationType
             value: "TLS"
-  
+
   - it: should not set zufi routing values when zufi is disabled
     asserts:
       - notContains:
@@ -86,4 +86,4 @@ tests:
           path: spec.template.spec.containers[0].env
           content:
             name: grpc_client_zufi-manager_negotiationType
-            value: "PLAINTEXT"
\ No newline at end of file
+            value: "PLAINTEXT"
diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml
index ee0b43da7..1b41eb85c 100644
--- a/src/test/helm/ingress_test.yaml
+++ b/src/test/helm/ingress_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test ingress creation
 release:
-  name: intelliform-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - templates/ingress.yaml
@@ -39,7 +39,7 @@ tests:
           apiVersion: networking.k8s.io/v1
       - equal:
           path: metadata.name
-          value: intelliform-adapter
+          value: eingang-adapter
       - equal:
           path: metadata.namespace
           value: sh-helm-test
@@ -52,12 +52,12 @@ tests:
     asserts:
       - equal:
           path: spec.rules[0].http.paths[0].backend.service.name
-          value: intelliform-adapter
+          value: eingang-adapter
   - it: should match service path
     asserts:
       - equal:
           path: spec.rules[0].http.paths[0].path
-          value: ''
+          value: ""
   - it: should match service pathType
     asserts:
       - equal:
@@ -72,7 +72,6 @@ tests:
           path: spec.tls[0].hosts[0]
           value: helm-afm.test.sh.ozg-cloud.de
 
-
   - it: should create fs host
     set:
       image.name: formsolutions-adapter
@@ -83,7 +82,7 @@ tests:
       - equal:
           path: spec.tls[0].hosts[0]
           value: helm-fs.test.sh.ozg-cloud.de
-  
+
   - it: should create formcycle host
     set:
       image.name: formcycle-adapter
@@ -95,7 +94,6 @@ tests:
           path: spec.tls[0].hosts[0]
           value: helm-formcycle.test.sh.ozg-cloud.de
 
-
   - it: should create custom adapter host
     set:
       ingress.adapterBezeichner: test
@@ -144,4 +142,4 @@ tests:
     asserts:
       - equal:
           path: metadata.annotations["nginx.ingress.kubernetes.io/proxy-body-size"]
-          value: 42m
\ No newline at end of file
+          value: 42m
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
index c85a7a6b6..8c4a1b5b0 100644
--- a/src/test/helm/service_monitor_test.yaml
+++ b/src/test/helm/service_monitor_test.yaml
@@ -44,7 +44,7 @@ tests:
       - equal:
           path: metadata.labels["component"]
           value: afm-adapter-service-monitor
-      
+
   - it: should contain default lables and component lables
     asserts:
       - equal:
@@ -57,7 +57,7 @@ tests:
             app.kubernetes.io/part-of: ozgcloud
             app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
             component: afm-adapter-service-monitor
-            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
+            helm.sh/chart: eingang-adapter-0.0.0-MANAGED-BY-JENKINS
             ozg-component: eingangsadapter
 
   - it: should have the metrics endpoint configured by default
diff --git a/src/test/helm/service_test.yaml b/src/test/helm/service_test.yaml
index ebc38d5c4..bec1a28db 100644
--- a/src/test/helm/service_test.yaml
+++ b/src/test/helm/service_test.yaml
@@ -96,5 +96,5 @@ tests:
             app.kubernetes.io/part-of: ozgcloud
             app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
             component: afm-adapter-service
-            helm.sh/chart: Intelliform-Adapter-0.0.0-MANAGED-BY-JENKINS
-            ozg-component: eingangsadapter
\ No newline at end of file
+            helm.sh/chart: eingang-adapter-0.0.0-MANAGED-BY-JENKINS
+            ozg-component: eingangsadapter
-- 
GitLab


From ebab2b2bee10d90f979b6654590b1f791f2a0363 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 16:21:06 +0100
Subject: [PATCH 5/7] remove formsolutions from helm

---
 src/main/helm/templates/_helpers.tpl            |  4 ----
 .../helm/deployment_service_account_test.yaml   | 11 +----------
 src/test/helm/ingress_nginx_test.yaml           | 13 ++-----------
 src/test/helm/ingress_test.yaml                 | 11 -----------
 src/test/helm/service_account_test.yaml         | 17 +----------------
 5 files changed, 4 insertions(+), 52 deletions(-)

diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
index 5578089ba..fdb9ddf34 100644
--- a/src/main/helm/templates/_helpers.tpl
+++ b/src/main/helm/templates/_helpers.tpl
@@ -91,8 +91,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- define "app.ingress.host" }}
 {{- if (.Values.ingress).adapterBezeichner }}
 {{- printf "%s-%s.%s" (include "app.ozgcloudBezeichner" .) .Values.ingress.adapterBezeichner .Values.baseUrl }}
-{{- else if eq (.Values.image).name "formsolutions-adapter" }}
-{{- printf "%s-fs.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
 {{- else if eq (.Values.image).name "formcycle-adapter" }}
 {{- printf "%s-formcycle.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
 {{- else }}
@@ -105,8 +103,6 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- printf "%s" .Values.serviceAccount.name }}
 {{- else if eq (.Values.image).name "intelliform-adapter" }}
 {{- printf "afm-adapter-service-account" }}
-{{- else if eq (.Values.image).name "formsolutions-adapter" }}
-{{- printf "fs-adapter-service-account" }}
 {{- else if eq (.Values.image).name "formcycle-adapter" }}
 {{- printf "formcycle-adapter-service-account" }}
 {{- else if eq (.Values.image).name "enterprise-adapter" }}
diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml
index 0110fb671..fbf9bf795 100644
--- a/src/test/helm/deployment_service_account_test.yaml
+++ b/src/test/helm/deployment_service_account_test.yaml
@@ -42,15 +42,6 @@ tests:
       - equal:
           path: spec.template.spec.serviceAccountName
           value: afm-adapter-service-account
-  - it: should use fs-adapter service account name
-    set:
-      image.name: formsolutions-adapter
-      serviceAccount:
-        create: true
-    asserts:
-      - equal:
-          path: spec.template.spec.serviceAccountName
-          value: fs-adapter-service-account
   - it: should use formcycle-adapter service account name
     set:
       image.name: formcycle-adapter
@@ -81,4 +72,4 @@ tests:
   - it: should use default service account
     asserts:
       - isNull:
-          path: spec.template.spec.serviceAccountName
\ No newline at end of file
+          path: spec.template.spec.serviceAccountName
diff --git a/src/test/helm/ingress_nginx_test.yaml b/src/test/helm/ingress_nginx_test.yaml
index 954319725..cd36fce3a 100644
--- a/src/test/helm/ingress_nginx_test.yaml
+++ b/src/test/helm/ingress_nginx_test.yaml
@@ -29,7 +29,7 @@ templates:
 set:
   ozgcloud:
     bezeichner: helm
-    
+
 tests:
   - it: should create afm ingress tls
     release:
@@ -38,15 +38,6 @@ tests:
       - equal:
           path: spec.tls[0].secretName
           value: helm-afm-adapter-tls
-  - it: should create afm ingress tls
-    release:
-      name: fs-adapter
-    set:
-      image.name: formsolutions-adapter
-    asserts:
-      - equal:
-          path: spec.tls[0].secretName
-          value: helm-fs-adapter-tls
 
   - it: should not set secretName
     set:
@@ -65,4 +56,4 @@ tests:
     asserts:
       - equal:
           path: spec.ingressClassName
-          value: nginx
\ No newline at end of file
+          value: nginx
diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml
index 1b41eb85c..a5a2f64fa 100644
--- a/src/test/helm/ingress_test.yaml
+++ b/src/test/helm/ingress_test.yaml
@@ -72,17 +72,6 @@ tests:
           path: spec.tls[0].hosts[0]
           value: helm-afm.test.sh.ozg-cloud.de
 
-  - it: should create fs host
-    set:
-      image.name: formsolutions-adapter
-    asserts:
-      - equal:
-          path: spec.rules[0].host
-          value: helm-fs.test.sh.ozg-cloud.de
-      - equal:
-          path: spec.tls[0].hosts[0]
-          value: helm-fs.test.sh.ozg-cloud.de
-
   - it: should create formcycle host
     set:
       image.name: formcycle-adapter
diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml
index 3ae43770b..b64225463 100644
--- a/src/test/helm/service_account_test.yaml
+++ b/src/test/helm/service_account_test.yaml
@@ -42,21 +42,6 @@ tests:
       - equal:
           path: metadata.name
           value: afm-adapter-service-account
-      - equal:
-          path: metadata.namespace
-          value: sh-helm-test    
-
-  - it: should create default fs adapter service account name
-    set:
-      image.name: formsolutions-adapter
-      serviceAccount:
-        create: true
-    asserts:
-      - isKind:
-          of: ServiceAccount
-      - equal:
-          path: metadata.name
-          value: fs-adapter-service-account
       - equal:
           path: metadata.namespace
           value: sh-helm-test
@@ -105,4 +90,4 @@ tests:
   - it: should not create service account
     asserts:
       - hasDocuments:
-        count: 0
\ No newline at end of file
+        count: 0
-- 
GitLab


From 989a17c85b7f984e0812bcae7447c73c4e784c11 Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 16:29:16 +0100
Subject: [PATCH 6/7] rename afm to eingang

---
 src/main/helm/templates/_helpers.tpl          |   6 +-
 src/main/helm/templates/deployment.yaml       |   2 +-
 src/main/helm/templates/service.yaml          |   4 +-
 src/main/helm/templates/service_monitor.yaml  |   4 +-
 src/main/helm/values.yaml                     |   1 -
 .../helm/deployment_defaults_labels_test.yaml |   2 +-
 .../deployment_imagepull_secret_test.yaml     |   4 +-
 src/test/helm/deployment_resources_test.yaml  |   3 +-
 .../helm/deployment_service_account_test.yaml |   9 -
 src/test/helm/ingress_nginx_test.yaml         |   6 +-
 src/test/helm/ingress_test.yaml               |   6 +-
 src/test/helm/network_policy_test.yaml        | 161 +++++++++---------
 src/test/helm/service_account_test.yaml       |  16 --
 src/test/helm/service_monitor_test.yaml       |  20 +--
 src/test/helm/service_test.yaml               |  20 +--
 15 files changed, 117 insertions(+), 147 deletions(-)

diff --git a/src/main/helm/templates/_helpers.tpl b/src/main/helm/templates/_helpers.tpl
index fdb9ddf34..b0f54ef2d 100644
--- a/src/main/helm/templates/_helpers.tpl
+++ b/src/main/helm/templates/_helpers.tpl
@@ -51,7 +51,7 @@
 
 {{/* Default Labels: Helm recommended best-practice labels https://helm.sh/docs/chart_best_practices/labels/ */}}
 {{- define "app.defaultLabels" }}
-app.kubernetes.io/instance: afm-adapter
+app.kubernetes.io/instance: eingang-adapter
 app.kubernetes.io/managed-by: {{ include "app.managedBy" . }}
 app.kubernetes.io/name: {{ .Release.Name }}
 app.kubernetes.io/part-of: ozgcloud
@@ -94,15 +94,13 @@ app.kubernetes.io/namespace: {{ include "app.namespace" . }}
 {{- else if eq (.Values.image).name "formcycle-adapter" }}
 {{- printf "%s-formcycle.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
 {{- else }}
-{{- printf "%s-afm.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
+{{- printf "%s-eingang.%s" (include "app.ozgcloudBezeichner" .) .Values.baseUrl }}
 {{- end }}
 {{- end -}}
 
 {{- define "app.serviceAccountName" -}}
 {{- if (.Values.serviceAccount).name }}
 {{- printf "%s" .Values.serviceAccount.name }}
-{{- else if eq (.Values.image).name "intelliform-adapter" }}
-{{- printf "afm-adapter-service-account" }}
 {{- else if eq (.Values.image).name "formcycle-adapter" }}
 {{- printf "formcycle-adapter-service-account" }}
 {{- else if eq (.Values.image).name "enterprise-adapter" }}
diff --git a/src/main/helm/templates/deployment.yaml b/src/main/helm/templates/deployment.yaml
index ff60598c9..4ea2406bb 100644
--- a/src/main/helm/templates/deployment.yaml
+++ b/src/main/helm/templates/deployment.yaml
@@ -45,7 +45,7 @@ spec:
     metadata:
       labels:
         {{- include "app.defaultLabels" . | indent 8 }}
-        component: afm-adapter
+        component: eingang-adapter
     spec:
       {{- if (.Values.serviceAccount).create }}
       serviceAccountName: {{ include "app.serviceAccountName" . }}
diff --git a/src/main/helm/templates/service.yaml b/src/main/helm/templates/service.yaml
index 93574b29b..78dc3c5b8 100644
--- a/src/main/helm/templates/service.yaml
+++ b/src/main/helm/templates/service.yaml
@@ -29,7 +29,7 @@ metadata:
   namespace: {{ include "app.namespace" . }}
   labels:
     {{- include "app.defaultLabels" . | indent 4 }}
-    component: afm-adapter-service
+    component: eingang-adapter-service
 spec:
   ports:
     - name: http
@@ -42,4 +42,4 @@ spec:
   type: ClusterIP
   selector:
     {{- include "app.matchLabels" . | indent 4 }}
-    component: afm-adapter
\ No newline at end of file
+    component: eingang-adapter
\ No newline at end of file
diff --git a/src/main/helm/templates/service_monitor.yaml b/src/main/helm/templates/service_monitor.yaml
index 053a25810..70f64b42e 100644
--- a/src/main/helm/templates/service_monitor.yaml
+++ b/src/main/helm/templates/service_monitor.yaml
@@ -29,7 +29,7 @@ metadata:
   namespace: {{ include "app.namespace" . }}
   labels:
     {{- include "app.defaultLabels" . | indent 4 }}
-    component: afm-adapter-service-monitor
+    component: eingang-adapter-service-monitor
 spec:
   endpoints:
   - port: metrics
@@ -40,4 +40,4 @@ spec:
   selector:
     matchLabels:
       {{- include "app.matchLabels" . | indent 6 }}
-      component: afm-adapter-service
\ No newline at end of file
+      component: eingang-adapter-service
\ No newline at end of file
diff --git a/src/main/helm/values.yaml b/src/main/helm/values.yaml
index 541998250..57e9ee218 100644
--- a/src/main/helm/values.yaml
+++ b/src/main/helm/values.yaml
@@ -31,7 +31,6 @@ image:
 
 ingress:
   enabled: true
-  # overrideHost: kiel-afm.dev.by.ozg-cloud.de
 
 routing:
   targetVorgangManagerName: vorgang-manager
diff --git a/src/test/helm/deployment_defaults_labels_test.yaml b/src/test/helm/deployment_defaults_labels_test.yaml
index 89894411a..bcc3c9bc5 100644
--- a/src/test/helm/deployment_defaults_labels_test.yaml
+++ b/src/test/helm/deployment_defaults_labels_test.yaml
@@ -38,7 +38,7 @@ tests:
       - equal:
           path: metadata.labels
           value:
-            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/instance: eingang-adapter
             app.kubernetes.io/managed-by: Helm
             app.kubernetes.io/name: eingang-adapter
             app.kubernetes.io/namespace: sh-helm-test
diff --git a/src/test/helm/deployment_imagepull_secret_test.yaml b/src/test/helm/deployment_imagepull_secret_test.yaml
index 44d18840f..183933f71 100644
--- a/src/test/helm/deployment_imagepull_secret_test.yaml
+++ b/src/test/helm/deployment_imagepull_secret_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test deployment imagepullsecret
 release:
-  name: afm-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - templates/deployment.yaml
@@ -41,4 +41,4 @@ tests:
   - it: should fail tempalte when not set
     asserts:
       - failedTemplate:
-          errorMessage: imagePullSecret must be set
\ No newline at end of file
+          errorMessage: imagePullSecret must be set
diff --git a/src/test/helm/deployment_resources_test.yaml b/src/test/helm/deployment_resources_test.yaml
index 6404c0c9b..a938b0eef 100644
--- a/src/test/helm/deployment_resources_test.yaml
+++ b/src/test/helm/deployment_resources_test.yaml
@@ -24,7 +24,7 @@
 
 suite: test deployment resources
 release:
-  name: afm-adapter
+  name: eingang-adapter
 templates:
   - templates/deployment.yaml
 set:
@@ -58,4 +58,3 @@ tests:
     asserts:
       - isEmpty:
           path: spec.template.spec.containers[0].resources
-
diff --git a/src/test/helm/deployment_service_account_test.yaml b/src/test/helm/deployment_service_account_test.yaml
index fbf9bf795..a3c43ba41 100644
--- a/src/test/helm/deployment_service_account_test.yaml
+++ b/src/test/helm/deployment_service_account_test.yaml
@@ -33,15 +33,6 @@ set:
   ozgcloud.environment: test
   imagePullSecret: image-pull-secret
 tests:
-  - it: should use afm-adapter service account name
-    set:
-      image.name: intelliform-adapter
-      serviceAccount:
-        create: true
-    asserts:
-      - equal:
-          path: spec.template.spec.serviceAccountName
-          value: afm-adapter-service-account
   - it: should use formcycle-adapter service account name
     set:
       image.name: formcycle-adapter
diff --git a/src/test/helm/ingress_nginx_test.yaml b/src/test/helm/ingress_nginx_test.yaml
index cd36fce3a..b46286a5d 100644
--- a/src/test/helm/ingress_nginx_test.yaml
+++ b/src/test/helm/ingress_nginx_test.yaml
@@ -31,13 +31,13 @@ set:
     bezeichner: helm
 
 tests:
-  - it: should create afm ingress tls
+  - it: should create eingang ingress tls
     release:
-      name: afm-adapter
+      name: eingang-adapter
     asserts:
       - equal:
           path: spec.tls[0].secretName
-          value: helm-afm-adapter-tls
+          value: helm-eingang-adapter-tls
 
   - it: should not set secretName
     set:
diff --git a/src/test/helm/ingress_test.yaml b/src/test/helm/ingress_test.yaml
index a5a2f64fa..24dc0871a 100644
--- a/src/test/helm/ingress_test.yaml
+++ b/src/test/helm/ingress_test.yaml
@@ -63,14 +63,14 @@ tests:
       - equal:
           path: spec.rules[0].http.paths[0].pathType
           value: ImplementationSpecific
-  - it: should create afm host
+  - it: should create eingang host
     asserts:
       - equal:
           path: spec.rules[0].host
-          value: helm-afm.test.sh.ozg-cloud.de
+          value: helm-eingang.test.sh.ozg-cloud.de
       - equal:
           path: spec.tls[0].hosts[0]
-          value: helm-afm.test.sh.ozg-cloud.de
+          value: helm-eingang.test.sh.ozg-cloud.de
 
   - it: should create formcycle host
     set:
diff --git a/src/test/helm/network_policy_test.yaml b/src/test/helm/network_policy_test.yaml
index 06a416e43..d10537996 100644
--- a/src/test/helm/network_policy_test.yaml
+++ b/src/test/helm/network_policy_test.yaml
@@ -24,7 +24,7 @@
 
 suite: network policy test
 release:
-  name: afm-adapter
+  name: eingang-adapter
   namespace: by-helm-test
 templates:
   - templates/network_policy.yaml
@@ -51,7 +51,7 @@ tests:
       - equal:
           path: metadata
           value:
-            name: network-policy-afm-adapter
+            name: network-policy-eingang-adapter
             namespace: by-helm-test
   - it: validate spec
     set:
@@ -68,36 +68,36 @@ tests:
               - Ingress
               - Egress
             ingress:
-            - ports:
-              - port: 8080
-            - from:
-              - namespaceSelector:
-                  matchLabels:
-                    name: openshift-user-workload-monitoring
-              ports:
-              - protocol: TCP
-                port: 8081
+              - ports:
+                  - port: 8080
+              - from:
+                  - namespaceSelector:
+                      matchLabels:
+                        name: openshift-user-workload-monitoring
+                ports:
+                  - protocol: TCP
+                    port: 8081
             egress:
-            - to:
-              - podSelector: 
-                  matchLabels:
-                    component: vorgang-manager
-              ports:
-                - port: 9090
-                  protocol: TCP
-            - to:
-              - namespaceSelector:
-                  matchLabels:
-                    kubernetes.io/metadata.name: test-dns-namespace
-              ports:
-                - port: 53
-                  protocol: UDP
-                - port: 53
-                  protocol: TCP
-                - port: 5353
-                  protocol: UDP
-                - port: 5353
-                  protocol: TCP
+              - to:
+                  - podSelector:
+                      matchLabels:
+                        component: vorgang-manager
+                ports:
+                  - port: 9090
+                    protocol: TCP
+              - to:
+                  - namespaceSelector:
+                      matchLabels:
+                        kubernetes.io/metadata.name: test-dns-namespace
+                ports:
+                  - port: 53
+                    protocol: UDP
+                  - port: 53
+                    protocol: TCP
+                  - port: 5353
+                    protocol: UDP
+                  - port: 5353
+                    protocol: TCP
 
   - it: should set monitoring namespace
     set:
@@ -149,40 +149,39 @@ tests:
       - hasDocuments:
           count: 1
 
-
   - it: should add zufi rules when zufi-routing is enabled
     set:
       networkPolicy:
         dnsServerNamespace: test-dns-server-namespace
       routing:
         routingStrategy: ZUFI
-        zufiManager: 
+        zufiManager:
           namespace: zufi-namespace
     asserts:
-    - contains:
-        path: spec.egress
-        content:
-          to:
-          - namespaceSelector:
-              matchLabels:
-                kubernetes.io/metadata.name: zufi-namespace
-            podSelector: 
-              matchLabels:
-                component: zufi-server
-          ports:
-          - port: 9090
-            protocol: TCP
-    - contains:
-        path: spec.egress
-        content:
-          to:
-          - namespaceSelector: {}
-            podSelector: 
-              matchLabels:
-                component: vorgang-manager
-          ports:
-            - port: 9090
-              protocol: TCP
+      - contains:
+          path: spec.egress
+          content:
+            to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: zufi-namespace
+                podSelector:
+                  matchLabels:
+                    component: zufi-server
+            ports:
+              - port: 9090
+                protocol: TCP
+      - contains:
+          path: spec.egress
+          content:
+            to:
+              - namespaceSelector: {}
+                podSelector:
+                  matchLabels:
+                    component: vorgang-manager
+            ports:
+              - port: 9090
+                protocol: TCP
 
   - it: should throw error when zufi is enabled but zufi namespace not set
     set:
@@ -191,35 +190,35 @@ tests:
       routing:
         routingStrategy: ZUFI
     asserts:
-    - failedTemplate:
-        errorMessage: routing.zufiManager.namespace must be set if routingStrategy=ZUFI
+      - failedTemplate:
+          errorMessage: routing.zufiManager.namespace must be set if routingStrategy=ZUFI
 
   - it: should not add zufi rule when zufi-routing is disabled
     set:
       networkPolicy:
         dnsServerNamespace: test-dns-server-namespace
       routing:
-        zufiManager: 
+        zufiManager:
           namespace: zufi-namespace
     asserts:
-    - notContains:
-        path: spec.egress
-        content:
-          to:
-          - namespaceSelector:
-              matchLabels:
-                kubernetes.io/metadata.name: zufi-namespace
-            podSelector: 
-              matchLabels:
-                component: zufi-server
-    - notContains:
-        path: spec.egress
-        content:
-          to:
-          - namespaceSelector: {}
-            podSelector: 
-              matchLabels:
-                component: vorgang-manager
-          ports:
-            - port: 9090
-              protocol: TCP
\ No newline at end of file
+      - notContains:
+          path: spec.egress
+          content:
+            to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: zufi-namespace
+                podSelector:
+                  matchLabels:
+                    component: zufi-server
+      - notContains:
+          path: spec.egress
+          content:
+            to:
+              - namespaceSelector: {}
+                podSelector:
+                  matchLabels:
+                    component: vorgang-manager
+            ports:
+              - port: 9090
+                protocol: TCP
diff --git a/src/test/helm/service_account_test.yaml b/src/test/helm/service_account_test.yaml
index b64225463..e25b18bcf 100644
--- a/src/test/helm/service_account_test.yaml
+++ b/src/test/helm/service_account_test.yaml
@@ -29,22 +29,6 @@ release:
 templates:
   - templates/service_account.yaml
 tests:
-  - it: should create default afm adapter service account name
-    set:
-      image.name: intelliform-adapter
-      serviceAccount:
-        create: true
-    asserts:
-      - isKind:
-          of: ServiceAccount
-      - isAPIVersion:
-          of: v1
-      - equal:
-          path: metadata.name
-          value: afm-adapter-service-account
-      - equal:
-          path: metadata.namespace
-          value: sh-helm-test
   - it: should create default formcycle adapter service account name
     set:
       image.name: formcycle-adapter
diff --git a/src/test/helm/service_monitor_test.yaml b/src/test/helm/service_monitor_test.yaml
index 8c4a1b5b0..ccc71edd8 100644
--- a/src/test/helm/service_monitor_test.yaml
+++ b/src/test/helm/service_monitor_test.yaml
@@ -24,12 +24,12 @@
 
 suite: test service monitor
 release:
-  name: afm-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - templates/service_monitor.yaml
 tests:
-  - it: should have basic info and the label component with value afm-adapter-service-monitor attached
+  - it: should have basic info and the label component with value eingang-adapter-service-monitor attached
     asserts:
       - isKind:
           of: ServiceMonitor
@@ -37,26 +37,26 @@ tests:
           of: monitoring.coreos.com/v1
       - equal:
           path: metadata.name
-          value: afm-adapter
+          value: eingang-adapter
       - equal:
           path: metadata.namespace
           value: sh-helm-test
       - equal:
           path: metadata.labels["component"]
-          value: afm-adapter-service-monitor
+          value: eingang-adapter-service-monitor
 
   - it: should contain default lables and component lables
     asserts:
       - equal:
           path: metadata.labels
           value:
-            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/instance: eingang-adapter
             app.kubernetes.io/managed-by: Helm
-            app.kubernetes.io/name: afm-adapter
+            app.kubernetes.io/name: eingang-adapter
             app.kubernetes.io/namespace: sh-helm-test
             app.kubernetes.io/part-of: ozgcloud
             app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
-            component: afm-adapter-service-monitor
+            component: eingang-adapter-service-monitor
             helm.sh/chart: eingang-adapter-0.0.0-MANAGED-BY-JENKINS
             ozg-component: eingangsadapter
 
@@ -81,16 +81,16 @@ tests:
       - contains:
           path: spec.namespaceSelector.matchNames
           content: sh-helm-test
-  - it: selector should contain the component label with the value afm-adapter-service
+  - it: selector should contain the component label with the value eingang-adapter-service
     asserts:
       - equal:
           path: spec.selector.matchLabels["component"]
-          value: afm-adapter-service
+          value: eingang-adapter-service
   - it: selector should contain helm recommended labels name and namespace
     asserts:
       - equal:
           path: spec.selector.matchLabels["app.kubernetes.io/name"]
-          value: afm-adapter
+          value: eingang-adapter
       - equal:
           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 bec1a28db..16119984f 100644
--- a/src/test/helm/service_test.yaml
+++ b/src/test/helm/service_test.yaml
@@ -24,12 +24,12 @@
 
 suite: test service
 release:
-  name: afm-adapter
+  name: eingang-adapter
   namespace: sh-helm-test
 templates:
   - templates/service.yaml
 tests:
-  - it: should have basics and the label component with value afm-adapter-service attached
+  - it: should have basics and the label component with value eingang-adapter-service attached
     asserts:
       - isKind:
           of: Service
@@ -37,10 +37,10 @@ tests:
           of: v1
       - equal:
           path: metadata.labels["component"]
-          value: afm-adapter-service
+          value: eingang-adapter-service
       - equal:
           path: metadata.name
-          value: afm-adapter
+          value: eingang-adapter
       - equal:
           path: metadata.namespace
           value: sh-helm-test
@@ -70,16 +70,16 @@ tests:
             protocol: TCP
           count: 1
           any: true
-  - it: selector should contain the component label with the value afm-adapter
+  - it: selector should contain the component label with the value eingang-adapter
     asserts:
       - equal:
           path: spec.selector["component"]
-          value: afm-adapter
+          value: eingang-adapter
   - it: selector should contain helm recommended labels name and namespace
     asserts:
       - equal:
           path: spec.selector["app.kubernetes.io/name"]
-          value: afm-adapter
+          value: eingang-adapter
       - equal:
           path: spec.selector["app.kubernetes.io/namespace"]
           value: sh-helm-test
@@ -89,12 +89,12 @@ tests:
       - equal:
           path: metadata.labels
           value:
-            app.kubernetes.io/instance: afm-adapter
+            app.kubernetes.io/instance: eingang-adapter
             app.kubernetes.io/managed-by: Helm
-            app.kubernetes.io/name: afm-adapter
+            app.kubernetes.io/name: eingang-adapter
             app.kubernetes.io/namespace: sh-helm-test
             app.kubernetes.io/part-of: ozgcloud
             app.kubernetes.io/version: 0.0.0-MANAGED-BY-JENKINS
-            component: afm-adapter-service
+            component: eingang-adapter-service
             helm.sh/chart: eingang-adapter-0.0.0-MANAGED-BY-JENKINS
             ozg-component: eingangsadapter
-- 
GitLab


From bd65c7168ab5757dd32bea9e842ddc20bac103dc Mon Sep 17 00:00:00 2001
From: Felix Reichenbach <felix.reichenbach@mgm-tp.com>
Date: Fri, 7 Feb 2025 16:34:46 +0100
Subject: [PATCH 7/7] remove test connection charts

---
 .../tests/test-ingress-connection.yaml        | 39 -------------------
 .../tests/test-service-connection.yaml        | 39 -------------------
 2 files changed, 78 deletions(-)
 delete mode 100644 src/main/helm/templates/tests/test-ingress-connection.yaml
 delete mode 100644 src/main/helm/templates/tests/test-service-connection.yaml

diff --git a/src/main/helm/templates/tests/test-ingress-connection.yaml b/src/main/helm/templates/tests/test-ingress-connection.yaml
deleted file mode 100644
index 6d33a4e54..000000000
--- a/src/main/helm/templates/tests/test-ingress-connection.yaml
+++ /dev/null
@@ -1,39 +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.
-#
-
-apiVersion: v1
-kind: Pod
-metadata:
-  name: "{{ .Release.Name }}-test-ingress"
-  labels:
-    {{- include "app.matchLabels" . | nindent 4 }}
-  annotations:
-    "helm.sh/hook": test
-spec:
-  containers:
-    - name: wget
-      image: busybox
-      command: ['wget']
-      args: ['https://{{ .Values.ingress.host }}/ws/intelliform_formDatas.wsdl']
-  restartPolicy: Never
diff --git a/src/main/helm/templates/tests/test-service-connection.yaml b/src/main/helm/templates/tests/test-service-connection.yaml
deleted file mode 100644
index 62dda4f5e..000000000
--- a/src/main/helm/templates/tests/test-service-connection.yaml
+++ /dev/null
@@ -1,39 +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.
-#
-
-apiVersion: v1
-kind: Pod
-metadata:
-  name: "{{ .Release.Name }}-test-connection"
-  labels:
-    {{- include "app.matchLabels" . | nindent 4 }}
-  annotations:
-    "helm.sh/hook": test
-spec:
-  containers:
-    - name: wget
-      image: busybox
-      command: ['wget']
-      args: ['{{ .Release.Name }}:8080/ws/intelliform_formDatas.wsdl']
-  restartPolicy: Never
-- 
GitLab