diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java index 9a2603d54c..d03d96dee3 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java @@ -128,6 +128,10 @@ protected R handleUpdate(R actual, R desired, P primary, Context
context) { @SuppressWarnings("unused") public R create(R target, P primary, Context
context) { + if (useSSA(context)) { + // setting resource version for SSA so only created if it doesn't exist already + target.getMetadata().setResourceVersion("1"); + } final var resource = prepare(target, primary, "Creating"); return useSSA(context) ? resource @@ -138,15 +142,23 @@ public R create(R target, P primary, Context
context) { } public R update(R actual, R target, P primary, Context
context) {
+ if (log.isDebugEnabled()) {
+ log.debug("Updating actual resource: {} version: {}", ResourceID.fromResource(actual),
+ actual.getMetadata().getResourceVersion());
+ }
+ R updatedResource;
if (useSSA(context)) {
target.getMetadata().setResourceVersion(actual.getMetadata().getResourceVersion());
- return prepare(target, primary, "Updating")
+ updatedResource = prepare(target, primary, "Updating")
.fieldManager(context.getControllerConfiguration().fieldManager())
.forceConflicts().serverSideApply();
} else {
var updatedActual = updaterMatcher.updateResource(actual, target, context);
- return prepare(updatedActual, primary, "Updating").replace();
+ updatedResource = prepare(updatedActual, primary, "Updating").replace();
}
+ log.debug("Resource version after update: {}",
+ updatedResource.getMetadata().getResourceVersion());
+ return updatedResource;
}
public Result context) {
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java
index fdd8312670..8cca524464 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java
@@ -51,7 +51,7 @@
*
- * 2. Additional API is provided that is ment to be used with the combination of the previous one,
+ * 2. Additional API is provided that is meant to be used with the combination of the previous one,
* and the goal is to filter out events that are the results of updates and creates made by the
* controller itself. For example if in reconciler a ConfigMaps is created, there should be an
* Informer in place to handle change events of that ConfigMap, but since it has bean created (or
@@ -113,9 +113,9 @@ public InformerEventSource(InformerConfiguration
*