From a85c2aebfaada4e389f073fb1ed8f2dfc41dd5ca Mon Sep 17 00:00:00 2001 From: OZGCloud <ozgcloud@mgm-tp.com> Date: Wed, 7 Jun 2023 21:49:01 +0200 Subject: [PATCH] add keycloakUser (test only) --- pom.xml | 5 +++++ samples/crd/KeycloakUser | 6 ++++++ .../java/de/ozgcloud/operator/Config.java | 5 +++++ .../operator/keycloak/KeycloakUser.java | 12 +++++++++++ .../keycloak/KeycloakUserReconciler.java | 21 +++++++++++++++++++ .../operator/keycloak/KeycloakUserSpec.java | 11 ++++++++++ .../operator/keycloak/KeycloakUserStatus.java | 14 +++++++++++++ 7 files changed, 74 insertions(+) create mode 100644 samples/crd/KeycloakUser create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/KeycloakUser.java create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserReconciler.java create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserSpec.java create mode 100644 src/main/java/de/ozgcloud/operator/keycloak/KeycloakUserStatus.java diff --git a/pom.xml b/pom.xml index b1a1483..5492f8f 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 0000000..77f7702 --- /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 2995687..a49ec66 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 0000000..bb3a997 --- /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 0000000..8d93968 --- /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 0000000..1f813f9 --- /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 0000000..2120111 --- /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; +} -- GitLab