Skip to content

Commit f74a9b1

Browse files
committed
wip
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent a5fdead commit f74a9b1

File tree

9 files changed

+43
-132
lines changed

9 files changed

+43
-132
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,6 @@
2828
import io.fabric8.kubernetes.api.model.ConfigMap;
2929
import io.fabric8.kubernetes.api.model.HasMetadata;
3030
import io.fabric8.kubernetes.api.model.Secret;
31-
import io.fabric8.kubernetes.api.model.apps.Deployment;
32-
import io.fabric8.kubernetes.api.model.apps.StatefulSet;
3331
import io.fabric8.kubernetes.client.Config;
3432
import io.fabric8.kubernetes.client.ConfigBuilder;
3533
import io.fabric8.kubernetes.client.CustomResource;

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java

Lines changed: 31 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -184,43 +184,43 @@ public Set<String> getKnownReconcilerNames() {
184184
}
185185

186186
private <T> T overriddenValueOrDefault(
187-
T value, Function<ConfigurationService, T> defaultValue) {
187+
T value, Function<ConfigurationService, T> defaultValue) {
188188
return value != null ? value : defaultValue.apply(original);
189189
}
190190

191191
@Override
192192
public boolean checkCRDAndValidateLocalModel() {
193193
return overriddenValueOrDefault(
194-
checkCR, ConfigurationService::checkCRDAndValidateLocalModel);
194+
checkCR, ConfigurationService::checkCRDAndValidateLocalModel);
195195
}
196196

197197
@SuppressWarnings("rawtypes")
198198
@Override
199199
public DependentResourceFactory dependentResourceFactory() {
200200
return overriddenValueOrDefault(
201-
dependentResourceFactory, ConfigurationService::dependentResourceFactory);
201+
dependentResourceFactory, ConfigurationService::dependentResourceFactory);
202202
}
203203

204204
@Override
205205
public int concurrentReconciliationThreads() {
206206
return Utils.ensureValid(
207-
overriddenValueOrDefault(
208-
concurrentReconciliationThreads,
209-
ConfigurationService::concurrentReconciliationThreads),
210-
"maximum reconciliation threads",
211-
1,
212-
original.concurrentReconciliationThreads());
207+
overriddenValueOrDefault(
208+
concurrentReconciliationThreads,
209+
ConfigurationService::concurrentReconciliationThreads),
210+
"maximum reconciliation threads",
211+
1,
212+
original.concurrentReconciliationThreads());
213213
}
214214

215215
@Override
216216
public int concurrentWorkflowExecutorThreads() {
217217
return Utils.ensureValid(
218-
overriddenValueOrDefault(
219-
concurrentWorkflowExecutorThreads,
220-
ConfigurationService::concurrentWorkflowExecutorThreads),
221-
"maximum workflow execution threads",
222-
1,
223-
original.concurrentWorkflowExecutorThreads());
218+
overriddenValueOrDefault(
219+
concurrentWorkflowExecutorThreads,
220+
ConfigurationService::concurrentWorkflowExecutorThreads),
221+
"maximum workflow execution threads",
222+
1,
223+
original.concurrentWorkflowExecutorThreads());
224224
}
225225

226226
@Override
@@ -254,22 +254,22 @@ public ExecutorService getWorkflowExecutorService() {
254254
@Override
255255
public Optional<LeaderElectionConfiguration> getLeaderElectionConfiguration() {
256256
return leaderElectionConfiguration != null
257-
? Optional.of(leaderElectionConfiguration)
258-
: original.getLeaderElectionConfiguration();
257+
? Optional.of(leaderElectionConfiguration)
258+
: original.getLeaderElectionConfiguration();
259259
}
260260

261261
@Override
262262
public Optional<InformerStoppedHandler> getInformerStoppedHandler() {
263263
return informerStoppedHandler != null
264-
? Optional.of(informerStoppedHandler)
265-
: original.getInformerStoppedHandler();
264+
? Optional.of(informerStoppedHandler)
265+
: original.getInformerStoppedHandler();
266266
}
267267

268268
@Override
269269
public boolean stopOnInformerErrorDuringStartup() {
270270
return overriddenValueOrDefault(
271-
stopOnInformerErrorDuringStartup,
272-
ConfigurationService::stopOnInformerErrorDuringStartup);
271+
stopOnInformerErrorDuringStartup,
272+
ConfigurationService::stopOnInformerErrorDuringStartup);
273273
}
274274

