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 ca2988c4229c0565acaaa6024e0ccde4100863b3..7c989b0fc4f1a4f10d916adef6598ea494956327 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
@@ -25,14 +25,21 @@ package de.ozgcloud.operator.keycloak.realm;
 
 import java.util.HashMap;
 import java.util.Map;
+import java.util.ArrayList;
+import java.util.List;
 import java.util.Set;
+import java.util.stream.Collectors;
 
 import org.keycloak.representations.idm.RealmRepresentation;
+import org.keycloak.representations.idm.RoleRepresentation;
+import org.keycloak.representations.idm.RolesRepresentation;
 import org.mapstruct.Mapper;
 import org.mapstruct.Mapping;
 import org.mapstruct.Named;
 import org.mapstruct.ReportingPolicy;
 
+import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.RealmRole;
+
 @Mapper(unmappedTargetPolicy = ReportingPolicy.IGNORE, unmappedSourcePolicy = ReportingPolicy.IGNORE)
 interface KeycloakRealmMapper {
 
@@ -45,8 +52,13 @@ interface KeycloakRealmMapper {
 	@Mapping(target = "passwordPolicy", constant = "upperCase(1) and lowerCase(1) and length(8) and notUsername")
 	@Mapping(target = "actionTokenGeneratedByUserLifespan", constant = "900")
 	@Mapping(target = "smtpServer", source = "smtpServer", qualifiedByName = "smtpServer")
+	@Mapping(target = "roles.realm", source = "realmRoles")
 	public RealmRepresentation map(OzgCloudKeycloakRealmSpec realm);
 
+
+	@Mapping(target = "name", source = "name")
+    RoleRepresentation map(OzgCloudKeycloakRealmSpec.RealmRole role);
+
 	@Named("supportedLocales")
 	default Set<String> mapPassword(OzgCloudKeycloakRealmSpec spec) {
 		return Set.of("de");
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 4703f154ee68169988fceac1324a9374bfc5c539..7736f40a2f3376ad7fff141a1973e23a72b46360 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,9 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
+import java.util.ArrayList;
+import java.util.List;
+
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
@@ -48,9 +51,7 @@ class OzgCloudKeycloakRealmSpec {
 	private KeycloakRealmSMTPServer smtpServer;
 
 	@Getter
-	@Setter
 	@Builder
-	@NoArgsConstructor
 	@AllArgsConstructor
 	static class KeycloakRealmSMTPServer {
 
@@ -69,4 +70,16 @@ class OzgCloudKeycloakRealmSpec {
 		private String fromDisplayName;
 	}
 
+
+	@Builder.Default
+	private List<RealmRole> realmRoles = new ArrayList<>();
+
+	@Getter
+	@Builder
+	@AllArgsConstructor
+	static class RealmRole {
+
+		@JsonProperty("name")
+		private String name;
+	}
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
index 074f65dbb685587821e7363a11bcb752e9a4a00b..f36b39c8fc173d6391b7bd0b8107c428f6ff766f 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmMapperTest.java
@@ -118,4 +118,20 @@ class KeycloakRealmMapperTest {
 
 		assertThat(mapped.getSmtpServer()).isEmpty();
 	}
+
+	@Test
+	void shouldMapRealmRoles() {
+		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+
+		assertThat(mapped.getRoles().getRealm()).hasSize(2);
+	}
+
+	@Test
+	void shouldContainRealmRolesValues() {
+		var mapped = mapper.map(OzgCloudKeycloakRealmSpecTestFactory.create());
+		var mappedRealmRoles = mapped.getRoles();
+
+		assertThat(mappedRealmRoles.getRealm().get(0).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_1);
+		assertThat(mappedRealmRoles.getRealm().get(1).getName()).isEqualTo(OzgCloudKeycloakRealmSpecTestFactory.ROLE_NAME_2);
+	}
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java
index 510b314521a42509b33fcb971fa15e3a6e53963b..76e8fad81d7e513c4c24c68e8631c3d093b91cf1 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmReconcilerTest.java
@@ -72,6 +72,9 @@ class KeycloakRealmReconcilerTest {
 
 			assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
 		}
+
+
+		
 	}
 
 	@DisplayName("Reconciler Cleanup")
@@ -154,6 +157,7 @@ class KeycloakRealmReconcilerTest {
 				assertThat(control).usingRecursiveComparison()
 						.isEqualTo(DeleteControl.noFinalizerRemoval().rescheduleAfter(Config.RECONCILER_RETRY_SECONDS_ON_ERROR));
 			}
+
 		}
 	}
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java
index 2b03fdab23db589c84807b0a07cd2c971b5cd369..5c27b298f4f21487701334bbd9f0be3c1ccfd7d1 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmSpecTestFactory.java
@@ -23,11 +23,21 @@
  */
 package de.ozgcloud.operator.keycloak.realm;
 
+import java.util.List;
+
+import de.ozgcloud.operator.keycloak.realm.OzgCloudKeycloakRealmSpec.RealmRole;
+
 public class OzgCloudKeycloakRealmSpecTestFactory {
 
 	public final static String DISPLAY_NAME = "TestDisplayName";
 	public final static boolean KEEP_AFTER_DELETE = false;
 
+	public static final String ROLE_NAME_1 = "RoleName1";
+	public static final RealmRole ROLE1 = RealmRole.builder().name(ROLE_NAME_1).build();
+	public static final String ROLE_NAME_2 = "RoleName2";
+	public static final RealmRole ROLE2 = RealmRole.builder().name(ROLE_NAME_2).build();
+	public static final List<RealmRole> ROLES = List.of(ROLE1, ROLE2);
+
 	public static OzgCloudKeycloakRealmSpec create() {
 		return createBuilder().build();
 	}
@@ -36,6 +46,7 @@ public class OzgCloudKeycloakRealmSpecTestFactory {
 		return OzgCloudKeycloakRealmSpec.builder()
 				.keepAfterDelete(KEEP_AFTER_DELETE)
 				.displayName(DISPLAY_NAME)
-				.smtpServer(KeycloakRealmSmtpServerTestFactory.create());
+				.smtpServer(KeycloakRealmSmtpServerTestFactory.create())
+				.realmRoles(ROLES);
 	}
 }