diff --git a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfiguration.java b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfiguration.java index 24b6a0d8f..66a4236d6 100644 --- a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfiguration.java +++ b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfiguration.java @@ -1,10 +1,12 @@ package io.quarkiverse.operatorsdk.runtime; +import java.util.List; import java.util.Set; import java.util.stream.Collectors; import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.client.informers.cache.ItemStore; +import io.javaoperatorsdk.operator.api.config.informer.FieldSelector; import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter; import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter; @@ -18,10 +20,11 @@ public class QuarkusInformerConfiguration extends Informe public QuarkusInformerConfiguration(Class resourceClass, String name, Set namespaces, boolean followControllerNamespaceChanges, String labelSelector, OnAddFilter onAddFilter, OnUpdateFilter onUpdateFilter, OnDeleteFilter onDeleteFilter, - GenericFilter genericFilter, ItemStore itemStore, Long informerListLimit) { + GenericFilter genericFilter, ItemStore itemStore, Long informerListLimit, + QuarkusFieldSelector fieldSelector) { super(resourceClass, name, namespaces, followControllerNamespaceChanges, labelSelector, onAddFilter, onUpdateFilter, onDeleteFilter, - genericFilter, itemStore, informerListLimit); + genericFilter, itemStore, informerListLimit, fieldSelector); } public QuarkusInformerConfiguration(InformerConfiguration config) { @@ -29,10 +32,21 @@ public QuarkusInformerConfiguration(InformerConfiguration config) { config.getFollowControllerNamespaceChanges(), config.getLabelSelector(), config.getOnAddFilter(), config.getOnUpdateFilter(), config.getOnDeleteFilter(), config.getGenericFilter(), - config.getItemStore(), config.getInformerListLimit()); + config.getItemStore(), config.getInformerListLimit(), sanitizeFieldSelector(config.getFieldSelector())); + } + + public static class QuarkusFieldSelector extends FieldSelector { + @RecordableConstructor + public QuarkusFieldSelector(List fields) { + super(fields); + } } private static Set sanitizeNamespaces(Set namespaces) { return namespaces.stream().map(String::trim).collect(Collectors.toSet()); } + + private static QuarkusFieldSelector sanitizeFieldSelector(FieldSelector fieldSelector) { + return fieldSelector != null ? new QuarkusFieldSelector(fieldSelector.getFields()) : null; + } } diff --git a/pom.xml b/pom.xml index 7e695fc1e..039efb3ef 100644 --- a/pom.xml +++ b/pom.xml @@ -12,8 +12,8 @@ pom Quarkus - Operator SDK - Parent - 3.26.3 - 5.1.2 + 3.29.0.CR1 + 5.2.0-SNAPSHOT 1.2.7 @@ -163,9 +163,9 @@ - oss-sonatype - oss-sonatype - https://oss.sonatype.org/content/repositories/snapshots/ + central-snapshots + Maven Central Snapshots + https://central.sonatype.com/repository/maven-snapshots/ true