275275
@Override
@@ -280,34 +280,35 @@ public Duration cacheSyncTimeout() {
280280
@Override
281281
public Duration reconciliationTerminationTimeout() {
282282
return overriddenValueOrDefault(
283-
reconciliationTerminationTimeout,
284-
ConfigurationService::reconciliationTerminationTimeout);
283+
reconciliationTerminationTimeout,
284+
ConfigurationService::reconciliationTerminationTimeout);
285285
}
286286

287287
@Override
288288
public boolean ssaBasedCreateUpdateMatchForDependentResources() {
289289
return overriddenValueOrDefault(
290-
ssaBasedCreateUpdateMatchForDependentResources,
291-
ConfigurationService::ssaBasedCreateUpdateMatchForDependentResources);
290+
ssaBasedCreateUpdateMatchForDependentResources,
291+
ConfigurationService::ssaBasedCreateUpdateMatchForDependentResources);
292292
}
293293

294294
@Override
295295
public Set<Class<? extends HasMetadata>> defaultNonSSAResources() {
296296
return overriddenValueOrDefault(
297-
defaultNonSSAResource, ConfigurationService::defaultNonSSAResources);
297+
defaultNonSSAResource, ConfigurationService::defaultNonSSAResources);
298298
}
299299

300300
@Override
301301
public boolean useSSAToPatchPrimaryResource() {
302302
return overriddenValueOrDefault(
303-
useSSAToPatchPrimaryResource, ConfigurationService::useSSAToPatchPrimaryResource);
303+
useSSAToPatchPrimaryResource, ConfigurationService::useSSAToPatchPrimaryResource);
304304
}
305305

306306
@Override
307307
public boolean cloneSecondaryResourcesWhenGettingFromCache() {
308308
return overriddenValueOrDefault(
309-
cloneSecondaryResourcesWhenGettingFromCache,
310-
ConfigurationService::cloneSecondaryResourcesWhenGettingFromCache);
309+
cloneSecondaryResourcesWhenGettingFromCache,
310+
ConfigurationService::cloneSecondaryResourcesWhenGettingFromCache);
311311
}
312312
};
313-
}}
313+
}
314+
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/controller/ControllerEventSource.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ public class ControllerEventSource<T extends HasMetadata>
4747

