Skip to content

Commit 17004b3

Browse files
committed
format
Signed-off-by: Attila Mészáros <[email protected]>
1 parent 9ca8ae9 commit 17004b3

File tree

3 files changed

+27
-19
lines changed

3 files changed

+27
-19
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/CRDPresentActivationCondition.java

+18-10
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,6 @@
33
import java.util.Map;
44
import java.util.concurrent.ConcurrentHashMap;
55

6-
import io.javaoperatorsdk.operator.processing.expiration.Expiration;
7-
import io.javaoperatorsdk.operator.processing.expiration.RetryExpiration;
86
import org.slf4j.Logger;
97
import org.slf4j.LoggerFactory;
108

@@ -14,20 +12,29 @@
1412
import io.javaoperatorsdk.operator.api.reconciler.Context;
1513
import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource;
1614
import io.javaoperatorsdk.operator.processing.GroupVersionKind;
15+
import io.javaoperatorsdk.operator.processing.expiration.Expiration;
1716
import io.javaoperatorsdk.operator.processing.expiration.ExpirationExecution;
17+
import io.javaoperatorsdk.operator.processing.expiration.RetryExpiration;
1818
import io.javaoperatorsdk.operator.processing.retry.GenericRetry;
1919
import io.javaoperatorsdk.operator.processing.retry.Retry;
2020

2121
public class CRDPresentActivationCondition implements Condition<HasMetadata, HasMetadata> {
2222

2323
private static final Logger log = LoggerFactory.getLogger(CRDPresentActivationCondition.class);
2424

25+
public static final int DEFAULT_EXPIRATION_INITIAL_INTERVAL = 1000;
26+
public static final int DEFAULT_EXPIRATION_INTERVAL_MULTIPLIER = 4;
27+
public static final int DEFAULT_EXPIRATION_MAX_RETRY_ATTEMPTS = 10;
28+
2529
/**
26-
*
27-
* */
28-
public static Retry DEFAULT_EXPIRATION_RETRY = new GenericRetry().setInitialInterval(2000)
29-
.setIntervalMultiplier(2)
30-
.setMaxAttempts(10);
30+
* The idea behind default expiration is that on cluster start there might be different phases
31+
* when CRDs and controllers are added. For a few times it will be checked if the target CRD is
32+
* not present, after it will just use the cached state.
33+
*/
34+
public static Retry DEFAULT_EXPIRATION_RETRY =
35+
new GenericRetry().setInitialInterval(DEFAULT_EXPIRATION_INITIAL_INTERVAL)
36+
.setIntervalMultiplier(DEFAULT_EXPIRATION_INTERVAL_MULTIPLIER)
37+
.setMaxAttempts(DEFAULT_EXPIRATION_MAX_RETRY_ATTEMPTS);
3138

3239
private final Map<GroupVersionKind, CRDCheckState> crdPresenceCache = new ConcurrentHashMap<>();
3340

@@ -55,14 +62,15 @@ public boolean isMet(DependentResource<HasMetadata, HasMetadata> dependentResour
5562
// in case of parallel execution it is only refreshed once
5663
synchronized (crdCheckState) {
5764
if (crdCheckState.getExpiration().isExpired()) {
58-
refreshCache(crdCheckState,gvk, context.getClient());
65+
refreshCache(crdCheckState, gvk, context.getClient());
5966
}
6067
}
6168
return crdPresenceCache.get(gvk).getCrdPresent();
6269
}
6370

64-
private void refreshCache(CRDCheckState crdCheckState, GroupVersionKind gvk, KubernetesClient client) {
65-
71+
private void refreshCache(CRDCheckState crdCheckState, GroupVersionKind gvk,
72+
KubernetesClient client) {
73+
log.debug("Refreshing cache for gvk: {}", gvk);
6674
boolean found = client.resources(CustomResourceDefinition.class).list().getItems()
6775
.stream().anyMatch(crd -> crd.getSpec().getNames().getKind().equals(gvk.getKind())
6876
&& crd.getSpec().getGroup().equals(gvk.getGroup()));

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/expiration/Expiration.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,6 @@
33

44
public interface Expiration {
55

6-
ExpirationExecution initExecution();
6+
ExpirationExecution initExecution();
77

88
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/expiration/RetryExpiration.java

+8-8
Original file line numberDiff line numberDiff line change
@@ -4,14 +4,14 @@
44

55
public class RetryExpiration implements Expiration {
66

7-
private final Retry retry;
7+
private final Retry retry;
88

9-
public RetryExpiration(Retry retry) {
10-
this.retry = retry;
11-
}
9+
public RetryExpiration(Retry retry) {
10+
this.retry = retry;
11+
}
1212

13-
@Override
14-
public ExpirationExecution initExecution() {
15-
return new RetryExpirationExecution(retry.initExecution());
16-
}
13+
@Override
14+
public ExpirationExecution initExecution() {
15+
return new RetryExpirationExecution(retry.initExecution());
16+
}
1717
}

0 commit comments

Comments
 (0)