From ba6dfe486d8632ef4c5c2757c712c57796312a28 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Tue, 21 Nov 2023 17:28:42 +0100 Subject: [PATCH 1/2] improve: make sure there is no infinite recursion by default for external service MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../processing/dependent/AbstractDependentResource.java | 4 +--- .../dependent/AbstractExternalDependentResource.java | 7 ++++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java index 897664e08a..ea1e020bfb 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractDependentResource.java @@ -85,9 +85,7 @@ protected ReconcileResult reconcile(P primary, R actualResource, Context

c return ReconcileResult.noOperation(actualResource); } - public Result match(R resource, P primary, Context

context) { - return updater.match(resource, primary, context); - } + public abstract Result match(R resource, P primary, Context

context); @Override public Optional getSecondaryResource(P primary, Context

context) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java index 4fb4c9bcd6..6f0ae278a8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java @@ -75,7 +75,12 @@ protected void handleExplicitStateCreation(P primary, R created, Context

cont .handleRecentResourceCreate(ResourceID.fromResource(primary), stateResource); } } - + + @Override + public Matcher.Result match(R resource, P primary, Context

context) { + var desired = desired(primary, context); + return Matcher.Result.computed(resource.equals(desired), desired); + } @SuppressWarnings("unchecked") public void deleteTargetResource(P primary, R resource, String key, From dab0640b2c7160ded96fcf0f140ed085e583af3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Tue, 21 Nov 2023 17:35:19 +0100 Subject: [PATCH 2/2] fix format MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../processing/dependent/AbstractExternalDependentResource.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java index 6f0ae278a8..ef825ef71f 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/AbstractExternalDependentResource.java @@ -75,7 +75,7 @@ protected void handleExplicitStateCreation(P primary, R created, Context

cont .handleRecentResourceCreate(ResourceID.fromResource(primary), stateResource); } } - + @Override public Matcher.Result match(R resource, P primary, Context

context) { var desired = desired(primary, context);