diff --git a/xta-adapter/run_helm_test.sh b/xta-adapter/run_helm_test.sh
new file mode 100755
index 0000000000000000000000000000000000000000..9e10b8f0eafbab2eac176bd51e453caedabec7fa
--- /dev/null
+++ b/xta-adapter/run_helm_test.sh
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+set -e
+
+helm template  ./src/main/helm/ -f src/main/helm/test-values.yaml
+helm lint -f src/test/helm/values/unit-values.yaml ./src/main/helm/
+cd src/main/helm && helm unittest --helm3 -f '../../test/helm/*.yaml' -v '../../test/helm/values/unit-values.yaml' .
\ No newline at end of file
diff --git a/xta-adapter/src/main/helm/templates/network_policy.yaml b/xta-adapter/src/main/helm/templates/network_policy.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6c806c791f303f964ff490aeeae6daa7e469098d
--- /dev/null
+++ b/xta-adapter/src/main/helm/templates/network_policy.yaml
@@ -0,0 +1,68 @@
+#
+# 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 not (.Values.networkPolicy).disabled }} 
+apiVersion: networking.k8s.io/v1
+kind: NetworkPolicy
+metadata:
+  name: network-policy-xta-adapter
+  namespace: {{ .Release.Namespace }} 
+spec:
+  podSelector:
+    matchLabels:
+      ozg-component: xta-adapter
+  policyTypes:
+    - Egress
+  egress:
+  - to:
+    - podSelector: 
+        matchLabels:
+          component: pluto
+    ports:
+      - port: 9090
+        protocol: TCP
+  - to:
+    - namespaceSelector:
+        matchLabels:
+          kubernetes.io/metadata.name: kube-system
+      podSelector:
+        matchLabels:
+          k8s-app: kube-dns
+    ports:
+      - port: 53
+        protocol: UDP
+      - port: 53
+        protocol: TCP
+  - to:
+    - namespaceSelector:
+        matchLabels:
+          kubernetes.io/metadata.name: ssh-port-forward
+      ports:
+      - port: 9000
+        protocol: TCP
+  {{- with (.Values.networkPolicy).additionalEgressConfig }}
+  - to:
+{{ toYaml . | indent 8 }}
+  {{- end }}
+{{- end }} 
\ No newline at end of file
diff --git a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
index 47aa8cd899a803aac2fa5105f738e8260d5c562a..371dda54180538f75faee51ae976f1f7fb7d1533 100644
--- a/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
+++ b/xta-adapter/src/main/helm/templates/xta_adapter_cronjob.yaml
@@ -42,6 +42,7 @@ spec:
         metadata:
           labels:
             workload: xta-adapter-cronjob
+            ozg-component: xta-adapter
         spec:
           restartPolicy: Never
           containers:
diff --git a/xta-adapter/src/test/helm/network_policy_test.yaml b/xta-adapter/src/test/helm/network_policy_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..79daaa6a8810843c21adccd3d0f001b220ae219b
--- /dev/null
+++ b/xta-adapter/src/test/helm/network_policy_test.yaml
@@ -0,0 +1,140 @@
+#
+# 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: network policy test
+release:
+  namespace: by-helm-test
+templates:
+  - templates/network_policy.yaml
+tests:
+  - it: should match apiVersion
+    asserts:
+      - isAPIVersion:
+          of: networking.k8s.io/v1
+  - it: should match kind
+    asserts:
+      - isKind:
+          of: NetworkPolicy
+  - it: validate metadata
+    asserts:
+      - equal:
+          path: metadata
+          value:
+            name: network-policy-xta-adapter
+            namespace: by-helm-test
+  - it: validate spec
+    asserts:
+      - equal:
+          path: spec
+          value:
+            podSelector:
+              matchLabels:
+                ozg-component: xta-adapter
+            policyTypes:
+              - Egress
+            egress:
+            - to:
+              - podSelector: 
+                  matchLabels:
+                    component: pluto
+              ports:
+                - port: 9090
+                  protocol: TCP
+            - to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: kube-system
+                podSelector:
+                  matchLabels:
+                    k8s-app: kube-dns
+              ports:
+                - port: 53
+                  protocol: UDP
+                - port: 53
+                  protocol: TCP
+            - to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: ssh-port-forward
+                ports:
+                - port: 9000
+                  protocol: TCP
+
+  - it: add ingress rule by values
+    set:
+      networkPolicy:
+        additionalEgressConfig:
+        - podSelector: 
+            matchLabels:
+              component: client2
+    asserts:
+      - equal:
+          path: spec.egress
+          value:
+            - to:
+              - podSelector: 
+                  matchLabels:
+                    component: pluto
+              ports:
+                - port: 9090
+                  protocol: TCP
+            - to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: kube-system
+                podSelector:
+                  matchLabels:
+                    k8s-app: kube-dns
+              ports:
+                - port: 53
+                  protocol: UDP
+                - port: 53
+                  protocol: TCP
+            - to:
+              - namespaceSelector:
+                  matchLabels:
+                    kubernetes.io/metadata.name: ssh-port-forward
+                ports:
+                - port: 9000
+                  protocol: TCP
+            - to:
+              - podSelector: 
+                  matchLabels:
+                    component: client2
+
+  - it: test network policy disabled
+    set:
+      networkPolicy:
+        disabled: true
+    asserts:
+      - hasDocuments:
+          count: 0
+
+  - it: test network policy unset should be disabled
+    set:
+      networkPolicy:
+        disabled: false
+    asserts:
+      - hasDocuments:
+          count: 1
\ No newline at end of file
diff --git a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
index 3e0ec759c0446fb34062e1934d8dc7bd775225e9..ba879bf700afd49f57a299118130cdd42e3d30c4 100644
--- a/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
+++ b/xta-adapter/src/test/helm/xta_adapter_cronjob_basic_test.yaml
@@ -99,4 +99,13 @@ tests:
         value: false
     - equal:
         path: spec.jobTemplate.spec.template.spec.containers[0].securityContext.runAsNonRoot
-        value: false
\ No newline at end of file
+        value: false
+  
+  - it: check pod labels
+    template: xta_adapter_cronjob.yaml
+    asserts:
+    - equal:
+        path: spec.jobTemplate.spec.template.metadata.labels
+        value: 
+          ozg-component: xta-adapter
+          workload: xta-adapter-cronjob