Skip to content

Commit 0c4984a

Browse files
committed
IT fix
Signed-off-by: Attila Mészáros <csviri@gmail.com>
1 parent 23d0a99 commit 0c4984a

File tree

2 files changed

+19
-7
lines changed

2 files changed

+19
-7
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentConverter.java

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
import java.lang.reflect.InvocationTargetException;
44
import java.util.Set;
55

6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
69
import io.fabric8.kubernetes.api.model.GenericKubernetesResource;
710
import io.fabric8.kubernetes.api.model.HasMetadata;
811
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
@@ -26,6 +29,8 @@
2629
public class KubernetesDependentConverter<R extends HasMetadata, P extends HasMetadata> implements
2730
ConfigurationConverter<KubernetesDependent, KubernetesDependentResourceConfig<R>> {
2831

32+
private static final Logger log = LoggerFactory.getLogger(KubernetesDependentConverter.class);
33+
2934
@Override
3035
@SuppressWarnings({"unchecked", "rawtypes"})
3136
public KubernetesDependentResourceConfig<R> configFrom(KubernetesDependent configAnnotation,
@@ -135,12 +140,14 @@ private InformerConfiguration<R> createInformerConfiguration(KubernetesDependent
135140
informerConfig.withSecondaryToPrimaryMapper(secondaryToPrimaryMapper);
136141
}
137142
} else {
138-
var mapper = getSecondaryToPrimaryMapper(dependentResourceClass,
139-
controllerConfig.getResourceClass()).orElseThrow(
140-
() -> new IllegalStateException(
141-
"No suitable SecondaryToPrimaryMapper for informer of dependent resource: "
142-
+ dependentResourceClass.getName()));
143-
informerConfig.withSecondaryToPrimaryMapper(mapper);
143+
getSecondaryToPrimaryMapper(dependentResourceClass,
144+
controllerConfig.getResourceClass())
145+
.ifPresentOrElse(informerConfig::withSecondaryToPrimaryMapper, () -> {
146+
if (spec.getUseEventSourceWithName().isEmpty()) {
147+
log.warn("No SecondaryToPrimaryMapper going to be set for dependent resource." +
148+
" This might be an issue with the setup of the dependent resource");
149+
}
150+
});
144151
}
145152

146153

operator-framework/src/test/java/io/javaoperatorsdk/operator/sample/primaryindexer/DependentPrimaryIndexerTestReconciler.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,13 +18,17 @@
1818
import io.javaoperatorsdk.operator.processing.event.source.EventSource;
1919
import io.javaoperatorsdk.operator.processing.event.source.informer.InformerEventSource;
2020

21-
@Workflow(dependents = @Dependent(
21+
import static io.javaoperatorsdk.operator.sample.primaryindexer.DependentPrimaryIndexerTestReconciler.CONFIG_MAP_EVENT_SOURCE;
22+
23+
@Workflow(dependents = @Dependent(useEventSourceWithName = CONFIG_MAP_EVENT_SOURCE,
2224
type = DependentPrimaryIndexerTestReconciler.ReadOnlyConfigMapDependent.class))
2325
@ControllerConfiguration
2426
public class DependentPrimaryIndexerTestReconciler extends AbstractPrimaryIndexerTestReconciler
2527
implements
2628
Reconciler<PrimaryIndexerTestCustomResource> {
2729

30+
public static final String CONFIG_MAP_EVENT_SOURCE = "configMapEventSource";
31+
2832
@Override
2933
public List<EventSource> prepareEventSources(
3034
EventSourceContext<PrimaryIndexerTestCustomResource> context) {
@@ -35,6 +39,7 @@ public List<EventSource> prepareEventSources(
3539
InformerEventSource<ConfigMap, PrimaryIndexerTestCustomResource> es =
3640
new InformerEventSource<>(
3741
InformerConfiguration.from(ConfigMap.class, PrimaryIndexerTestCustomResource.class)
42+
.withName(CONFIG_MAP_EVENT_SOURCE)
3843
.withSecondaryToPrimaryMapper(resource -> cache
3944
.byIndex(CONFIG_MAP_RELATION_INDEXER, resource.getMetadata().getName())
4045
.stream()

0 commit comments

Comments
 (0)