diff --git a/src/main/helm/templates/keycloak-client-crd.yaml b/src/main/helm/templates/keycloak-client-crd.yaml
index 57e550c3ad005a53cace6b3bb50fc753b8645562..1e5509d9114b14284a7e5f49361332832cff0107 100644
--- a/src/main/helm/templates/keycloak-client-crd.yaml
+++ b/src/main/helm/templates/keycloak-client-crd.yaml
@@ -1,10 +1,19 @@
 {{ range $client := .Values.sso.keycloak_clients }}
 ---
+{{- if $client.kopOperator }}
+apiVersion: api.kop-stack.de/v1
+kind: KopKeycloakClient
+{{- else }}
 apiVersion: operator.ozgcloud.de/v1
 kind: OzgKeycloakClient
+{{- end }}
 metadata:
   name: {{ include "app.generateKeycloakClientRessourceName" $client.client_name }}
   namespace: {{ include "app.namespace" $ }}
+{{- if $client.kopOperator }}
+  annotations:
+    "helm.sh/resource-policy": keep
+{{- end }}
 spec:
   keep_after_delete: {{ $.Values.sso.keep_after_delete | default false }}
   client_name: {{ $client.client_name }}
diff --git a/src/test/helm/keycloak-client-crd-test.yaml b/src/test/helm/keycloak-client-crd-test.yaml
index 3140b69cf5f495c90a3d987287c207284c7cc954..37334dedbf0deeb11c289c0a84747793d4877096 100644
--- a/src/test/helm/keycloak-client-crd-test.yaml
+++ b/src/test/helm/keycloak-client-crd-test.yaml
@@ -51,6 +51,27 @@ tests:
       - equal:
           path: metadata.namespace
           value: by-helm-test
+  - it: should contain header data for kopOperator
+    set:
+      sso:
+         keycloak_clients:
+           - client_name: alfa
+             kopOperator: true
+    asserts:
+      - isAPIVersion:
+          of: api.kop-stack.de/v1
+      - isKind:
+          of: KopKeycloakClient
+  - it: should have annotations for kopOperator
+    set:
+      sso:
+        keycloak_clients:
+          - client_name: alfa
+            kopOperator: true
+    asserts:
+      - equal:
+          path: metadata.annotations.[helm.sh/resource-policy]
+          value: keep
   - it: should have default Values
     set:
       baseUrl: test.by.ozg-cloud.de