diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
index 2c3da928213a93fe77b9d5ea8e8bfb204b255cc2..81adfc5b5e70a7db9785d8480747e77cbfcf0f6a 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapper.java
@@ -23,14 +23,25 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
+import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.keycloak.representations.idm.RealmRepresentation;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
+
 import org.mapstruct.Named;
 import org.mapstruct.ReportingPolicy;
 
+import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.RealmRole;
+
+import org.keycloak.representations.idm.RoleRepresentation;
+import org.keycloak.representations.idm.RolesRepresentation;
+
 @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, unmappedSourcePolicy = ReportingPolicy.IGNORE)
 interface KeycloakRealmMapper {
 
@@ -42,10 +53,33 @@ interface KeycloakRealmMapper {
 	@Mapping(target = "internationalizationEnabled", constant = "true")
 	@Mapping(target = "passwordPolicy", constant = "upperCase(1) and lowerCase(1) and length(8) and notUsername")
 	@Mapping(target = "actionTokenGeneratedByUserLifespan", constant = "900")
+	@Mapping(target = "roles", source = "realmRoles",qualifiedByName ="roles")
 	public RealmRepresentation map(OzgCloudKeycloakRealmSpec realm);
 
 	@Named("supportedLocales")
 	default Set<String> mapPassword(OzgCloudKeycloakRealmSpec spec) {
 		return Set.of("de");
 	}
+
+	@Named("roles")
+	default RolesRepresentation maprealmRoles(List<OzgCloudKeycloakRealmSpec.RealmRole> realRoles) {
+		RolesRepresentation roles = new RolesRepresentation();
+		
+
+		List<String> roleNames = realRoles.stream()
+                        .map(RealmRole::getName)
+                        .collect(Collectors.toList());
+		List<RoleRepresentation> rolerepresentationList = new ArrayList<>(roleNames.size());
+
+		 
+		roleNames.forEach(roleName -> { 
+			RoleRepresentation newRepresentation = new RoleRepresentation();
+			newRepresentation.setName(roleName);
+			rolerepresentationList.add(newRepresentation); } );
+
+		roles.setRealm(rolerepresentationList);
+		return roles;
+		
+	}
+
 }
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java
index 7edc208537aec1d2afa2817c60ab98cb8eebb61f..a77787354e95b4e222af5ced2f2fc2bcfb868825 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconciler.java
@@ -57,6 +57,8 @@ public class KeycloakRealmReconciler implements Reconciler<OzgCloudKeycloakRealm
 
 		} catch (Exception e) {
 			LOG.warn(resource.getMetadata().getName() + " could not reconcile in namespace " + resource.getMetadata().getNamespace(), e);
+			LOG.warn("STACKTRACE", e.getStackTrace());
+
 			resource.setStatus(OzgCloudKeycloakRealmStatus.builder().status(OzgCloudCustomResourceStatus.ERROR).message(e.getMessage()).build());
 			return UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
 		}
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteService.java
index 124f1d5dc65bcf9a39d05c279e8d8f4ac5b48150..2e291ab5f7c0d43ab85da9c911ef36a992165a85 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteService.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmRemoteService.java
@@ -23,10 +23,15 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
+import java.util.Objects;
+import java.util.Optional;
+
 import org.keycloak.admin.client.Keycloak;
 import org.keycloak.representations.idm.RealmRepresentation;
+import org.keycloak.representations.idm.RoleRepresentation;
 import org.springframework.stereotype.Component;
 
+import de.ozgcloud.operator.keycloak.KeycloakException;
 import lombok.RequiredArgsConstructor;
 
 @RequiredArgsConstructor
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
index 0a23abfd2ed15f8744855b5e8d0bc406913b2fd5..4d18e8e2d8d0b1ce499c60b909e93681f17e3b5b 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpec.java
@@ -23,6 +23,11 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
+import java.util.List;
+import java.util.ArrayList;
+import org.keycloak.representations.idm.RoleRepresentation;
+import org.keycloak.representations.idm.RolesRepresentation;
+
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
@@ -44,4 +49,21 @@ class OzgCloudKeycloakRealmSpec {
 	private boolean keepAfterDelete;
 
 	private String displayName;
+
+
+    @Builder.Default
+	private List<RealmRole> realmRoles= new ArrayList<>();
+	
+	@Getter
+	@Setter
+	@Builder
+	@NoArgsConstructor
+	@AllArgsConstructor
+	static class RealmRole {
+
+		@JsonProperty("name")
+		private String name;
+	}
 }
+
+