From f6149236d65814fce843b70b0825551919bb7ec7 Mon Sep 17 00:00:00 2001
From: Martin <git@mail.de>
Date: Fri, 7 Mar 2025 15:46:53 +0100
Subject: [PATCH] update operator sdk 5.6.0 -> 6.0.0 and ozgcloud-common 4.9.0
 -> 4.11.0

---
 .../OzgCloudElasticsearchCustomResourceStatus.java        | 6 ++----
 .../OzgCloudElasticsearchUpdateControlBuilder.java        | 7 ++++---
 .../de/ozgcloud/operator/ElasticsearchReconcilerTest.java | 6 +++---
 .../keycloak/client/KeycloakClientReconciler.java         | 6 +++---
 .../keycloak/client/OzgCloudKeycloakClientStatus.java     | 3 +--
 .../operator/keycloak/group/KeycloakGroupReconciler.java  | 6 +++---
 .../operator/keycloak/realm/KeycloakRealmReconciler.java  | 8 +++++---
 .../keycloak/realm/OzgCloudKeycloakRealmStatus.java       | 3 +--
 .../keycloak/user/OzgCloudKeycloakUserStatus.java         | 6 ++----
 .../operator/keycloak/user/UserUpdateControlBuilder.java  | 6 +++---
 .../src/main/resources/application.yml                    | 4 +++-
 .../keycloak/client/KeycloakClientReconcilerTest.java     | 4 ++--
 .../keycloak/group/KeycloakGroupReconcilerTest.java       | 4 ++--
 .../keycloak/realm/KeycloakRealmReconcilerTest.java       | 2 +-
 pom.xml                                                   | 4 ++--
 15 files changed, 37 insertions(+), 38 deletions(-)

diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchCustomResourceStatus.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchCustomResourceStatus.java
index b1e8dc7..202f293 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchCustomResourceStatus.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchCustomResourceStatus.java
@@ -25,7 +25,6 @@ package de.ozgcloud.operator;
 
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
-import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
@@ -38,9 +37,8 @@ import lombok.Setter;
 @NoArgsConstructor
 @AllArgsConstructor
 @JsonIgnoreProperties(ignoreUnknown = true)
