|
7 | 7 | import org.junit.jupiter.api.Test;
|
8 | 8 |
|
9 | 9 | 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; |
10 | 13 | import io.javaoperatorsdk.operator.api.config.dependent.DependentResourceConfigurationResolver;
|
11 | 14 | import io.javaoperatorsdk.operator.api.reconciler.Constants;
|
12 | 15 | import io.javaoperatorsdk.operator.api.reconciler.Context;
|
@@ -130,7 +133,15 @@ private io.javaoperatorsdk.operator.api.config.ControllerConfiguration<?> create
|
130 | 133 | return configurationService.configFor(reconciler);
|
131 | 134 | }
|
132 | 135 |
|
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) |
134 | 145 | private static class WatchCurrentReconciler implements Reconciler<ConfigMap> {
|
135 | 146 |
|
136 | 147 | @Override
|
@@ -187,6 +198,16 @@ void overridingNamespacesShouldWork() {
|
187 | 198 | assertFalse(configuration.watchCurrentNamespace());
|
188 | 199 | }
|
189 | 200 |
|
| 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 | + |
190 | 211 | @Test
|
191 | 212 | void configuredDependentShouldNotChangeOnParentOverrideEvenWhenInitialConfigIsSame() {
|
192 | 213 | var configuration = createConfiguration(new OverriddenNSOnDepReconciler());
|
|
0 commit comments