Skip to content

Commit 0f68489

Browse files
csvirimetacosm
andauthored
docs: item store on @ControllerConfiguration (#1942)
Co-authored-by: Chris Laprun <[email protected]>
1 parent 385c498 commit 0f68489

File tree

2 files changed

+31
-10
lines changed

2 files changed

+31
-10
lines changed

Diff for: operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java

+13-10
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.javaoperatorsdk.operator.OperatorException;
1111
import io.javaoperatorsdk.operator.ReconcilerUtils;
1212
import io.javaoperatorsdk.operator.api.reconciler.Constants;
13+
import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore;
1314
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
1415
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
1516
import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter;
@@ -125,19 +126,21 @@ default Set<String> getEffectiveNamespaces() {
125126
}
126127

127128
/**
128-
* Replaces the item store in informer. See underling <a href=
129-
* "https://github.com/fabric8io/kubernetes-client/blob/43b67939fde91046ab7fb0c362f500c2b46eb59e/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/informers/impl/DefaultSharedIndexInformer.java#L273">
130-
* method</a> in fabric8 client informer implementation.
129+
* Replaces the item store in informer. See underlying <a href=
130+
* "https://github.com/fabric8io/kubernetes-client/blob/43b67939fde91046ab7fb0c362f500c2b46eb59e/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/informers/impl/DefaultSharedIndexInformer.java#L273">method</a>
131+
* in fabric8 client informer implementation.
131132
*
132-
* The main goal, is to be able to use limited caches.
133+
* <p>
134+
* The main goal, is to be able to use limited caches or provide any custom implementation.
135+
* </p>
133136
*
134-
* See {@link io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore} and
135-
* <a href=
136-
* "https://github.com/operator-framework/java-operator-sdk/blob/d6eda0138dba6d93c0ff22a5ffcaa7663fa65ca2/caffein-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeinBoundedCache.java">
137-
* CaffeinBoundedCache</a>
137+
* <p>
138+
* See {@link BoundedItemStore} and <a href=
139+
* "https://github.com/operator-framework/java-operator-sdk/blob/main/caffeine-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCache.java">CaffeineBoundedCache</a>
140+
* </p>
138141
*
139-
* @return Optional ItemStore implementation. If present this item store will be used inside the
140-
* informers.
142+
* @return Optional {@link ItemStore} implementation. If present this item store will be used by
143+
* the informers.
141144
*/
142145
default Optional<ItemStore<R>> getItemStore() {
143146
return Optional.empty();

Diff for: operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java

+18
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
1111
import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter;
1212
import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter;
13+
import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore;
1314
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
1415
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
1516
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
@@ -128,5 +129,22 @@ MaxReconciliationInterval maxReconciliationInterval() default @MaxReconciliation
128129
*/
129130
Class<? extends RateLimiter> rateLimiter() default LinearRateLimiter.class;
130131

132+
/**
133+
* Replaces the item store used by the informer for the associated primary resource controller.
134+
* See underlying <a href=
135+
* "https://github.com/fabric8io/kubernetes-client/blob/43b67939fde91046ab7fb0c362f500c2b46eb59e/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/informers/impl/DefaultSharedIndexInformer.java#L273">
136+
* method</a> in fabric8 client informer implementation.
137+
*
138+
* <p>
139+
* The main goal, is to be able to use limited caches or provide any custom implementation.
140+
* </p>
141+
*
142+
* <p>
143+
* See {@link BoundedItemStore} and <a href=
144+
* "https://github.com/operator-framework/java-operator-sdk/blob/main/caffeine-bounded-cache-support/src/main/java/io/javaoperatorsdk/operator/processing/event/source/cache/CaffeineBoundedCache.java">CaffeinBoundedCache</a>
145+
* </p>
146+
*
147+
* @return the class of the {@link ItemStore} implementation to use
148+
*/
131149
Class<? extends ItemStore> itemStore() default ItemStore.class;
132150
}

0 commit comments

Comments
 (0)