-public class OzgCloudElasticsearchCustomResourceStatus extends ObservedGenerationAwareStatus {
-
+public class OzgCloudElasticsearchCustomResourceStatus {
+	private Long observedGeneration;
 	private CustomResourceStatus status;
-
 	private String message;
 }
diff --git a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchUpdateControlBuilder.java b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchUpdateControlBuilder.java
index 93f3cb6..a487918 100644
--- a/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchUpdateControlBuilder.java
+++ b/ozgcloud-elasticsearch-operator/src/main/java/de/ozgcloud/operator/OzgCloudElasticsearchUpdateControlBuilder.java
@@ -69,7 +69,8 @@ class OzgCloudElasticsearchUpdateControlBuilder {
 	}
 
 	private OzgCloudElasticsearchCustomResourceStatus buildElasticCustomResourceStatus() {
-		var userStatus = OzgCloudElasticsearchCustomResourceStatus.builder().status(status);
+		var userStatus = OzgCloudElasticsearchCustomResourceStatus.builder().status(status)
+				.observedGeneration(resource.getMetadata().getGeneration());
 		message.ifPresent(userStatus::message);
 
 		return userStatus.build();
@@ -77,8 +78,8 @@ class OzgCloudElasticsearchUpdateControlBuilder {
 
 	private UpdateControl<OzgCloudElasticsearchCustomResource> buildUpdateControl() {
 		if (reschedule) {
-			return UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
+			return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(scheduleDuration);
 		}
-		return UpdateControl.updateStatus(resource);
+		return UpdateControl.patchResourceAndStatus(resource);
 	}
 }
diff --git a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchReconcilerTest.java b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchReconcilerTest.java
index 904ead4..9185d00 100644
--- a/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchReconcilerTest.java
+++ b/ozgcloud-elasticsearch-operator/src/test/java/de/ozgcloud/operator/ElasticsearchReconcilerTest.java
@@ -155,14 +155,14 @@ class ElasticsearchReconcilerTest {
 			void shouldContainResource() {
 				var updateControl = buildExceptionUpdateControl();
 
-				assertThat(updateControl.getResource()).isEqualTo(resource);
+				assertThat(updateControl.getResource().get()).isEqualTo(resource);
 			}
 
 			@Test
 			void shouldContainUpdateStatus() {
 				var updateControl = buildExceptionUpdateControl();
 
-				assertThat(updateControl.getResource().getStatus().getStatus()).isEqualTo(CustomResourceStatus.ERROR);
+				assertThat(updateControl.getResource().get().getStatus().getStatus()).isEqualTo(CustomResourceStatus.ERROR);
 			}
 
 			@Test
@@ -176,7 +176,7 @@ class ElasticsearchReconcilerTest {
 			void shouldContainMessage() {
 				var updateControl = buildExceptionUpdateControl();
 
-				assertThat(updateControl.getResource().getStatus().getMessage()).isEqualTo(EXCEPTION_MESSAGE);
+				assertThat(updateControl.getResource().get().getStatus().getMessage()).isEqualTo(EXCEPTION_MESSAGE);
 			}
 
 			private UpdateControl<OzgCloudElasticsearchCustomResource> buildExceptionUpdateControl() {
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java
index 178645e..0be7660 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconciler.java
@@ -63,19 +63,19 @@ public class KeycloakClientReconciler implements Reconciler<OzgCloudKeycloakClie
 		} catch (Exception e) {
 			LOG.error(resource.getMetadata().getName() + " could not reconcile in namespace " + resource.getMetadata().getNamespace(), e);
 			resource.setStatus(OzgCloudKeycloakClientStatus.builder().status(OzgCloudCustomResourceStatus.ERROR).message(e.getMessage()).build());
-			return UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+			return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
 		}
 	}
 
 	private UpdateControl<OzgCloudKeycloakClient> buildStatusOk(OzgCloudKeycloakClient resource) {
 		resource.setStatus(OzgCloudKeycloakClientStatus.builder().status(OzgCloudCustomResourceStatus.OK).message(null).build());
-		return UpdateControl.updateStatus(resource);
+		return UpdateControl.patchResourceAndStatus(resource);
 	}
 
 	private UpdateControl<OzgCloudKeycloakClient> buildStatusInProgress(OzgCloudKeycloakClient resource, String errorMessage) {
 		LOG.info("{} could not yet reconcile in namespace {}: {}", resource.getMetadata().getName(), resource.getMetadata().getNamespace(),
 				errorMessage);
 		resource.setStatus(OzgCloudKeycloakClientStatus.builder().status(OzgCloudCustomResourceStatus.IN_PROGRESS).message(errorMessage).build());
-		return UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+		return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
 	}
 }
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/OzgCloudKeycloakClientStatus.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/OzgCloudKeycloakClientStatus.java
index 56c6f8a..5aaf7ab 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/OzgCloudKeycloakClientStatus.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/client/OzgCloudKeycloakClientStatus.java
@@ -39,8 +39,7 @@ import lombok.Setter;
 @AllArgsConstructor
 @JsonIgnoreProperties(ignoreUnknown = true)
 class OzgCloudKeycloakClientStatus {
-
+	private Long observedGeneration;
 	private OzgCloudCustomResourceStatus status;
-
 	private String message;
 }
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java
index c7ad20e..6c0f793 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconciler.java
@@ -62,19 +62,19 @@ public class KeycloakGroupReconciler implements Reconciler<OzgCloudKeycloakGroup
 		} catch (Exception e) {
 			LOG.warn(resource.getMetadata().getName() + " could not reconcile in namespace " + resource.getMetadata().getNamespace(), e);
 			resource.setStatus(OzgCloudKeycloakGroupStatus.builder().status(OzgCloudCustomResourceStatus.ERROR).message(e.getMessage()).build());
-			return UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+			return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
 		}
 	}
 
 	private UpdateControl<OzgCloudKeycloakGroup> buildStatusOk(OzgCloudKeycloakGroup resource) {
 		resource.setStatus(OzgCloudKeycloakGroupStatus.builder().status(OzgCloudCustomResourceStatus.OK).message(null).build());
-		return UpdateControl.updateStatus(resource);
+		return UpdateControl.patchResourceAndStatus(resource);
 	}
 
 	private UpdateControl<OzgCloudKeycloakGroup> buildStatusInProgress(OzgCloudKeycloakGroup resource, String errorMessage) {
 		LOG.warn("{} could not yet reconcile group in namespace {}: {}", resource.getMetadata().getName(), resource.getMetadata().getNamespace(),
 				errorMessage);
 		resource.setStatus(OzgCloudKeycloakGroupStatus.builder().status(OzgCloudCustomResourceStatus.IN_PROGRESS).message(errorMessage).build());
-		return UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+		return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
 	}
 }
