diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/_helpers.tpl b/ozgcloud-elasticsearch-operator/src/main/helm/templates/_helpers.tpl
new file mode 100644
index 0000000000000000000000000000000000000000..5b08fa932ccbeb01edc1aea23eb199f904d2c8c9
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/_helpers.tpl
@@ -0,0 +1,7 @@
+
+
+
+{{- define "app.matchLabels" }}
+app.kubernetes.io/name: {{ .Release.Name }}
+app.kubernetes.io/namespace: {{ .Release.Namespace }}
+{{- end -}}
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml
index a4709f63b636d2d008b48484f0743f00fbf76df2..bbb564af71b8d78cf0d1400354d10026cc40fddb 100644
--- a/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/crd/operator.ozgcloud.de_OzgCloudElasticsearch.yaml
@@ -15,7 +15,7 @@ spec:
     schema:
       openAPIV3Schema:
         type: object
-        description: OzgCloudElasticsearch is the Schema for the keycloaks API
+        description: OzgCloudElasticsearch is the Schema for the elasticsearch API
         properties:
           apiVersion:
             description: 'APIVersion defines the versioned schema of this representation
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/deployment.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/deployment.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5f7c5a8e9a496f9cf9154d1aee698c23f26afd59
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/deployment.yaml
@@ -0,0 +1,93 @@
+#
+# 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.
+#
+
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: {{ .Release.Name }}
+  namespace: {{ .Release.Namespace }}
+  labels:
+    app.kubernetes.io/instance: {{ .Release.Name }}
+    app.kubernetes.io/managed-by: {{ .Release.Service }}
+    app.kubernetes.io/name: {{ .Release.Name }}
+    app.kubernetes.io/namespace: {{ .Release.Namespace }}
+    app.kubernetes.io/part-of: ozg
+    app.kubernetes.io/version: {{ .Chart.AppVersion }}
+    helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
+spec:
+  selector:
+    matchLabels:
+    {{- include "app.matchLabels" . | indent 6 }}
+  template:
+    metadata:
+      labels:
+      {{- include "app.matchLabels" . | indent 8 }}
+    spec:
+      serviceAccountName: ozgcloud-elasticsearch-operator-serviceaccount
+      containers:
+      - name: ozgcloud-elasticsearch-operator
+        image: "{{ required "image.repo must be set" (.Values.image).repo }}/{{ required "image.name must be set" (.Values.image).name }}:{{ required "image.tag must be set" (.Values.image).tag }}"
+        env:
+        {{- with (.Values.env).customList }}
+{{ toYaml . | indent 8 }}
+        {{- end }}
+        imagePullPolicy: Always
+        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
+        resources:
+        {{- with .Values.resources }}
+{{ toYaml . | indent 10 }}
+        {{- end }}
+        securityContext:
+          allowPrivilegeEscalation: false
+          privileged: false
+          readOnlyRootFilesystem: false
+          runAsNonRoot: true
+        stdin: true
+        terminationMessagePath: /dev/termination-log
+        terminationMessagePolicy: File
+        tty: true
+      dnsConfig: {}
+      dnsPolicy: ClusterFirst
+      imagePullSecrets:
+      - name: {{ required "imagePullSecret must be set" .Values.imagePullSecret }}
+      restartPolicy: Always
+
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_edit_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_edit_role.yaml
deleted file mode 100644
index 8c47d52dec2b59033df18db810b85995218b8f8d..0000000000000000000000000000000000000000
--- a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_edit_role.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: elasticsearch-edit-role
-  labels:
-    app.kubernetes.io/name: clusterrole
-    app.kubernetes.io/instance: elasticsearch-edit-role
-    app.kubernetes.io/component: rbac
-    app.kubernetes.io/created-by: ozgcloud-operator
-    app.kubernetes.io/part-of: ozgcloud-operator
-    app.kubernetes.io/managed-by: kustomize
-rules:
-- apiGroups:
-  - api.ozgcloud-stack.de
-  resources:
-  - ozgcloudelasticsearches
-  verbs:
-  - create
-  - delete
-  - get
-  - list
-  - patch
-  - update
-  - watch
-- apiGroups:
-  - api.ozgcloud-stack.de
-  resources:
-  - ozgcloudelasticsearches/status
-  verbs:
-  - get
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_view_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_view_role.yaml
deleted file mode 100644
index 04d9878be43ddea92c921d1fc22350327f5bf7b0..0000000000000000000000000000000000000000
--- a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/elasticsearch_view_role.yaml
+++ /dev/null
@@ -1,26 +0,0 @@
-apiVersion: rbac.authorization.k8s.io/v1
-kind: ClusterRole
-metadata:
-  name: elasticsearch-view-role
-  labels:
-    app.kubernetes.io/name: clusterrole
-    app.kubernetes.io/instance: elasticsearch-view-role
-    app.kubernetes.io/component: rbac
-    app.kubernetes.io/created-by: ozgcloud-operator
-    app.kubernetes.io/part-of: ozgcloud-operator
-    app.kubernetes.io/managed-by: kustomize
-rules:
-- apiGroups:
-  - api.ozgcloud-stack.de
-  resources:
-  - ozgcloudelasticsearches
-  verbs:
-  - get
-  - list
-  - watch
-- apiGroups:
-  - api.ozgcloud-stack.de
-  resources:
-  - ozgcloudelasticsearches/status
-  verbs:
-  - get
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f5bfed6b3b73b010e2622492b6c8ef5aa6b7437b
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml
@@ -0,0 +1,38 @@
+#
+# 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.
+#
+
+kind: Role
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elasticsearch-operator-admin-secret-view-role
+  namespace: {{ required "elasticsearch.namespace must be set" (.Values.elasticsearch).namespace }}
+rules:
+  - apiGroups:
+      - ""
+    resourceNames:
+      - {{ required "elasticsearch.adminSecretName must be set" (.Values.elasticsearch).adminSecretName }}
+    resources:
+      - secrets
+    verbs:
+      - get
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..f17704d5bd024797b643bcbf6e06d095ded6fa77
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml
@@ -0,0 +1,37 @@
+#
+# 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.
+#
+
+kind: RoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elasticsearch-operator-admin-secret-view-role-binding
+  namespace: {{ required "elasticsearch.namespace must be set" (.Values.elasticsearch).namespace }}
+subjects:
+  - kind: ServiceAccount
+    name: ozgcloud-elasticsearch-operator-serviceaccount
+    namespace: {{ .Release.Namespace }}
+roleRef:
+  kind: Role
+  name: ozgcloud-elasticsearch-operator-admin-secret-view-role
+  apiGroup: rbac.authorization.k8s.io
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6d1374db245847f4616041d850d657f9b3f7bca0
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml
@@ -0,0 +1,18 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: ozgcloud-elasticsearch-operator-edit-role
+  labels:
+    app.kubernetes.io/name: {{ .Release.Name }}
+    app.kubernetes.io/instance: {{ .Release.Name }}
+    app.kubernetes.io/component: ozgcloud-elasticsearch-operator
+rules:
+- apiGroups:
+  - operator.ozgcloud.de
+  resources:
+  - ozgcloudelasticsearchs
+  - ozgcloudelasticsearchs/status
+  - ozgcloudelasticsearchs/finalizers
+  verbs:
+  - patch
+  - update
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..856aa637f4164e537213ebe1415dbee0e1137e61
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml
@@ -0,0 +1,13 @@
+
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elasticsearch-operator-edit-role-binding
+subjects:
+  - kind: ServiceAccount
+    name: ozgcloud-elasticsearch-operator-serviceaccount
+    namespace: {{ .Release.Namespace }}
+roleRef:
+  kind: ClusterRole
+  name: ozgcloud-elasticsearch-operator-edit-role
+  apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..a1441499d95af95ada1da6ab84ec0e3584abc095
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml
@@ -0,0 +1,28 @@
+#
+# 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.
+#
+apiVersion: v1
+kind: ServiceAccount
+metadata:
+  name: ozgcloud-elasticsearch-operator-serviceaccount
+  namespace: {{ .Release.Namespace }}
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..7ef9bb0ec1be7ec0b02a93cf6ed26cebd2b459d5
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml
@@ -0,0 +1,19 @@
+apiVersion: rbac.authorization.k8s.io/v1
+kind: ClusterRole
+metadata:
+  name: ozgcloud-elasticsearch-operator-view-role
+  labels:
+    app.kubernetes.io/name: {{ .Release.Name }}
+    app.kubernetes.io/instance: {{ .Release.Name }}
+    app.kubernetes.io/component: ozgcloud-elasticsearch-operator
+rules:
+- apiGroups:
+  - operator.ozgcloud.de
+  resources:
+  - ozgcloudelasticsearchs
+  - ozgcloudelasticsearchs/status
+  - ozgcloudelasticsearchs/finalizers
+  verbs:
+  - get
+  - list
+  - watch
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..150d7509b3921c1e5815e3a83e9eaf44d4f2258f
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml
@@ -0,0 +1,13 @@
+
+kind: ClusterRoleBinding
+apiVersion: rbac.authorization.k8s.io/v1
+metadata:
+  name: ozgcloud-elasticsearch-operator-view-role-binding
+subjects:
+  - kind: ServiceAccount
+    name: ozgcloud-elasticsearch-operator-serviceaccount
+    namespace: {{ .Release.Namespace }}
+roleRef:
+  kind: ClusterRole
+  name: ozgcloud-elasticsearch-operator-view-role
+  apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/main/helm/values.yaml b/ozgcloud-elasticsearch-operator/src/main/helm/values.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..d041f12534740c122e8380834bd143f994054b0b
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/main/helm/values.yaml
@@ -0,0 +1,7 @@
+
+image:
+  repo: docker.ozg-sh.de
+
+elasticsearch:
+    namespace: elastic-system
+    adminSecretName: ozg-search-cluster-es-elastic-user
diff --git a/ozgcloud-elasticsearch-operator/src/main/resources/application.yml b/ozgcloud-elasticsearch-operator/src/main/resources/application.yml
index 620fb6ff1e758e815ee9dc661b204f9832eda9f4..8339830ed51a9f1a1a7c9108f4b276af252887f4 100644
--- a/ozgcloud-elasticsearch-operator/src/main/resources/application.yml
+++ b/ozgcloud-elasticsearch-operator/src/main/resources/application.yml
@@ -6,4 +6,27 @@ ozgcloud:
     secretCredentialsName: elasticsearch-credentials
     host: ozg-search-cluster-es-http
     port: 9200