4848
@SuppressWarnings({"unchecked", "rawtypes"})
4949
public ControllerEventSource(Controller<T> controller) {
50-
super(NAME, controller.getCRClient(), controller.getConfiguration(), false);
50+
super(NAME, controller.getCRClient(), controller.getConfiguration());
5151
this.controller = controller;
5252

5353
final var config = controller.getConfiguration();

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSource.java

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -82,15 +82,12 @@ public class InformerEventSource<R extends HasMetadata, P extends HasMetadata>
8282

8383
public InformerEventSource(
8484
InformerEventSourceConfiguration<R> configuration, EventSourceContext<P> context) {
85-
this(
86-
configuration,
87-
configuration.getKubernetesClient().orElse(context.getClient()));
85+
this(configuration, configuration.getKubernetesClient().orElse(context.getClient()));
8886
}
8987

88+
// visible for testing
9089
@SuppressWarnings({"unchecked", "rawtypes"})
91-
private InformerEventSource(
92-
InformerEventSourceConfiguration<R> configuration,
93-
KubernetesClient client) {
90+
InformerEventSource(InformerEventSourceConfiguration<R> configuration, KubernetesClient client) {
9491
super(
9592
configuration.name(),
9693
configuration
@@ -199,7 +196,7 @@ private synchronized void onAddOrUpdate(
199196
private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) {
200197
var res = temporaryResourceCache.getResourceFromCache(resourceID);
201198
if (res.isEmpty()) {
202-
return isEventKnownFromAnnotation(newObject, oldObject);
199+
return false;
203200
}
204201
boolean resVersionsEqual =
205202
newObject
@@ -214,24 +211,6 @@ private boolean canSkipEvent(R newObject, R oldObject, ResourceID resourceID) {
214211
|| temporaryResourceCache.isLaterResourceVersion(resourceID, res.get(), newObject);
215212
}
216213

217-
private boolean isEventKnownFromAnnotation(R newObject, R oldObject) {
218-
String previous = newObject.getMetadata().getAnnotations().get(PREVIOUS_ANNOTATION_KEY);
219-
boolean known = false;
220-
if (previous != null) {
221-
String[] parts = previous.split(",");
222-
if (id.equals(parts[0])) {
223-
if (oldObject == null && parts.length == 1) {
224-
known = true;
225-
} else if (oldObject != null
226-
&& parts.length == 2
227-
&& oldObject.getMetadata().getResourceVersion().equals(parts[1])) {
228-
known = true;
229-
}
230-
}
231-
}
232-
return known;
233-
}
234-
235214
private void propagateEvent(R object) {
236215
var primaryResourceIdSet =
237216
configuration().getSecondaryToPrimaryMapper().toPrimaryResourceIDs(object);

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/ManagedInformerEventSource.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,8 +61,7 @@ public abstract class ManagedInformerEventSource<
6161
protected TemporaryResourceCache<R> temporaryResourceCache;
6262
protected MixedOperation client;
6363

64-
protected ManagedInformerEventSource(
65-
String name, MixedOperation client, C configuration) {
64+
protected ManagedInformerEventSource(String name, MixedOperation client, C configuration) {
6665
super(configuration.getResourceClass(), name);
6766
this.client = client;
6867
this.configuration = configuration;

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryResourceCache.java

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.slf4j.LoggerFactory;
2525

2626
import io.fabric8.kubernetes.api.model.HasMetadata;
27-
import io.javaoperatorsdk.operator.api.config.ConfigurationService;
2827
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResource;
2928
import io.javaoperatorsdk.operator.processing.event.ResourceID;
3029

@@ -95,8 +94,7 @@ void clean() {
9594
private final ExpirationCache<String> tombstones = new ExpirationCache<>(1000000, 1200000);
9695
private final ManagedInformerEventSource<T, ?, ?> managedInformerEventSource;
9796

98-
public TemporaryResourceCache(
99-
ManagedInformerEventSource<T, ?, ?> managedInformerEventSource) {
97+
public TemporaryResourceCache(ManagedInformerEventSource<T, ?, ?> managedInformerEventSource) {
10098
this.managedInformerEventSource = managedInformerEventSource;
10199
}
102100

@@ -161,10 +159,10 @@ public synchronized void putResource(T newResource, String previousResourceVersi
161159
}
162160
}
163161

164-
private boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T cachedResource) {
162+
public boolean isLaterResourceVersion(ResourceID resourceId, T newResource, T cachedResource) {
165163
try {
166-
return Long.parseLong(newResource.getMetadata().getResourceVersion())
167-
> Long.parseLong(cachedResource.getMetadata().getResourceVersion());
164+
return Long.parseLong(newResource.getMetadata().getResourceVersion())
165+
> Long.parseLong(cachedResource.getMetadata().getResourceVersion());
168166
} catch (NumberFormatException e) {
169167
log.warn(
170168
"Could not compare resourceVersions {} and {} for {}",

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -104,21 +104,6 @@ void skipsEventPropagationIfResourceWithSameVersionInResourceCache() {
104104
verify(eventHandlerMock, never()).handleEvent(any());
105105
}
106106

107-
@Test
108-
void skipsAddEventPropagationViaAnnotation() {
109-
informerEventSource.onAdd(informerEventSource.addPreviousAnnotation(null, testDeployment()));
110-
111-
verify(eventHandlerMock, never()).handleEvent(any());
112-
}
113-
114-
@Test
115-
void skipsUpdateEventPropagationViaAnnotation() {
116-
informerEventSource.onUpdate(
117-
testDeployment(), informerEventSource.addPreviousAnnotation("1", testDeployment()));
118-
119-
verify(eventHandlerMock, never()).handleEvent(any());
120-
}
121-
122107
@Test
123108
void processEventPropagationWithoutAnnotation() {
124109
informerEventSource.onUpdate(testDeployment(), testDeployment());

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/TemporaryPrimaryResourceCacheTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ class TemporaryPrimaryResourceCacheTest {
4646
@BeforeEach
4747
void setup() {
4848
informerEventSource = mock(InformerEventSource.class);
49-
temporaryResourceCache = new TemporaryResourceCache<>(informerEventSource, false);
49+
temporaryResourceCache = new TemporaryResourceCache<>(informerEventSource);
5050
}
5151

5252
@Test
@@ -109,7 +109,7 @@ void removesResourceFromCache() {
109109

110110
@Test
111111
void resourceVersionParsing() {
112-
this.temporaryResourceCache = new TemporaryResourceCache<>(informerEventSource, true);
112+
this.temporaryResourceCache = new TemporaryResourceCache<>(informerEventSource);
113113

114114
ConfigMap testResource = propagateTestResourceToCache();
115115

operator-framework/src/test/java/io/javaoperatorsdk/operator/baseapi/createupdateeventfilter/PreviousAnnotationDisabledIT.java

Lines changed: 0 additions & 49 deletions
This file was deleted.

0 commit comments

Comments
 (0)