\ No newline at end of file
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 3f2e8fe..96d7591 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
@@ -52,13 +52,15 @@ public class KeycloakRealmReconciler implements Reconciler<OzgCloudKeycloakRealm
 
 			service.createOrUpdateRealm(resource.getSpec(), realmName);
 
-			resource.setStatus(OzgCloudKeycloakRealmStatus.builder().status(OzgCloudCustomResourceStatus.OK).message(null).build());
-			return UpdateControl.updateStatus(resource);
+			resource.setStatus(OzgCloudKeycloakRealmStatus.builder().status(OzgCloudCustomResourceStatus.OK).message(null)
+					.observedGeneration(resource.getMetadata().getGeneration())
+					.build());
+			return UpdateControl.patchResourceAndStatus(resource);
 
 		} catch (Exception e) {
 			LOG.warn(resource.getMetadata().getName() + " could not reconcile in namespace " + resource.getMetadata().getNamespace(), e);
 			resource.setStatus(OzgCloudKeycloakRealmStatus.builder().status(OzgCloudCustomResourceStatus.ERROR).message(e.getMessage()).build());
-			return UpdateControl.updateStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
+			return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(Config.RECONCILER_RETRY_SECONDS);
 		}
 	}
 
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmStatus.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmStatus.java
index 9b3a40c..924f30c 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmStatus.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/realm/OzgCloudKeycloakRealmStatus.java
@@ -39,8 +39,7 @@ import lombok.Setter;
 @AllArgsConstructor
 @JsonIgnoreProperties(ignoreUnknown = true)
 class OzgCloudKeycloakRealmStatus {
-
+	private Long observedGeneration;
 	private OzgCloudCustomResourceStatus status;
-
 	private String message;
 }
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/OzgCloudKeycloakUserStatus.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/OzgCloudKeycloakUserStatus.java
index a57162f..fa03102 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/OzgCloudKeycloakUserStatus.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/OzgCloudKeycloakUserStatus.java
@@ -26,7 +26,6 @@ package de.ozgcloud.operator.keycloak.user;
 import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
 
 import de.ozgcloud.operator.keycloak.OzgCloudCustomResourceStatus;
-import io.javaoperatorsdk.operator.api.ObservedGenerationAwareStatus;
 import lombok.AllArgsConstructor;
 import lombok.Builder;
 import lombok.Getter;
@@ -39,9 +38,8 @@ import lombok.Setter;
 @NoArgsConstructor
 @AllArgsConstructor
 @JsonIgnoreProperties(ignoreUnknown = true)
