From 784daf3cf9a2567f6acee3cd15808d2dfc79f44f Mon Sep 17 00:00:00 2001 From: Chris Laprun <claprun@redhat.com> Date: Mon, 25 Mar 2024 11:04:45 +0100 Subject: [PATCH] feat: handle clustered resource on secondary to primary mapper init Fixes #2311 Signed-off-by: Chris Laprun <claprun@redhat.com> --- .../dependent/kubernetes/KubernetesDependentResource.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) 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 edc7491469..7b1bb254a3 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 @@ -9,6 +9,7 @@ import org.slf4j.LoggerFactory; import io.fabric8.kubernetes.api.model.HasMetadata; +import io.fabric8.kubernetes.api.model.Namespaced; import io.fabric8.kubernetes.client.dsl.Resource; import io.javaoperatorsdk.operator.OperatorException; import io.javaoperatorsdk.operator.ReconcilerUtils; @@ -38,11 +39,11 @@ public abstract class KubernetesDependentResource<R extends HasMetadata, P exten private static final Logger log = LoggerFactory.getLogger(KubernetesDependentResource.class); private final ResourceUpdaterMatcher<R> updaterMatcher; private final boolean garbageCollected = this instanceof GarbageCollected; + private final boolean clustered; private KubernetesDependentResourceConfig<R> kubernetesDependentResourceConfig; private final boolean usingCustomResourceUpdateMatcher; - @SuppressWarnings("unchecked") public KubernetesDependentResource(Class<R> resourceType) { this(resourceType, null); } @@ -55,6 +56,7 @@ public KubernetesDependentResource(Class<R> resourceType, String name) { updaterMatcher = usingCustomResourceUpdateMatcher ? (ResourceUpdaterMatcher<R>) this : GenericResourceUpdaterMatcher.updaterMatcherFor(resourceType); + clustered = !Namespaced.class.isAssignableFrom(resourceType); } @SuppressWarnings("unchecked") @@ -93,7 +95,7 @@ private SecondaryToPrimaryMapper<R> getSecondaryToPrimaryMapper() { if (this instanceof SecondaryToPrimaryMapper) { return (SecondaryToPrimaryMapper<R>) this; } else if (garbageCollected) { - return Mappers.fromOwnerReferences(false); + return Mappers.fromOwnerReferences(clustered); } else if (useNonOwnerRefBasedSecondaryToPrimaryMapping()) { return Mappers.fromDefaultAnnotations(); } else {