diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
index 88a28480bd..328d912109 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java
@@ -58,6 +58,7 @@ private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
     this.name = original.getName();
     this.fieldManager = original.fieldManager();
     this.informerListLimit = original.getInformerListLimit().orElse(null);
+    this.itemStore = original.getItemStore().orElse(null);
   }
 
   public ControllerConfigurationOverrider<R> withFinalizer(String finalizer) {
diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
index eae4c22ac6..1c86886d89 100644
--- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
+++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java
@@ -7,6 +7,9 @@
 import org.junit.jupiter.api.Test;
 
 import io.fabric8.kubernetes.api.model.ConfigMap;
+import io.fabric8.kubernetes.api.model.HasMetadata;
+import io.fabric8.kubernetes.client.informers.cache.BasicItemStore;
+import io.fabric8.kubernetes.client.informers.cache.Cache;
 import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceConfigurationResolver;
 import io.javaoperatorsdk.operator.api.reconciler.Constants;
 import io.javaoperatorsdk.operator.api.reconciler.Context;
@@ -130,7 +133,15 @@ private io.javaoperatorsdk.operator.api.config.ControllerConfiguration<?> create
     return configurationService.configFor(reconciler);
   }
 
-  @ControllerConfiguration(namespaces = "foo")
+  private static class MyItemStore<T extends HasMetadata> extends BasicItemStore<T> {
+
+    public MyItemStore() {
+      super(Cache::metaNamespaceKeyFunc);
+    }
+
+  }
+
+  @ControllerConfiguration(namespaces = "foo", itemStore = MyItemStore.class)
   private static class WatchCurrentReconciler implements Reconciler<ConfigMap> {
 
     @Override
@@ -187,6 +198,16 @@ void overridingNamespacesShouldWork() {
     assertFalse(configuration.watchCurrentNamespace());
   }
 
+  @Test
+  void itemStorePreserved() {
+    var configuration = createConfiguration(new WatchCurrentReconciler());
+
+    configuration = ControllerConfigurationOverrider.override(configuration)
+        .build();
+
+    assertNotNull(configuration.getItemStore().orElse(null));
+  }
+
   @Test
   void configuredDependentShouldNotChangeOnParentOverrideEvenWhenInitialConfigIsSame() {
     var configuration = createConfiguration(new OverriddenNSOnDepReconciler());