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 b1e8dc7ef9df3f13d45d1e44fc86f97b37e984b6..202f29339059abc2a58a86211be539970480e525 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 93f3cb625c70c834a329cce3ea7cfa3832521ca7..a487918d442a6ccebbf086f03f1902d6fbb481af 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 904ead4d747afec3409b795556bcb76f7441ff3f..9185d001aa8cdd49058dfa8feedc15f72d8839c0 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 178645ecaf6102783e7c93662a9c0c8ecf474824..0be76609e7cc738c5a6c2c98536f0d6a3daac10d 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 56c6f8ad92ad10815f4b6a029c87ef97bfd88610..5aaf7abcf2e1973fa9789ccd44dcdbe550bf1261 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 c7ad20e19de8670ddd0094be35650e24730278f1..6c0f7938566db11255ce636bab9e8c24b82e7f63 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 3f2e8fefffbf1018db4c41271640e841410a0c0a..96d75914ed1f932699358839a6f8f3d371c6f30e 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 9b3a40c131e281d76590f45cfbbd79efa7a05ff3..924f30cb28828a84c76cbde011414e7d44d36a11 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 a57162fe0d95f1c76cb8fdac4b378f8f1699023f..fa03102c0ea43d3a3052bb2fff554aae02090779 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 9ca47e07146ffbe768d923604a2b89199831c8f5..0301c7fcd7040daf43230c9d8de8524ad6f5f496 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 16145789ecb0afaee2cbd8aa7053f7e3dba9f377..34d078e11545e748a8e7e2e2e1c4d8977e40c03b 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 a7ddbd8a018a013041cb8c45bc3fae3edd8d657a..8e8b45879b2fee7fff56e2d117e15288a8f756bc 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 bb568f7c430b6a2130dfe330331922a77d318356..e7390c7cf80ae3038bb847b4c4e850e7ae8d25ad 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 986de5307e05a9623af7c47ba6fa1fc4abee26d3..bf3848c600f1266c065782f5479a128c55a0eafb 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 573bdde4a9193ee25f71d077a38221cd3388c2d2..c252a0a093496f6d03eba2244402e0301a09d917 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>