From c2de9d9e76859956199e85e9bd99f6e3dccfd79d Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 28 Jun 2024 14:44:58 +0200 Subject: [PATCH] feat: adapt to informer configuration changes Signed-off-by: Chris Laprun --- .../bundle/sources/SecondReconciler.java | 3 +- ...arkusControllerConfigurationBuildStep.java | 2 +- .../sources/WatchAllNamespacesReconciler.java | 3 +- ...formerConfigurationObjectSubstitution.java | 35 -------- .../runtime/InformerConfigurationProxy.java | 87 ------------------- ....java => QuarkusInformerConfigHolder.java} | 8 +- ...rkusKubernetesDependentResourceConfig.java | 6 +- .../operatorsdk/it/ConfiguredReconciler.java | 3 +- .../it/CustomRateLimiterReconciler.java | 3 +- .../operatorsdk/it/KeycloakController.java | 3 +- .../it/NamespaceFromEnvReconciler.java | 5 +- .../java/io/halkyon/ExposedAppReconciler.java | 3 +- .../samples/joke/JokeRequestReconciler.java | 3 +- .../samples/pingpong/PingReconciler.java | 3 +- .../samples/pingpong/PongReconciler.java | 3 +- 15 files changed, 29 insertions(+), 141 deletions(-) delete mode 100644 core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationObjectSubstitution.java delete mode 100644 core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationProxy.java rename core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/{QuarkusKubernetesDependentInformerConfig.java => QuarkusInformerConfigHolder.java} (81%) diff --git a/bundle-generator/deployment/src/test/java/io/quarkiverse/operatorsdk/bundle/sources/SecondReconciler.java b/bundle-generator/deployment/src/test/java/io/quarkiverse/operatorsdk/bundle/sources/SecondReconciler.java index 898a4aac3..59d340d97 100644 --- a/bundle-generator/deployment/src/test/java/io/quarkiverse/operatorsdk/bundle/sources/SecondReconciler.java +++ b/bundle-generator/deployment/src/test/java/io/quarkiverse/operatorsdk/bundle/sources/SecondReconciler.java @@ -4,12 +4,13 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; import io.quarkiverse.operatorsdk.annotations.CSVMetadata; import io.quarkiverse.operatorsdk.annotations.RBACRule; @CSVMetadata(bundleName = "second-operator") @RBACRule(apiGroups = SecondReconciler.RBAC_RULE_GROUP, resources = SecondReconciler.RBAC_RULE_RES, verbs = SecondReconciler.RBAC_RULE_VERBS) -@ControllerConfiguration(namespaces = "foo") +@ControllerConfiguration(informerConfig = @InformerConfig(namespaces = "foo")) public class SecondReconciler implements Reconciler { public static final String RBAC_RULE_GROUP = "halkyon.io"; public static final String RBAC_RULE_RES = "SomeResource"; diff --git a/core/deployment/src/main/java/io/quarkiverse/operatorsdk/deployment/QuarkusControllerConfigurationBuildStep.java b/core/deployment/src/main/java/io/quarkiverse/operatorsdk/deployment/QuarkusControllerConfigurationBuildStep.java index 11f264431..4accfa5a1 100644 --- a/core/deployment/src/main/java/io/quarkiverse/operatorsdk/deployment/QuarkusControllerConfigurationBuildStep.java +++ b/core/deployment/src/main/java/io/quarkiverse/operatorsdk/deployment/QuarkusControllerConfigurationBuildStep.java @@ -67,7 +67,7 @@ public KubernetesDependentResourceConfig configFrom(KubernetesDependent configAn // make the configuration bytecode-serializable return new QuarkusKubernetesDependentResourceConfig( original.useSSA(), original.createResourceOnlyIfNotExistingWithSSA(), - new QuarkusKubernetesDependentInformerConfig(original.informerConfig())); + new QuarkusInformerConfigHolder(original.informerConfig())); } }; static { diff --git a/core/deployment/src/test/java/io/quarkiverse/operatorsdk/test/sources/WatchAllNamespacesReconciler.java b/core/deployment/src/test/java/io/quarkiverse/operatorsdk/test/sources/WatchAllNamespacesReconciler.java index b312ef9b4..b1380fc44 100644 --- a/core/deployment/src/test/java/io/quarkiverse/operatorsdk/test/sources/WatchAllNamespacesReconciler.java +++ b/core/deployment/src/test/java/io/quarkiverse/operatorsdk/test/sources/WatchAllNamespacesReconciler.java @@ -6,8 +6,9 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; -@ControllerConfiguration(name = WatchAllNamespacesReconciler.NAME, namespaces = WATCH_ALL_NAMESPACES) +@ControllerConfiguration(name = WatchAllNamespacesReconciler.NAME, informerConfig = @InformerConfig(namespaces = WATCH_ALL_NAMESPACES)) public class WatchAllNamespacesReconciler implements Reconciler { public static final String NAME = "all-namespaces-reconciler"; diff --git a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationObjectSubstitution.java b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationObjectSubstitution.java deleted file mode 100644 index 67ae9d11f..000000000 --- a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationObjectSubstitution.java +++ /dev/null @@ -1,35 +0,0 @@ -package io.quarkiverse.operatorsdk.runtime; - -import org.jboss.logging.Logger; - -import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; -import io.quarkus.runtime.ObjectSubstitution; - -@SuppressWarnings({ "rawtypes", "unchecked" }) -public class InformerConfigurationObjectSubstitution - implements ObjectSubstitution { - private static final Logger log = Logger.getLogger(InformerConfigurationObjectSubstitution.class); - - @Override - public InformerConfigurationProxy serialize(InformerConfiguration obj) { - log.info("Serializing InformerConfiguration: " + obj); - return _serialize(obj); - } - - private static InformerConfigurationProxy _serialize(InformerConfiguration obj) { - return new InformerConfigurationProxy<>(obj.name(), obj.getLabelSelector(), obj.getResourceClass(), - obj.getGroupVersionKind().orElse(null), - new InformerConfigurationProxy.PrimaryToSecondaryMapperProxy<>(obj.getPrimaryToSecondaryMapper()), - new InformerConfigurationProxy.SecondaryToPrimaryMapperProxy<>(obj.getSecondaryToPrimaryMapper()), - obj.getNamespaces(), obj.followControllerNamespaceChanges(), - obj.onAddFilter().orElse(null), obj.onUpdateFilter().orElse(null), obj.onDeleteFilter().orElse(null), - obj.genericFilter().orElse(null), obj.getItemStore().orElse(null), obj.getInformerListLimit().orElse(null)); - } - - @Override - public InformerConfiguration deserialize(InformerConfigurationProxy obj) { - log.info("Deserializing InformerConfiguration: " + obj); - return obj; - } -} diff --git a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationProxy.java b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationProxy.java deleted file mode 100644 index 226249e3b..000000000 --- a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/InformerConfigurationProxy.java +++ /dev/null @@ -1,87 +0,0 @@ -package io.quarkiverse.operatorsdk.runtime; - -import java.util.Set; - -import io.fabric8.kubernetes.api.model.HasMetadata; -import io.fabric8.kubernetes.client.informers.cache.ItemStore; -import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; -import io.javaoperatorsdk.operator.processing.GroupVersionKind; -import io.javaoperatorsdk.operator.processing.event.ResourceID; -import io.javaoperatorsdk.operator.processing.event.source.PrimaryToSecondaryMapper; -import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; -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.OnDeleteFilter; -import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter; - -public class InformerConfigurationProxy extends InformerConfiguration.DefaultInformerConfiguration { - public InformerConfigurationProxy(String name, String labelSelector, Class resourceClass, - GroupVersionKind groupVersionKind, PrimaryToSecondaryMapper primaryToSecondaryMapper, - SecondaryToPrimaryMapper secondaryToPrimaryMapper, Set namespaces, - boolean followControllerNamespaceChanges, OnAddFilter onAddFilter, - OnUpdateFilter onUpdateFilter, OnDeleteFilter onDeleteFilter, - GenericFilter genericFilter, ItemStore itemStore, Long informerListLimit) { - super(name, labelSelector, resourceClass, groupVersionKind, - primaryToSecondaryMapper, secondaryToPrimaryMapper, - namespaces, followControllerNamespaceChanges, onAddFilter, onUpdateFilter, onDeleteFilter, genericFilter, - itemStore, informerListLimit); - } - - public OnAddFilter getOnAddFilter() { - return onAddFilter().orElse(null); - } - - public OnDeleteFilter getOnDeleteFilter() { - return onDeleteFilter().orElse(null); - } - - public OnUpdateFilter getOnUpdateFilter() { - return onUpdateFilter().orElse(null); - } - - public GenericFilter getGenericFilter() { - return genericFilter().orElse(null); - } - - public String getName() { - return name(); - } - - public boolean isFollowControllerNamespaceChanges() { - return followControllerNamespaceChanges(); - } - - public static class PrimaryToSecondaryMapperProxy

implements PrimaryToSecondaryMapper

{ - private final PrimaryToSecondaryMapper

mapper; - - public PrimaryToSecondaryMapperProxy(PrimaryToSecondaryMapper

mapper) { - this.mapper = mapper; - } - - public PrimaryToSecondaryMapper

getMapper() { - return mapper; - } - - @Override - public Set toSecondaryResourceIDs(P p) { - return mapper.toSecondaryResourceIDs(p); - } - } - - public static class SecondaryToPrimaryMapperProxy

implements SecondaryToPrimaryMapper

{ - private final SecondaryToPrimaryMapper

mapper; - - public SecondaryToPrimaryMapperProxy(SecondaryToPrimaryMapper

mapper) { - this.mapper = mapper; - } - - public SecondaryToPrimaryMapper

getMapper() { - return mapper; - } - - @Override - public Set toPrimaryResourceIDs(P p) { - return mapper.toPrimaryResourceIDs(p); - } - } -} diff --git a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentInformerConfig.java b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfigHolder.java similarity index 81% rename from core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentInformerConfig.java rename to core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfigHolder.java index 7c7fefc4c..92e8df2eb 100644 --- a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentInformerConfig.java +++ b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusInformerConfigHolder.java @@ -4,17 +4,17 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.client.informers.cache.ItemStore; -import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentInformerConfig; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfigHolder; 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.OnDeleteFilter; import io.javaoperatorsdk.operator.processing.event.source.filter.OnUpdateFilter; import io.quarkus.runtime.annotations.RecordableConstructor; -public class QuarkusKubernetesDependentInformerConfig extends KubernetesDependentInformerConfig { +public class QuarkusInformerConfigHolder extends InformerConfigHolder { @RecordableConstructor - public QuarkusKubernetesDependentInformerConfig(String name, Set namespaces, + public QuarkusInformerConfigHolder(String name, Set namespaces, boolean followControllerNamespacesOnChange, String labelSelector, OnAddFilter onAddFilter, OnUpdateFilter onUpdateFilter, OnDeleteFilter onDeleteFilter, GenericFilter genericFilter, ItemStore itemStore, Long informerListLimit) { @@ -22,7 +22,7 @@ public QuarkusKubernetesDependentInformerConfig(String name, Set namespa genericFilter, itemStore, informerListLimit); } - public QuarkusKubernetesDependentInformerConfig(KubernetesDependentInformerConfig config) { + public QuarkusInformerConfigHolder(InformerConfigHolder config) { this(config.getName(), config.getNamespaces(), config.isFollowControllerNamespacesOnChange(), config.getLabelSelector(), config.getOnAddFilter(), config.getOnUpdateFilter(), config.getOnDeleteFilter(), config.getGenericFilter(), config.getItemStore(), config.getInformerListLimit()); diff --git a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentResourceConfig.java b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentResourceConfig.java index a15cf713a..6822cf4ca 100644 --- a/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentResourceConfig.java +++ b/core/runtime/src/main/java/io/quarkiverse/operatorsdk/runtime/QuarkusKubernetesDependentResourceConfig.java @@ -3,7 +3,7 @@ import java.util.Set; import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentInformerConfig; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfigHolder; import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig; import io.quarkus.runtime.annotations.RecordableConstructor; @@ -11,7 +11,7 @@ public class QuarkusKubernetesDependentResourceConfig ext @RecordableConstructor public QuarkusKubernetesDependentResourceConfig(Boolean useSSA, boolean createResourceOnlyIfNotExistingWithSSA, - QuarkusKubernetesDependentInformerConfig informerConfig) { + QuarkusInformerConfigHolder informerConfig) { super(useSSA, createResourceOnlyIfNotExistingWithSSA, informerConfig); } @@ -29,7 +29,7 @@ public Boolean isUseSSA() { // Getter required for Quarkus' RecordableConstructor, must match the associated constructor parameter name @SuppressWarnings("unused") - public KubernetesDependentInformerConfig getInformerConfig() { + public InformerConfigHolder getInformerConfig() { return informerConfig(); } diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java index d5880eb4c..26bafc5ac 100644 --- a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java +++ b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/ConfiguredReconciler.java @@ -6,10 +6,11 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; import io.javaoperatorsdk.operator.processing.event.rate.RateLimited; import io.javaoperatorsdk.operator.processing.retry.GradualRetry; -@ControllerConfiguration(name = ConfiguredReconciler.NAME, namespaces = "foo") +@ControllerConfiguration(name = ConfiguredReconciler.NAME, informerConfig = @InformerConfig(namespaces = "foo")) @GradualRetry(maxAttempts = ConfiguredReconciler.MAX_ATTEMPTS, initialInterval = 1000) @RateLimited(maxReconciliations = 1, within = 1, unit = TimeUnit.MINUTES) public class ConfiguredReconciler implements Reconciler { diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CustomRateLimiterReconciler.java b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CustomRateLimiterReconciler.java index ecb156e62..7b7d6967f 100644 --- a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CustomRateLimiterReconciler.java +++ b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/CustomRateLimiterReconciler.java @@ -5,8 +5,9 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; -@ControllerConfiguration(name = CustomRateLimiterReconciler.NAME, rateLimiter = CustomRateLimiter.class, itemStore = NullItemStore.class) +@ControllerConfiguration(name = CustomRateLimiterReconciler.NAME, rateLimiter = CustomRateLimiter.class, informerConfig = @InformerConfig(itemStore = NullItemStore.class)) @CustomRateConfiguration(42) public class CustomRateLimiterReconciler implements Reconciler { diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/KeycloakController.java b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/KeycloakController.java index 388e00103..7ff02a983 100644 --- a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/KeycloakController.java +++ b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/KeycloakController.java @@ -5,8 +5,9 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; -@ControllerConfiguration(namespaces = Constants.WATCH_CURRENT_NAMESPACE) +@ControllerConfiguration(informerConfig = @InformerConfig(namespaces = Constants.WATCH_CURRENT_NAMESPACE)) public class KeycloakController implements Reconciler { public static final String FROM_ENV = Constants.WATCH_ALL_NAMESPACES; diff --git a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java index 975ff7ed6..d1d8a8ffb 100644 --- a/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java +++ b/integration-tests/src/main/java/io/quarkiverse/operatorsdk/it/NamespaceFromEnvReconciler.java @@ -5,9 +5,10 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; -@ControllerConfiguration(name = NamespaceFromEnvReconciler.NAME, namespaces = { "static", - "${" + NamespaceFromEnvReconciler.ENV_VAR_NAME + "}" }) +@ControllerConfiguration(name = NamespaceFromEnvReconciler.NAME, informerConfig = @InformerConfig(namespaces = { "static", + "${" + NamespaceFromEnvReconciler.ENV_VAR_NAME + "}" })) public class NamespaceFromEnvReconciler implements Reconciler { public static final String NAME = "fromenv"; public static final String ENV_VAR_NAME = "NAMESPACE_FROM_ENV"; diff --git a/samples/exposedapp/src/main/java/io/halkyon/ExposedAppReconciler.java b/samples/exposedapp/src/main/java/io/halkyon/ExposedAppReconciler.java index c2db5991c..9995e9d6f 100644 --- a/samples/exposedapp/src/main/java/io/halkyon/ExposedAppReconciler.java +++ b/samples/exposedapp/src/main/java/io/halkyon/ExposedAppReconciler.java @@ -13,6 +13,7 @@ import io.fabric8.kubernetes.api.model.networking.v1.Ingress; import io.javaoperatorsdk.operator.api.reconciler.*; import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; import io.quarkiverse.operatorsdk.annotations.CSVMetadata; @Workflow(dependents = { @@ -20,7 +21,7 @@ @Dependent(name = "service", type = ServiceDependent.class), @Dependent(type = IngressDependent.class, readyPostcondition = IngressDependent.class) }) -@ControllerConfiguration(namespaces = WATCH_CURRENT_NAMESPACE, name = "exposedapp") +@ControllerConfiguration(informerConfig = @InformerConfig(namespaces = WATCH_CURRENT_NAMESPACE), name = "exposedapp") @CSVMetadata(displayName = "ExposedApp operator", description = "A sample operator that shows how to use JOSDK's main features with the Quarkus extension") public class ExposedAppReconciler implements Reconciler, ContextInitializer { diff --git a/samples/joke/src/main/java/io/quarkiverse/operatorsdk/samples/joke/JokeRequestReconciler.java b/samples/joke/src/main/java/io/quarkiverse/operatorsdk/samples/joke/JokeRequestReconciler.java index e930b639b..d694302e6 100644 --- a/samples/joke/src/main/java/io/quarkiverse/operatorsdk/samples/joke/JokeRequestReconciler.java +++ b/samples/joke/src/main/java/io/quarkiverse/operatorsdk/samples/joke/JokeRequestReconciler.java @@ -28,6 +28,7 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; import io.quarkiverse.operatorsdk.annotations.CSVMetadata; import io.quarkiverse.operatorsdk.annotations.CSVMetadata.Icon; import io.quarkiverse.operatorsdk.annotations.RBACRule; @@ -35,7 +36,7 @@ import io.quarkiverse.operatorsdk.samples.joke.JokeRequestStatus.State; @CSVMetadata(bundleName = "joke-operator", requiredCRDs = @CSVMetadata.RequiredCRD(kind = "Joke", name = Joke.NAME, version = Joke.VERSION), icon = @Icon(fileName = "icon.png", mediatype = "image/png")) -@ControllerConfiguration(namespaces = WATCH_CURRENT_NAMESPACE) +@ControllerConfiguration(informerConfig = @InformerConfig(namespaces = WATCH_CURRENT_NAMESPACE)) @RBACRule(apiGroups = Joke.GROUP, resources = "jokes", verbs = RBACRule.ALL) @SuppressWarnings("unused") public class JokeRequestReconciler implements Reconciler { diff --git a/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PingReconciler.java b/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PingReconciler.java index a4c583ca2..30497604c 100644 --- a/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PingReconciler.java +++ b/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PingReconciler.java @@ -25,9 +25,10 @@ import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; import io.quarkiverse.operatorsdk.annotations.CSVMetadata; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; @CSVMetadata(bundleName = BUNDLE_NAME) -@ControllerConfiguration(namespaces = WATCH_CURRENT_NAMESPACE) +@ControllerConfiguration(informerConfig = @InformerConfig(namespaces = WATCH_CURRENT_NAMESPACE)) @SuppressWarnings("unused") public class PingReconciler implements Reconciler { diff --git a/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PongReconciler.java b/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PongReconciler.java index d7d9acd91..8dbb89cf3 100644 --- a/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PongReconciler.java +++ b/samples/pingpong/src/main/java/io/quarkiverse/operatorsdk/samples/pingpong/PongReconciler.java @@ -21,11 +21,12 @@ import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration; import io.javaoperatorsdk.operator.api.reconciler.Reconciler; import io.javaoperatorsdk.operator.api.reconciler.UpdateControl; +import io.javaoperatorsdk.operator.processing.dependent.kubernetes.InformerConfig; import io.quarkiverse.operatorsdk.annotations.CSVMetadata; @CSVMetadata(bundleName = BUNDLE_NAME) -@ControllerConfiguration(namespaces = WATCH_CURRENT_NAMESPACE) @SuppressWarnings("unused") +@ControllerConfiguration(informerConfig = @InformerConfig(namespaces = WATCH_CURRENT_NAMESPACE)) public class PongReconciler implements Reconciler { @Override