Skip to content

Commit 317712d

Browse files
committed
Revert "feat: moving cache sync timeout to controller level (#1576)" (#1583)
This reverts commit eafe869.
1 parent f3e42c2 commit 317712d

File tree

17 files changed

+44
-84
lines changed

17 files changed

+44
-84
lines changed

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

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -252,12 +252,6 @@ public List<DependentResourceSpec> getDependentResources() {
252252
return specs;
253253
}
254254

255-
@Override
256-
public Duration cacheSyncTimeout() {
257-
var cacheSyncTimeout = annotation.cacheSyncTimeout();
258-
return Duration.of(cacheSyncTimeout.timeout(), cacheSyncTimeout.timeUnit().toChronoUnit());
259-
}
260-
261255
private String getName(Dependent dependent, Class<? extends DependentResource> dependentType) {
262256
var name = dependent.name();
263257
if (name.isBlank()) {

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

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator.api.config;
22

3+
import java.time.Duration;
34
import java.util.Optional;
45
import java.util.Set;
56
import java.util.concurrent.ExecutorService;
@@ -168,6 +169,15 @@ default boolean stopOnInformerErrorDuringStartup() {
168169
return true;
169170
}
170171

172+
/**
173+
* Timeout for cache sync in milliseconds. In other words source start timeout. Note that is
174+
* "stopOnInformerErrorDuringStartup" is true the operator will stop on timeout. Default is 2
175+
* minutes.
176+
*/
177+
default Duration cacheSyncTimeout() {
178+
return Duration.ofMinutes(2);
179+
}
180+
171181
/**
172182
* Handler for an informer stop. Informer stops if there is a non-recoverable error. Like received
173183
* a resource that cannot be deserialized.

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package io.javaoperatorsdk.operator.api.config;
22

3+
import java.time.Duration;
34
import java.util.Optional;
45
import java.util.Set;
56
import java.util.concurrent.ExecutorService;
@@ -28,6 +29,7 @@ public class ConfigurationServiceOverrider {
2829
private LeaderElectionConfiguration leaderElectionConfiguration;
2930
private InformerStoppedHandler informerStoppedHandler;
3031
private Boolean stopOnInformerErrorDuringStartup;
32+
private Duration cacheSyncTimeout;
3133

3234
ConfigurationServiceOverrider(ConfigurationService original) {
3335
this.original = original;
@@ -106,6 +108,11 @@ public ConfigurationServiceOverrider withStopOnInformerErrorDuringStartup(
106108
return this;
107109
}
108110

111+
public ConfigurationServiceOverrider withCacheSyncTimeout(Duration cacheSyncTimeout) {
112+
this.cacheSyncTimeout = cacheSyncTimeout;
113+
return this;
114+
}
115+
109116
public ConfigurationService build() {
110117
return new BaseConfigurationService(original.getVersion(), cloner, objectMapper) {
111118
@Override
@@ -184,6 +191,11 @@ public boolean stopOnInformerErrorDuringStartup() {
184191
return stopOnInformerErrorDuringStartup != null ? stopOnInformerErrorDuringStartup
185192
: super.stopOnInformerErrorDuringStartup();
186193
}
194+
195+
@Override
196+
public Duration cacheSyncTimeout() {
197+
return cacheSyncTimeout != null ? cacheSyncTimeout : super.cacheSyncTimeout();
198+
}
187199
};
188200
}
189201

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
import io.javaoperatorsdk.operator.processing.retry.GradualRetry;
1818
import io.javaoperatorsdk.operator.processing.retry.Retry;
1919

20-
public interface ControllerConfiguration<P extends HasMetadata> extends ResourceConfiguration<P> {
20+
public interface ControllerConfiguration<R extends HasMetadata> extends ResourceConfiguration<R> {
2121

2222
@SuppressWarnings("rawtypes")
2323
RateLimiter DEFAULT_RATE_LIMITER = LinearRateLimiter.deactivatedRateLimiter();
@@ -71,7 +71,7 @@ default RateLimiter getRateLimiter() {
7171
*
7272
* @return filter
7373
*/
74-
default ResourceEventFilter<P> getEventFilter() {
74+
default ResourceEventFilter<R> getEventFilter() {
7575
return ResourceEventFilters.passthrough();
7676
}
7777

@@ -91,8 +91,8 @@ default ConfigurationService getConfigurationService() {
9191

9292
@SuppressWarnings("unchecked")
9393
@Override
94-
default Class<P> getResourceClass() {
95-
return (Class<P>) Utils.getFirstTypeArgumentFromSuperClassOrInterface(getClass(),
94+
default Class<R> getResourceClass() {
95+
return (Class<R>) Utils.getFirstTypeArgumentFromSuperClassOrInterface(getClass(),
9696
ControllerConfiguration.class);
9797
}
9898
}

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ public class ControllerConfigurationOverrider<R extends HasMetadata> {
3838
private OnUpdateFilter<R> onUpdateFilter;
3939
private GenericFilter<R> genericFilter;
4040
private RateLimiter rateLimiter;
41-
private Duration cacheSyncTimeout;
4241

4342
private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
4443
finalizer = original.getFinalizerName();
@@ -57,7 +56,6 @@ private ControllerConfigurationOverrider(ControllerConfiguration<R> original) {
5756
dependentResources.forEach(drs -> namedDependentResourceSpecs.put(drs.getName(), drs));
5857
this.original = original;
5958
this.rateLimiter = original.getRateLimiter();
60-
this.cacheSyncTimeout = original.cacheSyncTimeout();
6159
}
6260

6361
public ControllerConfigurationOverrider<R> withFinalizer(String finalizer) {
@@ -178,11 +176,6 @@ public ControllerConfigurationOverrider<R> replacingNamedDependentResourceConfig
178176
return this;
179177
}
180178

181-
public ControllerConfigurationOverrider<R> withCacheSyncTimeout(Duration cacheSyncTimeout) {
182-
this.cacheSyncTimeout = cacheSyncTimeout;
183-
return this;
184-
}
185-
186179
public ControllerConfiguration<R> build() {
187180
final var hasModifiedNamespaces = !original.getNamespaces().equals(namespaces);
188181
final var newDependentSpecs = namedDependentResourceSpecs.values().stream()
@@ -215,7 +208,6 @@ public ControllerConfiguration<R> build() {
215208
onUpdateFilter,
216209
genericFilter,
217210
rateLimiter,
218-
cacheSyncTimeout,
219211
newDependentSpecs);
220212
}
221213

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

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,6 @@ public class DefaultControllerConfiguration<R extends HasMetadata>
3131
private final List<DependentResourceSpec> dependents;
3232
private final Duration reconciliationMaxInterval;
3333
private final RateLimiter rateLimiter;
34-
private final Duration cacheSyncTimeout;
3534

3635
// NOSONAR constructor is meant to provide all information
3736
public DefaultControllerConfiguration(
@@ -50,7 +49,6 @@ public DefaultControllerConfiguration(
5049
OnUpdateFilter<R> onUpdateFilter,
5150
GenericFilter<R> genericFilter,
5251
RateLimiter rateLimiter,
53-
Duration cacheSyncTimeout,
5452
List<DependentResourceSpec> dependents) {
5553
super(labelSelector, resourceClass, onAddFilter, onUpdateFilter, genericFilter, namespaces);
5654
this.associatedControllerClassName = associatedControllerClassName;
@@ -67,7 +65,6 @@ public DefaultControllerConfiguration(
6765
this.rateLimiter =
6866
rateLimiter != null ? rateLimiter : LinearRateLimiter.deactivatedRateLimiter();
6967
this.dependents = dependents != null ? dependents : Collections.emptyList();
70-
this.cacheSyncTimeout = cacheSyncTimeout;
7168
}
7269

7370
@Override
@@ -119,8 +116,4 @@ public Optional<Duration> maxReconciliationInterval() {
119116
public RateLimiter getRateLimiter() {
120117
return rateLimiter;
121118
}
122-
123-
public Duration cacheSyncTimeout() {
124-
return cacheSyncTimeout;
125-
}
126119
}

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

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,12 @@
11
package io.javaoperatorsdk.operator.api.config;
22

3-
import java.time.Duration;
43
import java.util.Collections;
54
import java.util.Optional;
65
import java.util.Set;
76

87
import io.fabric8.kubernetes.api.model.HasMetadata;
98
import io.javaoperatorsdk.operator.OperatorException;
109
import io.javaoperatorsdk.operator.ReconcilerUtils;
11-
import io.javaoperatorsdk.operator.api.reconciler.CacheSyncTimeout;
1210
import io.javaoperatorsdk.operator.api.reconciler.Constants;
1311
import io.javaoperatorsdk.operator.processing.event.source.filter.GenericFilter;
1412
import io.javaoperatorsdk.operator.processing.event.source.filter.OnAddFilter;
@@ -110,13 +108,4 @@ default Set<String> getEffectiveNamespaces() {
110108
}
111109
return targetNamespaces;
112110
}
113-
114-
/**
115-
* Timeout for cache sync. In other words event source start timeout. Note that is
116-
* "stopOnInformerErrorDuringStartup" is true the operator will stop on timeout. Default is 2
117-
* minutes.
118-
*/
119-
default Duration cacheSyncTimeout() {
120-
return Duration.ofMinutes(CacheSyncTimeout.DEFAULT_TIMEOUT);
121-
}
122111
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/CacheSyncTimeout.java

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

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/ControllerConfiguration.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,4 @@ MaxReconciliationInterval maxReconciliationInterval() default @MaxReconciliation
118118
* accessible no-arg constructor.
119119
*/
120120
Class<? extends RateLimiter> rateLimiter() default LinearRateLimiter.class;
121-
122-
CacheSyncTimeout cacheSyncTimeout() default @CacheSyncTimeout(
123-
timeout = CacheSyncTimeout.DEFAULT_TIMEOUT);
124121
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventSourceManager.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,6 @@ public EventSourceManager(Controller<P> controller) {
4848

4949
public void postProcessDefaultEventSourcesAfterProcessorInitializer() {
5050
eventSources.controllerResourceEventSource().setEventHandler(controller.getEventProcessor());
51-
5251
eventSources.retryEventSource().setEventHandler(controller.getEventProcessor());
5352
}
5453

@@ -120,7 +119,6 @@ public final void registerEventSource(EventSource eventSource) throws OperatorEx
120119
registerEventSource(null, eventSource);
121120
}
122121

123-
@SuppressWarnings("unchecked")
124122
public final synchronized void registerEventSource(String name, EventSource eventSource)
125123
throws OperatorException {
126124
Objects.requireNonNull(eventSource, "EventSource must not be null");

0 commit comments

Comments
 (0)