Skip to content

Commit da8bba9

Browse files
authoredDec 7, 2023
fix: preserve the original itemstore (#2154)
closes: #2152 Signed-off-by: Steven Hawkins <[email protected]>
1 parent bb32222 commit da8bba9

File tree

2 files changed

+23
-1
lines changed

2 files changed

+23
-1
lines changed
 

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

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
5858
this.name = original.getName();
5959
this.fieldManager = original.fieldManager();
6060
this.informerListLimit = original.getInformerListLimit().orElse(null);
61+
this.itemStore = original.getItemStore().orElse(null);
6162
}
6263

6364
public ControllerConfigurationOverrider<R> withFinalizer(String finalizer) {

Diff for: ‎operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverriderTest.java

+22-1
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,9 @@
77
import org.junit.jupiter.api.Test;
88

99
import io.fabric8.kubernetes.api.model.ConfigMap;
10+
import io.fabric8.kubernetes.api.model.HasMetadata;
11+
import io.fabric8.kubernetes.client.informers.cache.BasicItemStore;
12+
import io.fabric8.kubernetes.client.informers.cache.Cache;
1013
import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceConfigurationResolver;
1114
import io.javaoperatorsdk.operator.api.reconciler.Constants;
1215
import io.javaoperatorsdk.operator.api.reconciler.Context;
@@ -130,7 +133,15 @@ private io.javaoperatorsdk.operator.api.config.ControllerConfiguration<?> create
130133
return configurationService.configFor(reconciler);
131134
}
132135

133-
@ControllerConfiguration(namespaces = "foo")
136+
private static class MyItemStore<T extends HasMetadata> extends BasicItemStore<T> {
137+
138+
public MyItemStore() {
139+
super(Cache::metaNamespaceKeyFunc);
140+
}
141+
142+
}
143+
144+
@ControllerConfiguration(namespaces = "foo", itemStore = MyItemStore.class)
134145
private static class WatchCurrentReconciler implements Reconciler<ConfigMap> {
135146

136147
@Override
@@ -187,6 +198,16 @@ void overridingNamespacesShouldWork() {
187198
assertFalse(configuration.watchCurrentNamespace());
188199
}
189200

201+
@Test
202+
void itemStorePreserved() {
203+
var configuration = createConfiguration(new WatchCurrentReconciler());
204+
205+
configuration = ControllerConfigurationOverrider.override(configuration)
206+
.build();
207+
208+
assertNotNull(configuration.getItemStore().orElse(null));
209+
}
210+
190211
@Test
191212
void configuredDependentShouldNotChangeOnParentOverrideEvenWhenInitialConfigIsSame() {
192213
var configuration = createConfiguration(new OverriddenNSOnDepReconciler());

0 commit comments

Comments
 (0)
Please sign in to comment.