diff --git a/docs/documentation/dependent-resources.md b/docs/documentation/dependent-resources.md
index db7a00fda8..5c6d1437e9 100644
--- a/docs/documentation/dependent-resources.md
+++ b/docs/documentation/dependent-resources.md
@@ -318,12 +318,6 @@ There might be casees, though, where it might be problematic to call the `desire
- Override the `managedSecondaryResourceID` method, if your `DependentResource` extends `KubernetesDependentResource`,
where it's very often possible to easily determine the `ResourceID` of the secondary resource. This would probably be
the easiest solution if you're working with Kubernetes resources.
-- Configure
- a [`ResourceDiscriminator`](https://github.com/java-operator-sdk/java-operator-sdk/blob/main/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceDiscriminator.java)
- implementation for your `DependentResource`. This was the approach that was used before JOSDK v5 but should not be
- needed anymore as it is simpler and more efficient to override one the methods above instead of creating a separate
- class. Discriminators can be declaratively set when using managed Kubernetes dependent resources via
- the `resourceDiscriminator` field of the `@KubernetesDependent` annotation.
### Sharing an Event Source Between Dependent Resources
diff --git a/docs/documentation/v5-0-migration.md b/docs/documentation/v5-0-migration.md
index b34a7a6b21..01b483449e 100644
--- a/docs/documentation/v5-0-migration.md
+++ b/docs/documentation/v5-0-migration.md
@@ -26,3 +26,5 @@ permalink: /docs/v5-0-migration
Also, the related part of a [workaround](https://github.com/operator-framework/java-operator-sdk/blob/main/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusPatchSSAMigrationIT.java#L110-L116).
4. `ManagedDependentResourceContext` has been renamed to `ManagedWorkflowAndDependentResourceContext` and is accessed
via the accordingly renamed `managedWorkflowAndDependentResourceContext` method.
+5. `ResourceDiscriminator` was removed. In most of the cases you can just delete the discriminator, everything should
+ work without it by default. To optimize and handle special cases see the relevant section in [Dependent Resource documentation](/docs/dependent-resources#multiple-dependent-resources-of-same-type).
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Context.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Context.java
index a997835822..27547703b7 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Context.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Context.java
@@ -17,7 +17,7 @@ public interface Context
{
Optional getRetryInfo();
default Optional getSecondaryResource(Class expectedType) {
- return getSecondaryResource(expectedType, (String) null);
+ return getSecondaryResource(expectedType, null);
}
Set getSecondaryResources(Class expectedType);
@@ -29,9 +29,6 @@ default Stream getSecondaryResourcesAsStream(Class expectedType) {
@Deprecated(forRemoval = true)
Optional getSecondaryResource(Class expectedType, String eventSourceName);
- Optional getSecondaryResource(Class expectedType,
- ResourceDiscriminator discriminator);
-
ControllerConfiguration getControllerConfiguration();
/**
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java
index 9ff7ddd7a3..86f29e6878 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/DefaultContext.java
@@ -68,12 +68,6 @@ public Optional getSecondaryResource(Class expectedType, String eventS
.getSecondaryResource(primaryResource);
}
- @Override
- public Optional getSecondaryResource(Class expectedType,
- ResourceDiscriminator discriminator) {
- return discriminator.distinguish(expectedType, primaryResource, this);
- }
-
@Override
public ControllerConfiguration getControllerConfiguration() {
return controllerConfiguration;
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/IndexDiscriminator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/IndexDiscriminator.java
deleted file mode 100644
index 7a27397b26..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/IndexDiscriminator.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package io.javaoperatorsdk.operator.api.reconciler;
-
-import java.util.Optional;
-import java.util.function.Function;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-
-/**
- * Uses a custom index of {@link InformerEventSource} to access the target resource. The index needs
- * to be explicitly created when the event source is defined. This approach improves the performance
- * to access the resource.
- */
-public class IndexDiscriminator
- implements ResourceDiscriminator {
-
- private final String indexName;
- private final String eventSourceName;
- private final Function keyMapper;
-
- public IndexDiscriminator(String indexName, Function
keyMapper) {
- this(indexName, null, keyMapper);
- }
-
- public IndexDiscriminator(String indexName, String eventSourceName,
- Function
keyMapper) {
- this.indexName = indexName;
- this.eventSourceName = eventSourceName;
- this.keyMapper = keyMapper;
- }
-
- @Override
- public Optional distinguish(Class resource,
- P primary,
- Context context) {
-
- InformerEventSource eventSource =
- (InformerEventSource) context
- .eventSourceRetriever()
- .getResourceEventSourceFor(resource, eventSourceName);
- var resources = eventSource.byIndex(indexName, keyMapper.apply(primary));
- if (resources.isEmpty()) {
- return Optional.empty();
- } else if (resources.size() > 1) {
- throw new IllegalStateException("More than one resource found");
- } else {
- return Optional.of(resources.get(0));
- }
- }
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceDiscriminator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceDiscriminator.java
deleted file mode 100644
index 072e7d8078..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceDiscriminator.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package io.javaoperatorsdk.operator.api.reconciler;
-
-import java.util.Optional;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-
-public interface ResourceDiscriminator {
-
- Optional distinguish(Class resource, P primary, Context context);
-
-}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceIDMatcherDiscriminator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceIDMatcherDiscriminator.java
deleted file mode 100644
index da773fc210..0000000000
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ResourceIDMatcherDiscriminator.java
+++ /dev/null
@@ -1,45 +0,0 @@
-package io.javaoperatorsdk.operator.api.reconciler;
-
-import java.util.Optional;
-import java.util.function.Function;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-import io.javaoperatorsdk.operator.processing.event.source.Cache;
-
-public class ResourceIDMatcherDiscriminator
- implements ResourceDiscriminator {
-
-
- private final String eventSourceName;
- private final Function mapper;
-
- public ResourceIDMatcherDiscriminator(Function
mapper) {
- this(null, mapper);
- }
-
- public ResourceIDMatcherDiscriminator(String eventSourceName, Function
mapper) {
- this.eventSourceName = eventSourceName;
- this.mapper = mapper;
- }
-
- @SuppressWarnings("unchecked")
- @Override
- public Optional distinguish(Class resource, P primary, Context context) {
- var resourceID = mapper.apply(primary);
- if (eventSourceName != null) {
- return ((Cache) context.eventSourceRetriever().getResourceEventSourceFor(resource,
- eventSourceName))
- .get(resourceID);
- } else {
- var eventSources = context.eventSourceRetriever().getResourceEventSourcesFor(resource);
- if (eventSources.size() == 1) {
- return ((Cache) eventSources.get(0)).get(resourceID);
- } else {
- return context.getSecondaryResourcesAsStream(resource)
- .filter(resourceID::isSameResource)
- .findFirst();
- }
- }
- }
-}
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 590affe617..05c5b26a0e 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
@@ -9,7 +9,6 @@
import io.fabric8.kubernetes.api.model.HasMetadata;
import io.javaoperatorsdk.operator.api.reconciler.Context;
import io.javaoperatorsdk.operator.api.reconciler.Ignore;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
import io.javaoperatorsdk.operator.api.reconciler.dependent.Deleter;
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
import io.javaoperatorsdk.operator.api.reconciler.dependent.NameSetter;
@@ -28,7 +27,6 @@ public abstract class AbstractDependentResource
protected Creator creator;
protected Updater updater;
- private ResourceDiscriminator resourceDiscriminator;
private final DependentResourceReconciler dependentResourceReconciler;
protected String name;
@@ -98,16 +96,14 @@ protected ReconcileResult reconcile(P primary, R actualResource, Context c
@Override
public Optional getSecondaryResource(P primary, Context context) {
- if (resourceDiscriminator != null) {
- return resourceDiscriminator.distinguish(resourceType(), primary, context);
+
+ var secondaryResources = context.getSecondaryResources(resourceType());
+ if (secondaryResources.isEmpty()) {
+ return Optional.empty();
} else {
- var secondaryResources = context.getSecondaryResources(resourceType());
- if (secondaryResources.isEmpty()) {
- return Optional.empty();
- } else {
- return selectManagedSecondaryResource(secondaryResources, primary, context);
- }
+ return selectManagedSecondaryResource(secondaryResources, primary, context);
}
+
}
/**
@@ -198,10 +194,6 @@ protected void handleDelete(P primary, R secondary, Context
context) {
"handleDelete method must be implemented if Deleter trait is supported");
}
- public void setResourceDiscriminator(ResourceDiscriminator resourceDiscriminator) {
- this.resourceDiscriminator = resourceDiscriminator;
- }
-
protected boolean isCreatable() {
return creatable;
}
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java
index eb4c9cf9b0..572741dcbd 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java
@@ -6,7 +6,6 @@
import java.lang.annotation.Target;
import io.javaoperatorsdk.operator.api.reconciler.Constants;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnDeleteFilter;
@@ -70,8 +69,6 @@
*/
Class extends GenericFilter> genericFilter() default GenericFilter.class;
- Class extends ResourceDiscriminator> resourceDiscriminator() default ResourceDiscriminator.class;
-
/**
* Creates the resource only if did not exist before, this applies only if SSA is used.
*/
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java
index 7a434aecf1..493f0b0146 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java
@@ -8,7 +8,6 @@
import io.javaoperatorsdk.operator.api.config.Utils;
import io.javaoperatorsdk.operator.api.config.dependent.ConfigurationConverter;
import io.javaoperatorsdk.operator.api.reconciler.Constants;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnDeleteFilter;
@@ -33,7 +32,6 @@ public KubernetesDependentResourceConfig configFrom(KubernetesDependent confi
OnUpdateFilter extends HasMetadata> onUpdateFilter = null;
OnDeleteFilter extends HasMetadata> onDeleteFilter = null;
GenericFilter extends HasMetadata> genericFilter = null;
- ResourceDiscriminator, ?> resourceDiscriminator = null;
Boolean useSSA = null;
if (configAnnotation != null) {
if (!Arrays.equals(KubernetesDependent.DEFAULT_NAMESPACES, configAnnotation.namespaces())) {
@@ -54,9 +52,6 @@ public KubernetesDependentResourceConfig configFrom(KubernetesDependent confi
genericFilter =
Utils.instantiate(configAnnotation.genericFilter(), GenericFilter.class, context);
- resourceDiscriminator =
- Utils.instantiate(configAnnotation.resourceDiscriminator(), ResourceDiscriminator.class,
- context);
createResourceOnlyIfNotExistingWithSSA =
configAnnotation.createResourceOnlyIfNotExistingWithSSA();
useSSA = configAnnotation.useSSA().asBoolean();
@@ -64,6 +59,6 @@ public KubernetesDependentResourceConfig configFrom(KubernetesDependent confi
return new KubernetesDependentResourceConfig(namespaces, labelSelector, configuredNS,
createResourceOnlyIfNotExistingWithSSA,
- resourceDiscriminator, useSSA, onAddFilter, onUpdateFilter, onDeleteFilter, genericFilter);
+ useSSA, onAddFilter, onUpdateFilter, onDeleteFilter, genericFilter);
}
}
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..2fe4d2bea6 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
@@ -61,10 +61,6 @@ public KubernetesDependentResource(Class resourceType, String name) {
@Override
public void configureWith(KubernetesDependentResourceConfig config) {
this.kubernetesDependentResourceConfig = config;
- var discriminator = kubernetesDependentResourceConfig.getResourceDiscriminator();
- if (discriminator != null) {
- setResourceDiscriminator(discriminator);
- }
}
private void configureWith(String labelSelector, Set namespaces,
@@ -259,10 +255,6 @@ protected InformerEventSource createEventSource(EventSourceContext cont
onUpdateFilter = kubernetesDependentResourceConfig.onUpdateFilter();
onDeleteFilter = kubernetesDependentResourceConfig.onDeleteFilter();
genericFilter = kubernetesDependentResourceConfig.genericFilter();
- var discriminator = kubernetesDependentResourceConfig.getResourceDiscriminator();
- if (discriminator != null) {
- setResourceDiscriminator(discriminator);
- }
configureWith(kubernetesDependentResourceConfig.labelSelector(),
kubernetesDependentResourceConfig.namespaces(),
!kubernetesDependentResourceConfig.wereNamespacesConfigured(), context);
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java
index 9b3838831d..b1cb743232 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java
@@ -4,7 +4,6 @@
import java.util.Set;
import io.javaoperatorsdk.operator.api.reconciler.Constants;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnDeleteFilter;
@@ -20,7 +19,6 @@ public class KubernetesDependentResourceConfig {
private String labelSelector;
private final boolean namespacesWereConfigured;
private final boolean createResourceOnlyIfNotExistingWithSSA;
- private final ResourceDiscriminator resourceDiscriminator;
private final Boolean useSSA;
private final OnAddFilter onAddFilter;
@@ -31,7 +29,7 @@ public class KubernetesDependentResourceConfig {
public KubernetesDependentResourceConfig() {
this(Constants.SAME_AS_CONTROLLER_NAMESPACES_SET, NO_VALUE_SET, true,
DEFAULT_CREATE_RESOURCE_ONLY_IF_NOT_EXISTING_WITH_SSA,
- null, null, null,
+ null, null,
null, null, null);
}
@@ -39,7 +37,6 @@ public KubernetesDependentResourceConfig(Set namespaces,
String labelSelector,
boolean configuredNS,
boolean createResourceOnlyIfNotExistingWithSSA,
- ResourceDiscriminator resourceDiscriminator,
Boolean useSSA,
OnAddFilter onAddFilter,
OnUpdateFilter onUpdateFilter,
@@ -52,7 +49,6 @@ public KubernetesDependentResourceConfig(Set namespaces,
this.onUpdateFilter = onUpdateFilter;
this.onDeleteFilter = onDeleteFilter;
this.genericFilter = genericFilter;
- this.resourceDiscriminator = resourceDiscriminator;
this.useSSA = useSSA;
}
@@ -60,7 +56,7 @@ public KubernetesDependentResourceConfig(Set namespaces,
@Deprecated(forRemoval = true)
public KubernetesDependentResourceConfig(Set namespaces, String labelSelector) {
this(namespaces, labelSelector, true, DEFAULT_CREATE_RESOURCE_ONLY_IF_NOT_EXISTING_WITH_SSA,
- null, null, null,
+ null, null,
null, null, null);
}
@@ -104,11 +100,6 @@ public GenericFilter genericFilter() {
return genericFilter;
}
- @SuppressWarnings("rawtypes")
- public ResourceDiscriminator getResourceDiscriminator() {
- return resourceDiscriminator;
- }
-
@SuppressWarnings("unused")
protected void setNamespaces(Set namespaces) {
if (!wereNamespacesConfigured() && namespaces != null && !namespaces.isEmpty()) {
diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java
index a18d8b8a41..854ec7a56f 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfigBuilder.java
@@ -3,7 +3,6 @@
import java.util.Set;
import io.javaoperatorsdk.operator.api.reconciler.Constants;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
import io.javaoperatorsdk.operator.processing.event.source.filter.OnDeleteFilter;
@@ -14,7 +13,6 @@ public final class KubernetesDependentResourceConfigBuilder {
private Set namespaces = Constants.SAME_AS_CONTROLLER_NAMESPACES_SET;
private String labelSelector;
private boolean createResourceOnlyIfNotExistingWithSSA;
- private ResourceDiscriminator resourceDiscriminator;
private Boolean useSSA;
private OnAddFilter onAddFilter;
private OnUpdateFilter onUpdateFilter;
@@ -43,12 +41,6 @@ public KubernetesDependentResourceConfigBuilder withCreateResourceOnlyIfNotEx
return this;
}
- public KubernetesDependentResourceConfigBuilder withResourceDiscriminator(
- ResourceDiscriminator resourceDiscriminator) {
- this.resourceDiscriminator = resourceDiscriminator;
- return this;
- }
-
public KubernetesDependentResourceConfigBuilder withUseSSA(Boolean useSSA) {
this.useSSA = useSSA;
return this;
@@ -80,7 +72,7 @@ public KubernetesDependentResourceConfigBuilder withGenericFilter(
public KubernetesDependentResourceConfig build() {
return new KubernetesDependentResourceConfig<>(namespaces, labelSelector,
namespaces != Constants.SAME_AS_CONTROLLER_NAMESPACES_SET,
- createResourceOnlyIfNotExistingWithSSA, resourceDiscriminator, useSSA, onAddFilter,
+ createResourceOnlyIfNotExistingWithSSA, useSSA, onAddFilter,
onUpdateFilter, onDeleteFilter, genericFilter);
}
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java
deleted file mode 100644
index fe5b63de8a..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java
+++ /dev/null
@@ -1,77 +0,0 @@
-package io.javaoperatorsdk.operator;
-
-import org.junit.jupiter.api.Test;
-import org.junit.jupiter.api.extension.RegisterExtension;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.fabric8.kubernetes.api.model.ObjectMetaBuilder;
-import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
-import io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestCustomResource;
-import io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestReconciler;
-import io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestSpec;
-
-import static io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestDRConfigMap.DATA_KEY;
-import static io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestReconciler.FIRST_CONFIG_MAP_SUFFIX_1;
-import static io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestReconciler.FIRST_CONFIG_MAP_SUFFIX_2;
-import static org.assertj.core.api.Assertions.assertThat;
-import static org.awaitility.Awaitility.await;
-
-class IndexDiscriminatorIT {
-
- public static final String TEST_RESOURCE_1 = "test1";
- public static final String CHANGED_SPEC_VALUE = "otherValue";
- @RegisterExtension
- LocallyRunOperatorExtension operator =
- LocallyRunOperatorExtension.builder().withReconciler(IndexDiscriminatorTestReconciler.class)
- .build();
-
- @Test
- void resourcesFoundAndReconciled() {
- var res = operator.create(createTestCustomResource());
- var reconciler = operator.getReconcilerOfType(IndexDiscriminatorTestReconciler.class);
-
- await().untilAsserted(() -> {
- assertThat(reconciler.getNumberOfExecutions()).isEqualTo(1);
- assertThat(operator.get(ConfigMap.class, TEST_RESOURCE_1 + FIRST_CONFIG_MAP_SUFFIX_1))
- .isNotNull();
- assertThat(operator.get(ConfigMap.class, TEST_RESOURCE_1 + FIRST_CONFIG_MAP_SUFFIX_2))
- .isNotNull();
- });
-
- res.getSpec().setValue(CHANGED_SPEC_VALUE);
- res = operator.replace(res);
-
- await().untilAsserted(() -> {
- assertThat(reconciler.getNumberOfExecutions()).isEqualTo(2);
- var cm1 = operator.get(ConfigMap.class, TEST_RESOURCE_1 + FIRST_CONFIG_MAP_SUFFIX_1);
- var cm2 = operator.get(ConfigMap.class, TEST_RESOURCE_1 + FIRST_CONFIG_MAP_SUFFIX_2);
- assertThat(cm1).isNotNull();
- assertThat(cm2).isNotNull();
- assertThat(cm1.getData().get(DATA_KEY)).isEqualTo(CHANGED_SPEC_VALUE);
- assertThat(cm2.getData().get(DATA_KEY)).isEqualTo(CHANGED_SPEC_VALUE);
- });
-
- operator.delete(res);
-
- await().untilAsserted(() -> {
- var cm1 = operator.get(ConfigMap.class, TEST_RESOURCE_1 + FIRST_CONFIG_MAP_SUFFIX_1);
- var cm2 = operator.get(ConfigMap.class, TEST_RESOURCE_1 + FIRST_CONFIG_MAP_SUFFIX_2);
- assertThat(cm1).isNull();
- assertThat(cm2).isNull();
- });
- }
-
- public IndexDiscriminatorTestCustomResource createTestCustomResource() {
- IndexDiscriminatorTestCustomResource resource =
- new IndexDiscriminatorTestCustomResource();
- resource.setMetadata(
- new ObjectMetaBuilder()
- .withName(TEST_RESOURCE_1)
- .withNamespace(operator.getNamespace())
- .build());
- resource.setSpec(new IndexDiscriminatorTestSpec());
- resource.getSpec().setValue("default");
- return resource;
- }
-
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstService.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstService.java
index b6b0513254..f568ce08e5 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstService.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstService.java
@@ -1,9 +1,8 @@
package io.javaoperatorsdk.operator.sample.complexdependent.dependent;
-import io.fabric8.kubernetes.api.model.Service;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-@KubernetesDependent(resourceDiscriminator = FirstService.Discriminator.class)
+@KubernetesDependent
public class FirstService extends BaseService {
public static final String DISCRIMINATOR_PREFIX = "first";
@@ -11,10 +10,4 @@ public FirstService() {
super(DISCRIMINATOR_PREFIX);
}
- public static class Discriminator extends NamePrefixResourceDiscriminator {
- protected Discriminator() {
- super(DISCRIMINATOR_PREFIX);
- }
- }
-
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstStatefulSet.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstStatefulSet.java
index f50b94fe5f..d5740616b2 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstStatefulSet.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/FirstStatefulSet.java
@@ -1,9 +1,8 @@
package io.javaoperatorsdk.operator.sample.complexdependent.dependent;
-import io.fabric8.kubernetes.api.model.apps.StatefulSet;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-@KubernetesDependent(resourceDiscriminator = FirstStatefulSet.Discriminator.class)
+@KubernetesDependent
public class FirstStatefulSet extends BaseStatefulSet {
public static final String DISCRIMINATOR_PREFIX = "first";
@@ -12,11 +11,4 @@ public FirstStatefulSet() {
super(DISCRIMINATOR_PREFIX);
}
-
- public static class Discriminator extends NamePrefixResourceDiscriminator {
- protected Discriminator() {
- super(DISCRIMINATOR_PREFIX);
- }
- }
-
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/NamePrefixResourceDiscriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/NamePrefixResourceDiscriminator.java
deleted file mode 100644
index eef8566c78..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/NamePrefixResourceDiscriminator.java
+++ /dev/null
@@ -1,31 +0,0 @@
-package io.javaoperatorsdk.operator.sample.complexdependent.dependent;
-
-import java.util.Optional;
-import java.util.stream.Collectors;
-
-import io.fabric8.kubernetes.api.model.HasMetadata;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.sample.complexdependent.ComplexDependentCustomResource;
-
-public abstract class NamePrefixResourceDiscriminator
- implements ResourceDiscriminator {
-
- private final String prefix;
-
- protected NamePrefixResourceDiscriminator(String prefix) {
- this.prefix = prefix;
- }
-
- @Override
- public Optional distinguish(Class resource, ComplexDependentCustomResource primary,
- Context context) {
- var resources = context.getSecondaryResources(resource);
- var filtered = resources.stream().filter(r -> r.getMetadata().getName().startsWith(prefix))
- .collect(Collectors.toList());
- if (filtered.size() > 1) {
- throw new IllegalStateException("More resources than expected for" + primary);
- }
- return filtered.isEmpty() ? Optional.empty() : Optional.of(filtered.get(0));
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondService.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondService.java
index c939d1c2e6..ee6f5210d0 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondService.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondService.java
@@ -1,9 +1,8 @@
package io.javaoperatorsdk.operator.sample.complexdependent.dependent;
-import io.fabric8.kubernetes.api.model.Service;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-@KubernetesDependent(resourceDiscriminator = SecondService.Discriminator.class)
+@KubernetesDependent()
public class SecondService extends BaseService {
public static final String DISCRIMINATOR_PREFIX = "second";
@@ -11,10 +10,4 @@ public class SecondService extends BaseService {
public SecondService() {
super(DISCRIMINATOR_PREFIX);
}
-
- public static class Discriminator extends NamePrefixResourceDiscriminator {
- protected Discriminator() {
- super(DISCRIMINATOR_PREFIX);
- }
- }
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondStatefulSet.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondStatefulSet.java
index 7a07682c57..3786d90c00 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondStatefulSet.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/complexdependent/dependent/SecondStatefulSet.java
@@ -1,9 +1,8 @@
package io.javaoperatorsdk.operator.sample.complexdependent.dependent;
-import io.fabric8.kubernetes.api.model.apps.StatefulSet;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-@KubernetesDependent(resourceDiscriminator = SecondStatefulSet.Discriminator.class)
+@KubernetesDependent
public class SecondStatefulSet extends BaseStatefulSet {
public static final String DISCRIMINATOR_PREFIX = "second";
@@ -12,9 +11,4 @@ public SecondStatefulSet() {
super(DISCRIMINATOR_PREFIX);
}
- public static class Discriminator extends NamePrefixResourceDiscriminator {
- protected Discriminator() {
- super(DISCRIMINATOR_PREFIX);
- }
- }
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestCustomResource.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestCustomResource.java
deleted file mode 100644
index 729b1d80eb..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestCustomResource.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package io.javaoperatorsdk.operator.sample.indexdiscriminator;
-
-import io.fabric8.kubernetes.api.model.Namespaced;
-import io.fabric8.kubernetes.client.CustomResource;
-import io.fabric8.kubernetes.model.annotation.Group;
-import io.fabric8.kubernetes.model.annotation.ShortNames;
-import io.fabric8.kubernetes.model.annotation.Version;
-
-@Group("sample.javaoperatorsdk")
-@Version("v1")
-@ShortNames("idt")
-public class IndexDiscriminatorTestCustomResource
- extends CustomResource
- implements Namespaced {
-
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestDRConfigMap.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestDRConfigMap.java
deleted file mode 100644
index 88dc40f55c..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestDRConfigMap.java
+++ /dev/null
@@ -1,38 +0,0 @@
-package io.javaoperatorsdk.operator.sample.indexdiscriminator;
-
-import java.util.HashMap;
-import java.util.Map;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.fabric8.kubernetes.api.model.ConfigMapBuilder;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDNoGCKubernetesDependentResource;
-import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-
-@KubernetesDependent
-public class IndexDiscriminatorTestDRConfigMap
- extends CRUDNoGCKubernetesDependentResource {
-
- public static final String DATA_KEY = "key";
- private final String suffix;
-
- public IndexDiscriminatorTestDRConfigMap(String value) {
- super(ConfigMap.class);
- this.suffix = value;
- }
-
- @Override
- protected ConfigMap desired(IndexDiscriminatorTestCustomResource primary,
- Context context) {
- Map data = new HashMap<>();
- data.put(DATA_KEY, primary.getSpec().getValue());
-
- return new ConfigMapBuilder()
- .withNewMetadata()
- .withName(primary.getMetadata().getName() + suffix)
- .withNamespace(primary.getMetadata().getNamespace())
- .endMetadata()
- .withData(data)
- .build();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestReconciler.java
deleted file mode 100644
index 927f7e8efd..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestReconciler.java
+++ /dev/null
@@ -1,104 +0,0 @@
-package io.javaoperatorsdk.operator.sample.indexdiscriminator;
-
-import java.util.Collections;
-import java.util.List;
-import java.util.Map;
-import java.util.concurrent.atomic.AtomicInteger;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
-import io.javaoperatorsdk.operator.api.reconciler.*;
-import io.javaoperatorsdk.operator.processing.event.source.EventSource;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
-
-@ControllerConfiguration
-public class IndexDiscriminatorTestReconciler
- implements Reconciler,
- Cleaner,
- TestExecutionInfoProvider {
-
- public static final String FIRST_CONFIG_MAP_SUFFIX_1 = "-1";
- public static final String FIRST_CONFIG_MAP_SUFFIX_2 = "-2";
- public static final String CONFIG_MAP_INDEX_1 = "CONFIG_MAP_INDEX1";
- public static final String CONFIG_MAP_INDEX_2 = "CONFIG_MAP_INDEX2";
-
- private final AtomicInteger numberOfExecutions = new AtomicInteger(0);
-
- private final IndexDiscriminatorTestDRConfigMap firstDependentResourceConfigMap;
- private final IndexDiscriminatorTestDRConfigMap secondDependentResourceConfigMap;
-
- public IndexDiscriminatorTestReconciler() {
- firstDependentResourceConfigMap =
- new IndexDiscriminatorTestDRConfigMap(FIRST_CONFIG_MAP_SUFFIX_1);
- secondDependentResourceConfigMap =
- new IndexDiscriminatorTestDRConfigMap(FIRST_CONFIG_MAP_SUFFIX_2);
- }
-
- @Override
- public UpdateControl reconcile(
- IndexDiscriminatorTestCustomResource resource,
- Context context) {
- numberOfExecutions.getAndIncrement();
- firstDependentResourceConfigMap.reconcile(resource, context);
- secondDependentResourceConfigMap.reconcile(resource, context);
- return UpdateControl.noUpdate();
- }
-
- public int getNumberOfExecutions() {
- return numberOfExecutions.get();
- }
-
- @Override
- public Map prepareEventSources(
- EventSourceContext context) {
-
- InformerEventSource eventSource =
- new InformerEventSource<>(InformerConfiguration.from(ConfigMap.class, context)
- .build(), context);
-
- eventSource.addIndexer(CONFIG_MAP_INDEX_1, cm -> {
- if (cm.getMetadata().getName().endsWith(FIRST_CONFIG_MAP_SUFFIX_1)) {
- return List.of(configMapKey(cm));
- } else {
- return Collections.emptyList();
- }
- });
- eventSource.addIndexer(CONFIG_MAP_INDEX_2, cm -> {
- if (cm.getMetadata().getName().endsWith(FIRST_CONFIG_MAP_SUFFIX_2)) {
- return List.of(configMapKey(cm));
- } else {
- return Collections.emptyList();
- }
- });
-
- firstDependentResourceConfigMap.configureWith(eventSource);
- secondDependentResourceConfigMap.configureWith(eventSource);
-
- firstDependentResourceConfigMap
- .setResourceDiscriminator(
- new TestIndexDiscriminator(CONFIG_MAP_INDEX_1, FIRST_CONFIG_MAP_SUFFIX_1));
- secondDependentResourceConfigMap
- .setResourceDiscriminator(
- new TestIndexDiscriminator(CONFIG_MAP_INDEX_2, FIRST_CONFIG_MAP_SUFFIX_2));
- return EventSourceUtils.nameEventSources(eventSource);
- }
-
- public static String configMapKey(ConfigMap configMap) {
- return configMap.getMetadata().getName() + "#" + configMap.getMetadata().getNamespace();
- }
-
- public static String configMapKeyFromPrimary(IndexDiscriminatorTestCustomResource primary,
- String nameSuffix) {
- return primary.getMetadata().getName() + nameSuffix + "#"
- + primary.getMetadata().getNamespace();
- }
-
- @Override
- public DeleteControl cleanup(IndexDiscriminatorTestCustomResource resource,
- Context context) {
- firstDependentResourceConfigMap.delete(resource, context);
- secondDependentResourceConfigMap.delete(resource, context);
- return DeleteControl.defaultDelete();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestSpec.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestSpec.java
deleted file mode 100644
index fcedd48abe..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestSpec.java
+++ /dev/null
@@ -1,15 +0,0 @@
-package io.javaoperatorsdk.operator.sample.indexdiscriminator;
-
-public class IndexDiscriminatorTestSpec {
-
- private String value;
-
- public String getValue() {
- return value;
- }
-
- public IndexDiscriminatorTestSpec setValue(String value) {
- this.value = value;
- return this;
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestStatus.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestStatus.java
deleted file mode 100644
index d31c86e8de..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/IndexDiscriminatorTestStatus.java
+++ /dev/null
@@ -1,5 +0,0 @@
-package io.javaoperatorsdk.operator.sample.indexdiscriminator;
-
-public class IndexDiscriminatorTestStatus {
-
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/TestIndexDiscriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/TestIndexDiscriminator.java
deleted file mode 100644
index a56e44ced8..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/indexdiscriminator/TestIndexDiscriminator.java
+++ /dev/null
@@ -1,14 +0,0 @@
-package io.javaoperatorsdk.operator.sample.indexdiscriminator;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.javaoperatorsdk.operator.api.reconciler.IndexDiscriminator;
-
-import static io.javaoperatorsdk.operator.sample.indexdiscriminator.IndexDiscriminatorTestReconciler.configMapKeyFromPrimary;
-
-public class TestIndexDiscriminator
- extends IndexDiscriminator {
-
- public TestIndexDiscriminator(String indexName, String nameSuffix) {
- super(indexName, p -> configMapKeyFromPrimary(p, nameSuffix));
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentresourcewithdiscriminator/MultipleDependentResourceWithDiscriminatorReconciler.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentresourcewithdiscriminator/MultipleDependentResourceWithDiscriminatorReconciler.java
index aae9d23cc7..f82d178bcb 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentresourcewithdiscriminator/MultipleDependentResourceWithDiscriminatorReconciler.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentresourcewithdiscriminator/MultipleDependentResourceWithDiscriminatorReconciler.java
@@ -6,7 +6,6 @@
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
import io.javaoperatorsdk.operator.api.reconciler.*;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
import io.javaoperatorsdk.operator.support.TestExecutionInfoProvider;
@@ -26,17 +25,6 @@ public class MultipleDependentResourceWithDiscriminatorReconciler
public MultipleDependentResourceWithDiscriminatorReconciler() {
firstDependentResourceConfigMap = new MultipleDependentResourceConfigMap(FIRST_CONFIG_MAP_ID);
secondDependentResourceConfigMap = new MultipleDependentResourceConfigMap(SECOND_CONFIG_MAP_ID);
-
- firstDependentResourceConfigMap
- .setResourceDiscriminator(
- new ResourceIDMatcherDiscriminator<>(
- p -> new ResourceID(p.getConfigMapName(FIRST_CONFIG_MAP_ID),
- p.getMetadata().getNamespace())));
- secondDependentResourceConfigMap
- .setResourceDiscriminator(
- new ResourceIDMatcherDiscriminator<>(
- p -> new ResourceID(p.getConfigMapName(SECOND_CONFIG_MAP_ID),
- p.getMetadata().getNamespace())));
}
@Override
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/ConfigMap1MultiInformerDiscriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/ConfigMap1MultiInformerDiscriminator.java
deleted file mode 100644
index 32cf830bc1..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/ConfigMap1MultiInformerDiscriminator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package io.javaoperatorsdk.operator.sample.multipledependentsametypemultiinformer;
-
-import java.util.Optional;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-
-import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceConfigMap1.NAME_SUFFIX;
-
-public class ConfigMap1MultiInformerDiscriminator
- implements
- ResourceDiscriminator {
- @Override
- public Optional distinguish(Class resource,
- MultipleManagedDependentResourceMultiInformerCustomResource primary,
- Context context) {
- InformerEventSource ies =
- (InformerEventSource) context
- .eventSourceRetriever().getResourceEventSourceFor(ConfigMap.class,
- MultipleManagedDependentResourceMultiInformerReconciler.CONFIG_MAP_1_DR);
-
- return ies.get(new ResourceID(primary.getMetadata().getName() + NAME_SUFFIX,
- primary.getMetadata().getNamespace()));
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/ConfigMap2MultiInformerDiscriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/ConfigMap2MultiInformerDiscriminator.java
deleted file mode 100644
index cc6a0a656e..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/ConfigMap2MultiInformerDiscriminator.java
+++ /dev/null
@@ -1,28 +0,0 @@
-package io.javaoperatorsdk.operator.sample.multipledependentsametypemultiinformer;
-
-import java.util.Optional;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-
-import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceConfigMap2.NAME_SUFFIX;
-
-public class ConfigMap2MultiInformerDiscriminator
- implements
- ResourceDiscriminator {
- @Override
- public Optional distinguish(Class resource,
- MultipleManagedDependentResourceMultiInformerCustomResource primary,
- Context context) {
- InformerEventSource ies =
- (InformerEventSource) context
- .eventSourceRetriever().getResourceEventSourceFor(ConfigMap.class,
- MultipleManagedDependentResourceMultiInformerReconciler.CONFIG_MAP_2_DR);
-
- return ies.get(new ResourceID(primary.getMetadata().getName() + NAME_SUFFIX,
- primary.getMetadata().getNamespace()));
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java
index 2a63b7267e..510ea37075 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap1.java
@@ -10,7 +10,7 @@
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
import io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceReconciler;
-@KubernetesDependent(resourceDiscriminator = ConfigMap1MultiInformerDiscriminator.class)
+@KubernetesDependent
public class MultipleManagedDependentResourceMultiInformerConfigMap1
extends
CRUDKubernetesDependentResource {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java
index 8db20cac14..2d27e162a7 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multipledependentsametypemultiinformer/MultipleManagedDependentResourceMultiInformerConfigMap2.java
@@ -11,7 +11,7 @@
import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceReconciler.DATA_KEY;
-@KubernetesDependent(resourceDiscriminator = ConfigMap2MultiInformerDiscriminator.class)
+@KubernetesDependent
public class MultipleManagedDependentResourceMultiInformerConfigMap2
extends
CRUDKubernetesDependentResource {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/ConfigMap1Discriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/ConfigMap1Discriminator.java
deleted file mode 100644
index cc20dfa45e..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/ConfigMap1Discriminator.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype;
-
-import java.util.Optional;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-
-import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceConfigMap1.NAME_SUFFIX;
-
-public class ConfigMap1Discriminator
- implements ResourceDiscriminator {
- @Override
- public Optional distinguish(Class resource,
- MultipleManagedDependentResourceCustomResource primary,
- Context context) {
- InformerEventSource ies =
- (InformerEventSource) context
- .eventSourceRetriever().getResourceEventSourceFor(ConfigMap.class);
-
- return ies.get(new ResourceID(primary.getMetadata().getName() + NAME_SUFFIX,
- primary.getMetadata().getNamespace()));
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/ConfigMap2Discriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/ConfigMap2Discriminator.java
deleted file mode 100644
index 8bda6afcee..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/ConfigMap2Discriminator.java
+++ /dev/null
@@ -1,26 +0,0 @@
-package io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype;
-
-import java.util.Optional;
-
-import io.fabric8.kubernetes.api.model.ConfigMap;
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
-
-import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceConfigMap2.NAME_SUFFIX;
-
-public class ConfigMap2Discriminator
- implements ResourceDiscriminator {
- @Override
- public Optional distinguish(Class resource,
- MultipleManagedDependentResourceCustomResource primary,
- Context context) {
- InformerEventSource ies =
- (InformerEventSource) context
- .eventSourceRetriever().getResourceEventSourceFor(ConfigMap.class);
-
- return ies.get(new ResourceID(primary.getMetadata().getName() + NAME_SUFFIX,
- primary.getMetadata().getNamespace()));
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java
index 98f8033076..8fe7cf5330 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap1.java
@@ -9,7 +9,7 @@
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-@KubernetesDependent(resourceDiscriminator = ConfigMap1Discriminator.class)
+@KubernetesDependent
public class MultipleManagedDependentResourceConfigMap1
extends
CRUDKubernetesDependentResource {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java
index d4cdd4170f..b76f108d6b 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanageddependentsametype/MultipleManagedDependentResourceConfigMap2.java
@@ -11,7 +11,7 @@
import static io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceReconciler.DATA_KEY;
-@KubernetesDependent(resourceDiscriminator = ConfigMap2Discriminator.class)
+@KubernetesDependent
public class MultipleManagedDependentResourceConfigMap2
extends
CRUDKubernetesDependentResource {
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource1.java
index cfe67a3796..4dee39e8e6 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource1.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource1.java
@@ -4,10 +4,6 @@ public class ExternalDependentResource1 extends AbstractExternalDependentResourc
public static final String SUFFIX = "-1";
- public ExternalDependentResource1() {
- setResourceDiscriminator(new ExternalResourceDiscriminator(SUFFIX));
- }
-
@Override
protected String resourceIDSuffix() {
return SUFFIX;
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource2.java
index 29bb237e1a..b37aa65bdf 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource2.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalDependentResource2.java
@@ -4,10 +4,6 @@ public class ExternalDependentResource2 extends AbstractExternalDependentResourc
public static final String SUFFIX = "-2";
- public ExternalDependentResource2() {
- setResourceDiscriminator(new ExternalResourceDiscriminator(SUFFIX));
- }
-
@Override
protected String resourceIDSuffix() {
return SUFFIX;
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalResourceDiscriminator.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalResourceDiscriminator.java
deleted file mode 100644
index 5a394113c1..0000000000
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/multiplemanagedexternaldependenttype/ExternalResourceDiscriminator.java
+++ /dev/null
@@ -1,25 +0,0 @@
-package io.javaoperatorsdk.operator.sample.multiplemanagedexternaldependenttype;
-
-import java.util.Optional;
-
-import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceDiscriminator;
-import io.javaoperatorsdk.operator.support.ExternalResource;
-
-public class ExternalResourceDiscriminator implements
- ResourceDiscriminator {
-
- private final String suffix;
-
- public ExternalResourceDiscriminator(String suffix) {
- this.suffix = suffix;
- }
-
- @Override
- public Optional distinguish(Class resource,
- MultipleManagedExternalDependentResourceCustomResource primary,
- Context context) {
- var resources = context.getSecondaryResources(ExternalResource.class);
- return resources.stream().filter(r -> r.getId().endsWith(suffix)).findFirst();
- }
-}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource1.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource1.java
index bf8d60d9c4..14530cf17e 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource1.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource1.java
@@ -6,14 +6,11 @@
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceIDMatcherDiscriminator;
import io.javaoperatorsdk.operator.api.reconciler.dependent.ReconcileResult;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-@KubernetesDependent(labelSelector = "dependent = cm1",
- resourceDiscriminator = ConfigMapDependentResource1.CM1ResourceDiscriminator.class)
+@KubernetesDependent(labelSelector = "dependent = cm1")
public class ConfigMapDependentResource1 extends
CRUDKubernetesDependentResource {
@@ -45,11 +42,4 @@ protected ConfigMap desired(OrderedManagedDependentCustomResource primary,
return configMap;
}
- public static class CM1ResourceDiscriminator
- extends ResourceIDMatcherDiscriminator {
- public CM1ResourceDiscriminator() {
- super(p -> new ResourceID(p.getMetadata().getName() + "1", p.getMetadata().getNamespace()));
- }
- }
-
}
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource2.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource2.java
index 2b17d615b9..35ae69586e 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource2.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/orderedmanageddependent/ConfigMapDependentResource2.java
@@ -6,14 +6,11 @@
import io.fabric8.kubernetes.api.model.ConfigMap;
import io.fabric8.kubernetes.api.model.ObjectMeta;
import io.javaoperatorsdk.operator.api.reconciler.Context;
-import io.javaoperatorsdk.operator.api.reconciler.ResourceIDMatcherDiscriminator;
import io.javaoperatorsdk.operator.api.reconciler.dependent.ReconcileResult;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.CRUDKubernetesDependentResource;
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependent;
-import io.javaoperatorsdk.operator.processing.event.ResourceID;
-@KubernetesDependent(labelSelector = "dependent = cm2",
- resourceDiscriminator = ConfigMapDependentResource2.CM2ResourceDiscriminator.class)
+@KubernetesDependent(labelSelector = "dependent = cm2")
public class ConfigMapDependentResource2 extends
CRUDKubernetesDependentResource {
@@ -45,11 +42,4 @@ protected ConfigMap desired(OrderedManagedDependentCustomResource primary,
return configMap;
}
- public static class CM2ResourceDiscriminator
- extends ResourceIDMatcherDiscriminator {
- public CM2ResourceDiscriminator() {
- super(p -> new ResourceID(p.getMetadata().getName() + "2", p.getMetadata().getNamespace()));
- }
- }
-
}