From f225dcda8d16d871b04f6479dbfe9be72381ca54 Mon Sep 17 00:00:00 2001 From: csviri Date: Wed, 14 Jun 2023 10:34:56 +0200 Subject: [PATCH 1/3] docs: item store on @ControllerConfiguration --- .../api/reconciler/ControllerConfiguration.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java index e2c0de896b..3887de29ee 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java @@ -128,5 +128,20 @@ MaxReconciliationInterval maxReconciliationInterval() default @MaxReconciliation */ Class rateLimiter() default LinearRateLimiter.class; + /** + * Replaces the item store in informer. See underling + * method in fabric8 client informer implementation. + * + * The main goal, is to be able to use limited caches. + * + * See {@link io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore} and + * + * CaffeinBoundedCache + * + * @return Optional ItemStore implementation. If present this item store will be used inside the + * informers. + */ Class itemStore() default ItemStore.class; } From 6ee60b8a99d09075ac254286282755c572e05953 Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 19 Jun 2023 16:26:16 +0200 Subject: [PATCH 2/3] improved --- .../operator/api/config/ResourceConfiguration.java | 6 +++--- .../operator/api/reconciler/ControllerConfiguration.java | 7 ++++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java index b704e89783..d2c17568af 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java @@ -129,12 +129,12 @@ default Set getEffectiveNamespaces() { * "https://github.com/fabric8io/kubernetes-client/blob/43b67939fde91046ab7fb0c362f500c2b46eb59e/kubernetes-client/src/main/java/io/fabric8/kubernetes/client/informers/impl/DefaultSharedIndexInformer.java#L273"> * method in fabric8 client informer implementation. * - * The main goal, is to be able to use limited caches. + * The main goal, is to be able to use limited caches or provide any custom implementation. * * See {@link io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore} and * - * CaffeinBoundedCache + * "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"> CaffeinBoundedCache * * @return Optional ItemStore implementation. If present this item store will be used inside the * informers. diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java index 3887de29ee..8da4bc065d 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java @@ -129,15 +129,16 @@ MaxReconciliationInterval maxReconciliationInterval() default @MaxReconciliation Class rateLimiter() default LinearRateLimiter.class; /** - * Replaces the item store in informer. See underling * method in fabric8 client informer implementation. * - * The main goal, is to be able to use limited caches. + * The main goal, is to be able to use limited caches or provide any custom implementation. * * See {@link io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore} and * + * "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 * * @return Optional ItemStore implementation. If present this item store will be used inside the From 32552a159f4c93ba057aa94bcd3bd06d1afffe2d Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Mon, 19 Jun 2023 22:23:36 +0200 Subject: [PATCH 3/3] fix: incorrect return type, formatting and wording --- .../api/config/ResourceConfiguration.java | 21 +++++++++++-------- .../reconciler/ControllerConfiguration.java | 18 +++++++++------- 2 files changed, 22 insertions(+), 17 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java index d2c17568af..128320db43 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java @@ -10,6 +10,7 @@ import io.javaoperatorsdk.operator.OperatorException; import io.javaoperatorsdk.operator.ReconcilerUtils; import io.javaoperatorsdk.operator.api.reconciler.Constants; +import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore; 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.OnUpdateFilter; @@ -125,19 +126,21 @@ default Set getEffectiveNamespaces() { } /** - * Replaces the item store in informer. See underling - * method in fabric8 client informer implementation. + * Replaces the item store in informer. See underlying method + * in fabric8 client informer implementation. * + *

* The main goal, is to be able to use limited caches or provide any custom implementation. + *

* - * See {@link io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore} and - * - * * CaffeinBoundedCache"> CaffeinBoundedCache + *

+ * See {@link BoundedItemStore} and CaffeineBoundedCache + *

* - * @return Optional ItemStore implementation. If present this item store will be used inside the - * informers. + * @return Optional {@link ItemStore} implementation. If present this item store will be used by + * the informers. */ default Optional> getItemStore() { return Optional.empty(); diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java index 8da4bc065d..49f97a31a6 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java @@ -10,6 +10,7 @@ import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; import io.javaoperatorsdk.operator.processing.event.rate.LinearRateLimiter; import io.javaoperatorsdk.operator.processing.event.rate.RateLimiter; +import io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore; import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter; import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter; import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter; @@ -129,20 +130,21 @@ MaxReconciliationInterval maxReconciliationInterval() default @MaxReconciliation Class rateLimiter() default LinearRateLimiter.class; /** - * Replaces the item store in informer for the underlying controller primary resource. See - * underling * method in fabric8 client informer implementation. * + *

* The main goal, is to be able to use limited caches or provide any custom implementation. + *

* - * See {@link io.javaoperatorsdk.operator.processing.event.source.cache.BoundedItemStore} and - * - * CaffeinBoundedCache + *

+ * See {@link BoundedItemStore} and CaffeinBoundedCache + *

* - * @return Optional ItemStore implementation. If present this item store will be used inside the - * informers. + * @return the class of the {@link ItemStore} implementation to use */ Class itemStore() default ItemStore.class; }