-class OzgCloudKeycloakUserStatus extends ObservedGenerationAwareStatus {
-
+class OzgCloudKeycloakUserStatus {
+	private Long observedGeneration;
 	private OzgCloudCustomResourceStatus status;
-
 	private String message;
 }
diff --git a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
index 9ca47e0..0301c7f 100644
--- a/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
+++ b/ozgcloud-keycloak-operator/src/main/java/de/ozgcloud/operator/keycloak/user/UserUpdateControlBuilder.java
@@ -70,7 +70,7 @@ class UserUpdateControlBuilder {
 	}
 
 	private OzgCloudKeycloakUserStatus buildOzgCloudKeycloakUserStatus() {
-		var userStatus = OzgCloudKeycloakUserStatus.builder().status(status);
+		var userStatus = OzgCloudKeycloakUserStatus.builder().status(status).observedGeneration(resource.getMetadata().getGeneration());
 		message.ifPresent(userStatus::message);
 
 		return userStatus.build();
@@ -78,8 +78,8 @@ class UserUpdateControlBuilder {
 
 	private UpdateControl<OzgCloudKeycloakUser> buildUpdateControl() {
 		if (reschedule) {
-			return UpdateControl.updateStatus(resource).rescheduleAfter(scheduleDuration);
+			return UpdateControl.patchResourceAndStatus(resource).rescheduleAfter(scheduleDuration);
 		}
-		return UpdateControl.updateStatus(resource);
+		return UpdateControl.patchResourceAndStatus(resource);
 	}
 }
diff --git a/ozgcloud-keycloak-operator/src/main/resources/application.yml b/ozgcloud-keycloak-operator/src/main/resources/application.yml
index 1614578..34d078e 100644
--- a/ozgcloud-keycloak-operator/src/main/resources/application.yml
+++ b/ozgcloud-keycloak-operator/src/main/resources/application.yml
@@ -1,4 +1,6 @@
-
+logging:
+  level:
+    ROOT: WARN
 management:
   server:
     port: 8081
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconcilerTest.java
index a7ddbd8..8e8b458 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconcilerTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/client/KeycloakClientReconcilerTest.java
@@ -74,7 +74,7 @@ class KeycloakClientReconcilerTest {
 		void shouldSetStatusOk() {
 			var response = reconciler.reconcile(OzgCloudKeycloakClientTestFactory.create(), null);
 
-			assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
+			assertThat(response.getResource().get().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
 		}
 
 		@Test
@@ -83,7 +83,7 @@ class KeycloakClientReconcilerTest {
 
 			var response = reconciler.reconcile(OzgCloudKeycloakClientTestFactory.create(), null);
 
-			assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.IN_PROGRESS);
+			assertThat(response.getResource().get().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.IN_PROGRESS);
 		}
 	}
 }
diff --git a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconcilerTest.java b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconcilerTest.java
index bb568f7..e7390c7 100644
--- a/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconcilerTest.java
+++ b/ozgcloud-keycloak-operator/src/test/java/de/ozgcloud/operator/keycloak/group/KeycloakGroupReconcilerTest.java
@@ -73,7 +73,7 @@ class KeycloakGroupReconcilerTest {
 		void shouldSetStatusOk() {
 			var response = reconciler.reconcile(KEYCLOAK_GROUP, null);
 
-			assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
+			assertThat(response.getResource().get().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
 		}
 
 		@Test
@@ -82,7 +82,7 @@ class KeycloakGroupReconcilerTest {
 
 			var response = reconciler.reconcile(KEYCLOAK_GROUP, null);
 
-			assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.IN_PROGRESS);
+			assertThat(response.getResource().get().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.IN_PROGRESS);
 		}
 	}
 }
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 986de53..bf3848c 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
@@ -73,7 +73,7 @@ class KeycloakRealmReconcilerTest {
 		void shouldSetStatusOk() {
 			var response = reconciler.reconcile(OzgCloudKeycloakRealmTestFactory.create(), null);
 
-			assertThat(response.getResource().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
+			assertThat(response.getResource().get().getStatus().getStatus()).isEqualTo(OzgCloudCustomResourceStatus.OK);
 		}
 
 	}
diff --git a/pom.xml b/pom.xml
index 573bdde..c252a0a 100644
--- a/pom.xml
+++ b/pom.xml
@@ -30,7 +30,7 @@
 	<parent>
 		<groupId>de.ozgcloud.common</groupId>
 		<artifactId>ozgcloud-common-parent</artifactId>
-		<version>4.9.0</version>
+		<version>4.11.0</version>
 	</parent>
 
 	<groupId>de.ozgcloud</groupId>
@@ -48,7 +48,7 @@
 	</modules>
 
 	<properties>
-		<operator-sdk.version>5.6.0</operator-sdk.version>
+		<operator-sdk.version>6.0.0</operator-sdk.version>
 
 		<!-- tools -->
 		<reflections.version>0.10.2</reflections.version>
-- 
GitLab