-    scheme: https
\ No newline at end of file
+    scheme: https
+
+management:
+  server:
+    port: 8081
+  health:
+    livenessState:
+      enabled: true
+    readinessState:
+      enabled: true
+  endpoint:
+    health:
+      group:
+        exploratory:
+          include: livenessState,readinessState,ping
+          show-details: always
+      probes:
+        enabled: true
+    prometheus:
+      enabled: true
+  endpoints:
+    web:
+      exposure:
+        include: "*"
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml
index 076fa2afd2d0d765be02cca072fcbd2add560578..8e66bce6f29772a0e7051e326aa106a396d182b6 100644
--- a/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/crd/operator.ozgcloud.de_OzgCloudElasticsearch_versions_v1_test.yaml
@@ -11,7 +11,7 @@ tests:
     asserts: 
       - equal:
           path: spec.versions[0].schema.openAPIV3Schema.description
-          value: OzgCloudElasticsearch is the Schema for the keycloaks API
+          value: OzgCloudElasticsearch is the Schema for the elasticsearch API
   - it: should have versions schema type
     asserts: 
       - equal:
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_container_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_container_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..462e66f312dc001e037e1684545c168375caead4
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_container_test.yaml
@@ -0,0 +1,93 @@
+#
+# 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 container test
+release:
+  name: elastic-test-operator
+  namespace: sh-helm-test
+templates:
+  - deployment.yaml
+tests:
+  - it: validate image type and container image
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].name
+          value: ozgcloud-elasticsearch-operator
+      - equal:
+          path: spec.template.spec.containers[0].image
+          value: docker.ozg-sh.de/hase:latest
+      - equal:
+          path: spec.template.spec.containers[0].imagePullPolicy
+          value: Always
+
+  - it: validate health checks
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].readinessProbe
+          value: 
+            failureThreshold: 3
+            httpGet:
+              path: /actuator/health/readiness
+              port: 8081
+              scheme: HTTP
+            periodSeconds: 10
+            successThreshold: 1
+            timeoutSeconds: 3
+      - equal:
+          path: spec.template.spec.containers[0].startupProbe
+          value: 
+            failureThreshold: 10
+            httpGet:
+              path: /actuator/health/readiness
+              port: 8081
+              scheme: HTTP
+            initialDelaySeconds: 30
+            periodSeconds: 5
+            successThreshold: 1
+            timeoutSeconds: 5
+
+  - it: validate security context
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.containers[0].securityContext
+          value: 
+            allowPrivilegeEscalation: false
+            privileged: false
+            readOnlyRootFilesystem: false
+            runAsNonRoot: true
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_env_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_env_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..0179c95b140f6f2cbdf14fb0ebb7a0576da5f807
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_env_test.yaml
@@ -0,0 +1,45 @@
+#
+# 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 environments
+templates:
+  - templates/deployment.yaml
+tests:
+  - it: check customList
+    template: deployment.yaml
+    set:
+      env.customList:
+        - name: my_test_environment_name
+          value: "A test value"
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - contains:
+          path: spec.template.spec.containers[0].env
+          content:
+            name: my_test_environment_name
+            value: "A test value"
+
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_matchlabels_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_matchlabels_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..6b20b3d2f94de47d71794c8110acfd824b48ff57
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_matchlabels_test.yaml
@@ -0,0 +1,51 @@
+#
+# 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 matchlabels
+release:
+  name: ozgcloud-elasticsearch-operator
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+tests:
+  - it: check matchlabels
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.selector.matchLabels.[app.kubernetes.io/name]
+          value: ozgcloud-elasticsearch-operator
+      - equal:
+          path: spec.selector.matchLabels.[app.kubernetes.io/namespace]
+          value: sh-helm-test
+
+      - equal:
+          path: spec.template.metadata.labels.[app.kubernetes.io/name]
+          value: ozgcloud-elasticsearch-operator
+      - equal:
+          path: spec.template.metadata.labels.[app.kubernetes.io/namespace]
+          value: sh-helm-test
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_metadata_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_metadata_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9679c3b4b5b17e6fbd6b920f0fc14bcf3b9c9464
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_metadata_test.yaml
@@ -0,0 +1,70 @@
+#
+# 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 test metadata
+release:
+  name: ozgcloud-elasticsearch-operator
+  namespace: sh-helm-test
+templates:
+  - templates/deployment.yaml
+tests:
+  - it: check metadata labels
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/instance]
+          value: ozgcloud-elasticsearch-operator
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/name]
+          value: ozgcloud-elasticsearch-operator
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/part-of]
+          value: ozg
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/namespace]
+          value: sh-helm-test
+  - it: check metadata name
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator
+  - it: check metadata namespace
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: metadata.namespace
+          value: sh-helm-test
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_pull_secret_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_pull_secret_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..983d2758b0eb06d149ad1b11264cf07890566517
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_pull_secret_test.yaml
@@ -0,0 +1,42 @@
+#
+# 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 pull secret
+release:
+  name: ozgcloud-elasticsearch-operator
+  namespace: sh-helm-test
+templates:
+  - deployment.yaml
+tests:
+  - it: validate image pull secret resource name
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.imagePullSecrets[0].name
+          value: imagePullSecret
+
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_resources_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_resources_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5e871d26719f7d886e29729a2134f75419fd4aae
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_resources_test.yaml
@@ -0,0 +1,67 @@
+#
+# 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 resources test
+release:
+  name: afm-adapter
+templates:
+  - templates/deployment.yaml
+tests:
+  - it: test resources
+    set:
+      resources:
+        limits:
+          cpu: "11m"
+          memory: "22Mi"
+        requests:
+          cpu: "33m"
+          memory: "44Mi"
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    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
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - isEmpty:
+          path: spec.template.spec.containers[0].resources
+
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_template_spec_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_template_spec_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..8ec9dbacd2267f9b2579ca4c5e2e57330edf10f6
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_template_spec_test.yaml
@@ -0,0 +1,66 @@
+#
+# 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 templace spec test
+release:
+  name: elastic-test-operator
+  namespace: sh-helm-test
+templates:
+  - deployment.yaml
+tests:
+  - it: validate serviceaccount name
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.serviceAccountName
+          value: ozgcloud-elasticsearch-operator-serviceaccount
+    
+  - it: validate restartPolicy
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.restartPolicy
+          value: Always
+
+  - it: validate dns config
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - equal:
+          path: spec.template.spec.dnsConfig
+          value: {}
+      - equal:
+          path: spec.template.spec.dnsPolicy
+          value: ClusterFirst
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/deployment_type_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_type_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e992e29f94ea59c82a59b616a7db948864061c56
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/deployment_type_test.yaml
@@ -0,0 +1,43 @@
+#
+# 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 type test
+release:
+  name: elastic-test-operator
+  namespace: sh-helm-test
+templates:
+  - deployment.yaml
+tests:
+  - it: validate template type and api Version
+    set:
+      image:
+        name: hase
+        tag: latest
+      imagePullSecret: imagePullSecret
+    asserts:
+      - isKind:
+          of: Deployment
+      - isAPIVersion:
+          of: apps/v1
+
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..26396d4dabc581060d0e9396ef07233f7576f6cb 100644
--- a/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/linter_values.yaml
@@ -0,0 +1,6 @@
+
+image:
+  name: test
+  tag: latest
+
+imagePullSecret: "docker-secret"
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_edit_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_edit_role_test.yaml
deleted file mode 100644
index 6b3bcc3f9bbc22b59f2a5ba6df62f3aa672e373a..0000000000000000000000000000000000000000
--- a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_edit_role_test.yaml
+++ /dev/null
@@ -1,79 +0,0 @@
-suite: elasticsearch_edit_role test
-templates:
-  - templates/rbac/elasticsearch_edit_role.yaml
-tests:
-  - it: should have apiVersion
-    asserts: 
-      - equal:
-          path: apiVersion
-          value: rbac.authorization.k8s.io/v1
-  - it: should have isKind of
-    asserts:
-      - isKind:
-          of: ClusterRole
-
-  - it: should have metadata name
-    asserts:
-      - equal:
-          path: metadata.name
-          value: elasticsearch-edit-role
-  - it: should have metadata labels name
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/name]
-          value: clusterrole
-  - it: should have metadata labels instance
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/instance]
-          value: elasticsearch-edit-role
-  - it: should have metadata labels component
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/component]
-          value: rbac
-  - it: should have metadata labels created-by
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/created-by]
-          value: ozgcloud-operator
-  - it: should have metadata labels part-of
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/part-of]
-          value: ozgcloud-operator
-  - it: should have metadata labels managed-by
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/managed-by]
-          value: kustomize
-
-  - it: should have rules for ozgcloudelasticsearches resource
-    asserts:
-      - contains:
-          path: rules
-          content:
-            apiGroups:
-              - api.ozgcloud-stack.de
-            resources:
-              - ozgcloudelasticsearches
-            verbs:
-              - create
-              - delete
-              - get
-              - list
-              - patch
-              - update
-              - watch
-              
-  - it: should have rules for ozgcloudelasticsearches/status resource
-    asserts:
-      - contains:
-          path: rules
-          content:
-              apiGroups:
-                - api.ozgcloud-stack.de
-              resources:
-                - ozgcloudelasticsearches/status
-              verbs:
-                - get
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_view_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_view_role_test.yaml
deleted file mode 100644
index d5848807e80aa0a49c677e1e86f59f9725e81578..0000000000000000000000000000000000000000
--- a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/elasticsearch_view_role_test.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-suite: elasticsearch_view_role test
-templates:
-  - templates/rbac/elasticsearch_view_role.yaml
-tests:
-  - it: should have apiVersion
-    asserts: 
-      - equal:
-          path: apiVersion
-          value: rbac.authorization.k8s.io/v1
-  - it: should have isKind of
-    asserts:
-      - isKind:
-          of: ClusterRole
-
-  - it: should have metadata name
-    asserts:
-      - equal:
-          path: metadata.name
-          value: elasticsearch-view-role
-  - it: should have metadata labels name
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/name]
-          value: clusterrole
-  - it: should have metadata labels instance
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/instance]
-          value: elasticsearch-view-role
-  - it: should have metadata labels component
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/component]
-          value: rbac
-  - it: should have metadata labels created-by
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/created-by]
-          value: ozgcloud-operator
-  - it: should have metadata labels part-of
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/part-of]
-          value: ozgcloud-operator
-  - it: should have metadata labels managed-by
-    asserts: 
-      - equal:
-          path: metadata.labels.[app.kubernetes.io/managed-by]
-          value: kustomize
-
-  - it: should have rules for ozgcloudelasticsearches resource
-    asserts:
-      - contains:
-          path: rules
-          content:
-              apiGroups:
-                - api.ozgcloud-stack.de
-              resources:
-                - ozgcloudelasticsearches
-              verbs:
-                - get
-                - list
-                - watch
-
-  - it: should have rules for ozgcloudelasticsearches/status resource
-    asserts:
-      - contains:
-          path: rules
-          content:
-            apiGroups:
-              - api.ozgcloud-stack.de
-            resources:
-              - ozgcloudelasticsearches/status
-            verbs:
-              - get
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..ced2580af6be30cfcd2428d3703286b5491a94b2
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role_test.yaml
@@ -0,0 +1,68 @@
+#
+# 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: Elasticsearch admin secret view role test
+release:
+  name: ozgcloud-elasticsearch-operator
+  namespace: test-namespace
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_role.yaml
+tests:
+  - it: should have apiVersion
+    asserts: 
+      - equal:
+          path: apiVersion
+          value: rbac.authorization.k8s.io/v1
+  - it: should have isKind of
+    asserts:
+      - isKind:
+          of: Role
+
+  - it: should have metadata name
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-admin-secret-view-role
+  - it: should have metadata namespace
+    asserts:
+      - equal:
+          path: metadata.namespace
+          value: elastic-system
+  
+
+  - it: should have rules for ozgcloudelasticsearches resource
+    asserts:
+      - equal:
+          path: rules
+          value:
+            - apiGroups:
+                - ""
+              resourceNames:
+                - ozg-search-cluster-es-elastic-user
+              resources:
+                - secrets
+              verbs:
+                - get
+      
+      
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..9cde6cc508e89f8f45d7f5afa55737d94783c826
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding_test.yaml
@@ -0,0 +1,64 @@
+#
+# 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: Elasticsearch admin secret view rolebinding test
+release:
+  name: ozgcloud-elasticsearch-operator
+  namespace: sh-helm-test
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_admin_secret_view_rolebinding.yaml
+tests:
+  - it: should have apiVersion
+    asserts: 
+      - equal:
+          path: apiVersion
+          value: rbac.authorization.k8s.io/v1
+  - it: should have isKind of
+    asserts:
+      - isKind:
+          of: RoleBinding
+
+  - it: should have metadata name
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-admin-secret-view-role-binding
+
+  - it: should have subjects
+    asserts:
+      - equal:
+          path: subjects
+          value:
+            - kind: ServiceAccount
+              name: ozgcloud-elasticsearch-operator-serviceaccount
+              namespace: sh-helm-test
+
+  - it: should have roleRef
+    asserts:
+      - equal:
+          path: roleRef
+          value:
+            kind: Role
+            name: ozgcloud-elasticsearch-operator-admin-secret-view-role
+            apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_role_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..078cf0a0cf2fd7498271d63ca3fb6e686b85e71a
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_role_test.yaml
@@ -0,0 +1,53 @@
+suite: elasticsearch_edit_role test
+release:
+  name: release-name
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_edit_role.yaml
+tests:
+  - it: should have apiVersion
+    asserts: 
+      - equal:
+          path: apiVersion
+          value: rbac.authorization.k8s.io/v1
+  - it: should have isKind of
+    asserts:
+      - isKind:
+          of: ClusterRole
+
+  - it: should have metadata name
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-edit-role
+  - it: should have metadata labels name
+    asserts: 
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/name]
+          value: release-name
+  - it: should have metadata labels instance
+    asserts: 
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/instance]
+          value: release-name
+  - it: should have metadata labels component
+    asserts: 
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/component]
+          value: ozgcloud-elasticsearch-operator
+
+  - it: should have rules for ozgcloudelasticsearchs resource
+    asserts:
+      - contains:
+          path: rules
+          content:
+            apiGroups:
+              - operator.ozgcloud.de
+            resources:
+              - ozgcloudelasticsearchs
+              - ozgcloudelasticsearchs/status
+              - ozgcloudelasticsearchs/finalizers
+            verbs:
+              - patch
+              - update
+      
+      
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..25e7418ed1558fa4c2d0ca7274c05442477a70d0
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding_test.yaml
@@ -0,0 +1,41 @@
+
+
+suite: elasticsearch_view_rolebinding test
+release:
+  namespace: sh-helm-test
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_view_rolebinding.yaml
+tests:
+  - it: should have apiVersion
+    asserts: 
+      - equal:
+          path: apiVersion
+          value: rbac.authorization.k8s.io/v1
+  - it: should have isKind of
+    asserts:
+      - isKind:
+          of: ClusterRoleBinding
+
+  - it: should have metadata name
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-view-role-binding
+
+  - it: should have subjects
+    asserts:
+      - equal:
+          path: subjects
+          value:
+            - kind: ServiceAccount
+              name: ozgcloud-elasticsearch-operator-serviceaccount
+              namespace: sh-helm-test
+
+  - it: should have roleRef
+    asserts:
+      - equal:
+          path: roleRef
+          value:
+            kind: ClusterRole
+            name: ozgcloud-elasticsearch-operator-view-role
+            apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_serviceaccount_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_serviceaccount_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..c2a93ca53960bf57424ff9d3f153e5cfbecb9a43
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_serviceaccount_test.yaml
@@ -0,0 +1,41 @@
+#
+# 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: ServiceAccount test
+release:
+  name: ozgcloud-elasticsearch-operator
+  namespace: test-namespace
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_serviceaccount.yaml
+tests:
+  - it: test metadata
+    asserts:
+      - isKind:
+          of: ServiceAccount
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-serviceaccount
+      - equal:
+          path: metadata.namespace
+          value: test-namespace
\ No newline at end of file
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_role_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_role_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..587ac1c2a7b3cf717655ba3ead0057267f135acf
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_role_test.yaml
@@ -0,0 +1,52 @@
+suite: elasticsearch_view_role test
+release:
+  name: release-name
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_view_role.yaml
+tests:
+  - it: should have apiVersion
+    asserts: 
+      - equal:
+          path: apiVersion
+          value: rbac.authorization.k8s.io/v1
+  - it: should have isKind of
+    asserts:
+      - isKind:
+          of: ClusterRole
+
+  - it: should have metadata name
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-view-role
+  - it: should have metadata labels name
+    asserts: 
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/name]
+          value: release-name
+  - it: should have metadata labels instance
+    asserts: 
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/instance]
+          value: release-name
+  - it: should have metadata labels component
+    asserts: 
+      - equal:
+          path: metadata.labels.[app.kubernetes.io/component]
+          value: ozgcloud-elasticsearch-operator
+
+  - it: should have rules for ozgcloudelasticsearchs resource
+    asserts:
+      - contains:
+          path: rules
+          content:
+              apiGroups:
+                - operator.ozgcloud.de
+              resources:
+                - ozgcloudelasticsearchs
+                - ozgcloudelasticsearchs/status
+                - ozgcloudelasticsearchs/finalizers
+              verbs:
+                - get
+                - list
+                - watch
diff --git a/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_rolebinding_test.yaml b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_rolebinding_test.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..e5191b1292c29fbe58af8360d27f0f954487980d
--- /dev/null
+++ b/ozgcloud-elasticsearch-operator/src/test/helm/rbac/ozgcloud_elasticsearch_operator_view_rolebinding_test.yaml
@@ -0,0 +1,41 @@
+
+
+suite: elasticsearch_edit_rolebinding test
+release:
+  namespace: sh-helm-test
+templates:
+  - templates/rbac/ozgcloud_elasticsearch_operator_edit_rolebinding.yaml
+tests:
+  - it: should have apiVersion
+    asserts: 
+      - equal:
+          path: apiVersion
+          value: rbac.authorization.k8s.io/v1
+  - it: should have isKind of
+    asserts:
+      - isKind:
+          of: ClusterRoleBinding
+
+  - it: should have metadata name
+    asserts:
+      - equal:
+          path: metadata.name
+          value: ozgcloud-elasticsearch-operator-edit-role-binding
+
+  - it: should have subjects
+    asserts:
+      - equal:
+          path: subjects
+          value:
+            - kind: ServiceAccount
+              name: ozgcloud-elasticsearch-operator-serviceaccount
+              namespace: sh-helm-test
+
+  - it: should have roleRef
+    asserts:
+      - equal:
+          path: roleRef
+          value:
+            kind: ClusterRole
+            name: ozgcloud-elasticsearch-operator-edit-role
+            apiGroup: rbac.authorization.k8s.io
\ No newline at end of file
diff --git a/ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read.yaml b/ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read_test.yaml
similarity index 100%
rename from ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read.yaml
rename to ozgcloud-keycloak-operator/src/test/helm/rbacs/keycloak_admin_secret_read_test.yaml
diff --git a/pom.xml b/pom.xml
index fbde536279d9a6c6394e0b07f47c9eb7c1440ea3..d838746f194a6d7b00b70385a0a2d362f5dac0a1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -55,6 +55,10 @@
 			<groupId>io.javaoperatorsdk</groupId>
 			<artifactId>operator-framework-spring-boot-starter</artifactId>
 		</dependency>
+		<dependency>
+			<groupId>org.springframework.boot</groupId>
+			<artifactId>spring-boot-starter-actuator</artifactId>
+		</dependency>
 
 		<!-- tools -->
 		<dependency>