diff --git a/pom.xml b/pom.xml
index b1a1483b7bce09366b09c8ec84a4d0aa6aa22820..5492f8f505b2c44438e836e99a6549ccce1931b7 100644
--- a/pom.xml
+++ b/pom.xml
@@ -28,6 +28,11 @@
 			<artifactId>operator-framework-spring-boot-starter</artifactId>
 			<version>${operator-sdk.version}</version>
 		</dependency>
+		<dependency>
+			<groupId>org.projectlombok</groupId>
+			<artifactId>lombok</artifactId>
+		</dependency>
+
 
 		<dependency>
 			<groupId>org.springframework.boot</groupId>
diff --git a/samples/crd/KeycloakUser b/samples/crd/KeycloakUser
new file mode 100644
index 0000000000000000000000000000000000000000..77f7702947b3e7a90b0a0a002252ef0e72f8636d
--- /dev/null
+++ b/samples/crd/KeycloakUser
@@ -0,0 +1,6 @@
+apiVersion: "operator.ozgcloud.de/v1"
+kind: KeycloakUser
+metadata:
+  name: keycloakuser-test
+spec:
+  name: helge
diff --git a/src/main/java/de/ozgcloud/operator/Config.java b/src/main/java/de/ozgcloud/operator/Config.java
index 2995687a336a1a24b759516144eb4150bb4c0e76..a49ec666b73791dc9344792a7773256c025e669c 100644
--- a/src/main/java/de/ozgcloud/operator/Config.java
+++ b/src/main/java/de/ozgcloud/operator/Config.java
@@ -11,6 +11,11 @@ import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
 @Configuration
 public class Config {
 
+//	@Bean
+//	WebPageReconciler customServiceController() {
+//		return new WebPageReconciler();
+//	}
+
 	@Bean(initMethod = "start", destroyMethod = "stop")
 	@SuppressWarnings("rawtypes")
 	Operator operator(List<Reconciler> controllers) {
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..bb3a997def5453b5037ef91b2b403c7b391deebd
--- /dev/null
+++ b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java
@@ -0,0 +1,12 @@
+package de.ozgcloud.operator.keycloak;
+
+import io.fabric8.kubernetes.api.model.Namespaced;
+import io.fabric8.kubernetes.client.CustomResource;
+import io.fabric8.kubernetes.model.annotation.Group;
+import io.fabric8.kubernetes.model.annotation.Version;
+
+@Group("operator.ozgcloud.de")
+@Version("v1")
+public class KeycloakUser extends CustomResource<KeycloakUserSpec, KeycloakUserStatus> implements Namespaced {
+
+}
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java
new file mode 100644
index 0000000000000000000000000000000000000000..8d9396867d48a0d8f4a4de98e912125487ac3d45
--- /dev/null
+++ b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java
@@ -0,0 +1,21 @@
+package de.ozgcloud.operator.keycloak;
+
+import io.javaoperatorsdk.operator.api.reconciler.Context;
+import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
+import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
+import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
+import lombok.extern.log4j.Log4j2;
+
+@ControllerConfiguration
+@Log4j2
+public class KeycloakUserReconciler implements Reconciler<KeycloakUser> {
+
+	@Override
+	public UpdateControl<KeycloakUser> reconcile(KeycloakUser crd, Context<KeycloakUser> context) throws Exception {
+//		String name = crd.getMetadata().getName();
+		String name = crd.getSpec().getName();
+		log.info("Reconciling: {}", name);
+		crd.setStatus(KeycloakUserStatus.builder().status("Updated status for " + name).build());
+		return UpdateControl.updateStatus(crd);
+	}
+}
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java
new file mode 100644
index 0000000000000000000000000000000000000000..1f813f97c57aef7facd28f6f55c93f3f4b0e908f
--- /dev/null
+++ b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java
@@ -0,0 +1,11 @@
+package de.ozgcloud.operator.keycloak;
+
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+public class KeycloakUserSpec {
+
+	private String name;
+}
diff --git a/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java
new file mode 100644
index 0000000000000000000000000000000000000000..2120111aff0b3cecd92b60fb70417ce54a9cf1af
--- /dev/null
+++ b/src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java
@@ -0,0 +1,14 @@
+package de.ozgcloud.operator.keycloak;
+
+import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.Setter;
+
+@Getter
+@Setter
+@Builder
+public class KeycloakUserStatus extends ObservedGenerationAwareStatus {
+
+	private String status;
+}