Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit aaeb978

Browse files
committedJul 12, 2024
feat: move controller informer-related configuration to InformerConfig (#2455)
* feat: move controller informer-related configuration to InformerConfig Signed-off-by: Chris Laprun <[email protected]> * refactor: start isolating ResourceConfiguration Signed-off-by: Chris Laprun <[email protected]> * fix: initFromAnnotation now properly inits the current instance Signed-off-by: Chris Laprun <[email protected]> * fix: default onDeleteFilter implementation Signed-off-by: Chris Laprun <[email protected]> * fix: properly set default namespaces in controller case Signed-off-by: Chris Laprun <[email protected]> * refactor: remove KubernetesDependentInformerConfigBuilder Signed-off-by: Chris Laprun <[email protected]> * refactor: use InformerConfigHolder in more places, unifying handling Signed-off-by: Chris Laprun <[email protected]> * fix: properly propagate name to informer config Signed-off-by: Chris Laprun <[email protected]> * feat: add factory method to init builder from an extising configuation Signed-off-by: Chris Laprun <[email protected]> * fix: remove potentially problematic default implementation Signed-off-by: Chris Laprun <[email protected]> --------- Signed-off-by: Chris Laprun <[email protected]>
1 parent 6b5dc55 commit aaeb978

File tree

42 files changed

+710
-867
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+710
-867
lines changed
 

‎caffeine-bounded-cache-support/src/test/java/io/javaoperatorsdk/operator/processing/event/source/cache/sample/AbstractTestReconciler.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ public List<EventSource<?, P>> prepareEventSources(
7878
ConfigMap.class, Duration.ofMinutes(1), 1); // setting max size for testing purposes
7979

8080
var es = new InformerEventSource<>(InformerConfiguration.from(ConfigMap.class, primaryClass())
81-
.withItemStore(boundedItemStore)
81+
.withInformerConfiguration(c -> c.withItemStore(boundedItemStore))
8282
.withSecondaryToPrimaryMapper(
8383
Mappers.fromOwnerReferences(context.getPrimaryResourceClass(),
8484
this instanceof BoundedCacheClusterScopeTestReconciler))

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java

+5-33
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313

1414
import io.fabric8.kubernetes.api.model.HasMetadata;
1515
import io.fabric8.kubernetes.client.KubernetesClient;
16-
import io.fabric8.kubernetes.client.informers.cache.ItemStore;
1716
import io.javaoperatorsdk.operator.ReconcilerUtils;
1817
import io.javaoperatorsdk.operator.api.config.Utils.Configurator;
1918
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceConfigurationResolver;
@@ -24,11 +23,9 @@
2423
import io.javaoperatorsdk.operator.api.reconciler.Workflow;
2524
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
2625
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
26+
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfigHolder;
2727
import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition;
2828
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
29-
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
30-
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
31-
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
3229
import io.javaoperatorsdk.operator.processing.retry.Retry;
3330

3431
import static io.javaoperatorsdk.operator.api.config.ControllerConfiguration.CONTROLLER_NAME_AS_FIELD_MANAGER;
@@ -278,43 +275,20 @@ private <P extends HasMetadata> ResolvedControllerConfiguration<P> controllerCon
278275
fieldManager.equals(CONTROLLER_NAME_AS_FIELD_MANAGER) ? name
279276
: fieldManager;
280277

281-
var informerListLimitValue = valueOrDefaultFromAnnotation(annotation,
282-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::informerListLimit,
283-
"informerListLimit");
284-
final var informerListLimit =
285-
informerListLimitValue == Constants.NO_LONG_VALUE_SET ? null
286-
: informerListLimitValue;
278+
InformerConfigHolder<P> informerConfig = InformerConfigHolder.builder(resourceClass)
279+
.initFromAnnotation(annotation != null ? annotation.informerConfig() : null, context)
280+
.buildForController();
287281

288282
return new ResolvedControllerConfiguration<P>(
289283
resourceClass, name, generationAware,
290284
associatedReconcilerClass, retry, rateLimiter,
291285
ResolvedControllerConfiguration.getMaxReconciliationInterval(interval, timeUnit),
292-
Utils.instantiate(valueOrDefaultFromAnnotation(annotation,
293-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::onAddFilter,
294-
"onAddFilter"), OnAddFilter.class, context),
295-
Utils.instantiate(valueOrDefaultFromAnnotation(annotation,
296-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::onUpdateFilter,
297-
"onUpdateFilter"), OnUpdateFilter.class, context),
298-
Utils.instantiate(valueOrDefaultFromAnnotation(annotation,
299-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::genericFilter,
300-
"genericFilter"), GenericFilter.class, context),
301-
Set.of(valueOrDefaultFromAnnotation(annotation,
302-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::namespaces,
303-
"namespaces")),
304286
valueOrDefaultFromAnnotation(annotation,
305287
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::finalizerName,
306288
"finalizerName"),
307-
valueOrDefaultFromAnnotation(annotation,
308-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::labelSelector,
309-
"labelSelector"),
310289
null,
311-
Utils.instantiate(
312-
valueOrDefaultFromAnnotation(annotation,
313-
io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration::itemStore,
314-
"itemStore"),
315-
ItemStore.class, context),
316290
dependentFieldManager,
317-
this, informerListLimit);
291+
this, informerConfig);
318292
}
319293

320294

@@ -326,6 +300,4 @@ protected boolean createIfNeeded() {
326300
public boolean checkCRDAndValidateLocalModel() {
327301
return Utils.shouldCheckCRDAndValidateLocalModel();
328302
}
329-
330-
331303
}

0 commit comments

Comments
 (0)
Please sign in to comment.