diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
index 1ebad4e77971f32a056acae546f20bba726c4fd6..d57ef9c49f5d55ded30884f5bbfbb095e8e2edc2 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmService.java
@@ -43,22 +43,14 @@ class KeycloakRealmService {
 
 	private final KeycloakGenericRemoteService keycloakGenericRemoteService;
 
-	void createRealm(OzgCloudKeycloakRealmSpec realm, String realmName) {
-		Optional.of(realm)
-				.map(mapper::map)
-				.map(realmRepresentation -> addRealmName(realmRepresentation, realmName))
-				.filter(realmRepresentation -> !keycloakGenericRemoteService.realmExists(realmName))
-				.ifPresent(remoteService::createRealm);
-	}
-
 	public void createOrUpdateRealm(OzgCloudKeycloakRealmSpec realm, String realmName) {
 		keycloakGenericRemoteService.getRealmRepresentation(realmName)
 				.ifPresentOrElse(existingRealm -> updateRealm(existingRealm, realm),
 						() -> createRealm(realm, realmName));
+		addOrUpdateRealmRoles(realm, realmName);
 	}
 
 	void updateRealm(RealmRepresentation existingRealm, OzgCloudKeycloakRealmSpec spec) {
-
 		try {
 			LOG.debug("{}: Updating existing realm...", existingRealm);
 			var realmRepresentation = mapper.update(existingRealm, spec);
@@ -67,8 +59,14 @@ class KeycloakRealmService {
 			LOG.warn(existingRealm + ": Updating existing realm failed: ", e);
 			throw e;
 		}
-		addOrUpdateRealmRoles(spec, existingRealm.getRealm());
+	}
 
+	void createRealm(OzgCloudKeycloakRealmSpec realm, String realmName) {
+		Optional.of(realm)
+				.map(mapper::map)
+				.map(realmRepresentation -> addRealmName(realmRepresentation, realmName))
+				.filter(realmRepresentation -> !keycloakGenericRemoteService.realmExists(realmName))
+				.ifPresent(remoteService::createRealm);
 	}
 
 	void addOrUpdateRealmRoles(OzgCloudKeycloakRealmSpec spec, String realm) {
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
index 872e9bb98038c987f96d69aab2f25c4128ca0ee7..044c9f8880ef605b0f120514c8f856766d8c3aa6 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/realm/KeycloakRealmServiceTest.java
@@ -92,6 +92,13 @@ class KeycloakRealmServiceTest {
 
 			verify(keycloakGenericRemoteService).getRealmRepresentation(REALM_NAME);
 		}
+		@Test
+		void shouldCallAddOrUpdateRealmRoles() {
+			service.createOrUpdateRealm(REALM, REALM_NAME);
+
+			verify(service).addOrUpdateRealmRoles(REALM, REALM_NAME);
+		}
+	
 	}
 
 	@DisplayName("Update Realm")
@@ -118,13 +125,6 @@ class KeycloakRealmServiceTest {
 			verify(mapper).update(realmRepresentation, REALM);
 		}
 
-		@Test
-		void shouldCallAddOrUpdateRealmRoles() {
-
-			service.updateRealm(realmRepresentation, REALM);
-
-			verify(service).addOrUpdateRealmRoles(REALM, realmRepresentation.getRealm());
-		}
 
 	}