Skip to content

Commit 5b0cf92

Browse files
committed
feat: remove experimental cache pruning
1 parent 256fcc5 commit 5b0cf92

File tree

3 files changed

+19
-27
lines changed

3 files changed

+19
-27
lines changed

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

Lines changed: 9 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,5 @@
11
package io.javaoperatorsdk.operator.processing.event;
22

3-
import java.util.function.Function;
4-
53
import org.slf4j.Logger;
64
import org.slf4j.LoggerFactory;
75

@@ -36,7 +34,7 @@
3634
*/
3735
class ReconciliationDispatcher<P extends HasMetadata> {
3836

39-
public static final int MAX_FINALIZER_REMOVAL_RETRY = 10;
37+
public static final int MAX_UPDATE_RETRY = 10;
4038

4139
private static final Logger log = LoggerFactory.getLogger(ReconciliationDispatcher.class);
4240

@@ -295,8 +293,8 @@ private PostExecutionControl<P> handleCleanup(P originalResource, P resource,
295293
// cleanup is finished, nothing left to done
296294
final var finalizerName = configuration().getFinalizerName();
297295
if (deleteControl.isRemoveFinalizer() && resource.hasFinalizer(finalizerName)) {
298-
P customResource = conflictRetryingPatch(resource, originalResource,
299-
r -> r.removeFinalizer(finalizerName));
296+
resource.removeFinalizer(finalizerName);
297+
P customResource = conflictRetryingUpdate(resource);
300298
return PostExecutionControl.customResourceFinalizerRemoved(customResource);
301299
}
302300
}
@@ -315,9 +313,8 @@ private P updateCustomResourceWithFinalizer(P resourceForExecution, P originalRe
315313
log.debug(
316314
"Adding finalizer for resource: {} version: {}", getUID(originalResource),
317315
getVersion(originalResource));
318-
319-
return conflictRetryingPatch(resourceForExecution, originalResource,
320-
r -> r.addFinalizer(configuration().getFinalizerName()));
316+
resourceForExecution.addFinalizer(configuration().getFinalizerName());
317+
return conflictRetryingUpdate(resourceForExecution);
321318
}
322319

323320
private P updateCustomResource(P resource) {
@@ -330,29 +327,24 @@ ControllerConfiguration<P> configuration() {
330327
return controller.getConfiguration();
331328
}
332329

333-
public P conflictRetryingPatch(P resource, P originalResource,
334-
Function<P, Boolean> modificationFunction) {
330+
public P conflictRetryingUpdate(P resource) {
335331
if (log.isDebugEnabled()) {
336332
log.debug("Removing finalizer on resource: {}", ResourceID.fromResource(resource));
337333
}
338334
int retryIndex = 0;
339335
while (true) {
340336
try {
341-
var modified = modificationFunction.apply(resource);
342-
if (Boolean.FALSE.equals(modified)) {
343-
return resource;
344-
}
345-
return customResourceFacade.serverSideApplyLockResource(resource, originalResource);
337+
return customResourceFacade.updateResource(resource);
346338
} catch (KubernetesClientException e) {
347339
log.trace("Exception during patch for resource: {}", resource);
348340
retryIndex++;
349341
// only retry on conflict (HTTP 409), otherwise fail
350342
if (e.getCode() != 409) {
351343
throw e;
352344
}
353-
if (retryIndex >= MAX_FINALIZER_REMOVAL_RETRY) {
345+
if (retryIndex >= MAX_UPDATE_RETRY) {
354346
throw new OperatorException(
355-
"Exceeded maximum (" + MAX_FINALIZER_REMOVAL_RETRY
347+
"Exceeded maximum (" + MAX_UPDATE_RETRY
356348
+ ") retry attempts to patch resource: "
357349
+ ResourceID.fromResource(resource));
358350
}

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/ReconciliationDispatcherTest.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
3939

4040
import static io.javaoperatorsdk.operator.TestUtils.markForDeletion;
41-
import static io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.MAX_FINALIZER_REMOVAL_RETRY;
41+
import static io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.MAX_UPDATE_RETRY;
4242
import static org.assertj.core.api.Assertions.assertThat;
4343
import static org.junit.jupiter.api.Assertions.assertEquals;
4444
import static org.junit.jupiter.api.Assertions.assertFalse;
@@ -255,10 +255,10 @@ void throwsExceptionIfFinalizerRemovalRetryExceeded() {
255255
assertThat(postExecControl.getRuntimeException()).isPresent();
256256
assertThat(postExecControl.getRuntimeException().get())
257257
.isInstanceOf(OperatorException.class);
258-
verify(customResourceFacade, times(MAX_FINALIZER_REMOVAL_RETRY)).serverSideApplyLockResource(
258+
verify(customResourceFacade, times(MAX_UPDATE_RETRY)).serverSideApplyLockResource(
259259
any(),
260260
any());
261-
verify(customResourceFacade, times(MAX_FINALIZER_REMOVAL_RETRY - 1)).getResource(any(),
261+
verify(customResourceFacade, times(MAX_UPDATE_RETRY - 1)).getResource(any(),
262262
any());
263263
}
264264

sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageManagedDependentsReconciler.java

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

33
import io.fabric8.kubernetes.api.model.ConfigMap;
4-
import io.javaoperatorsdk.operator.api.reconciler.Context;
5-
import io.javaoperatorsdk.operator.api.reconciler.ControllerConfiguration;
6-
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusHandler;
7-
import io.javaoperatorsdk.operator.api.reconciler.ErrorStatusUpdateControl;
8-
import io.javaoperatorsdk.operator.api.reconciler.Reconciler;
9-
import io.javaoperatorsdk.operator.api.reconciler.UpdateControl;
4+
import io.javaoperatorsdk.operator.api.reconciler.*;
105
import io.javaoperatorsdk.operator.api.reconciler.dependent.Dependent;
116

127
import static io.javaoperatorsdk.operator.sample.Utils.createStatus;
@@ -25,7 +20,7 @@
2520
reconcilePrecondition = ExposedIngressCondition.class)
2621
})
2722
public class WebPageManagedDependentsReconciler
28-
implements Reconciler<WebPage>, ErrorStatusHandler<WebPage> {
23+
implements Reconciler<WebPage>, ErrorStatusHandler<WebPage>, Cleaner<WebPage> {
2924

3025
public static final String SELECTOR = "managed";
3126

@@ -45,4 +40,9 @@ public UpdateControl<WebPage> reconcile(WebPage webPage, Context<WebPage> contex
4540
webPage.setStatus(createStatus(name));
4641
return UpdateControl.patchStatus(webPage);
4742
}
43+
44+
@Override
45+
public DeleteControl cleanup(WebPage resource, Context<WebPage> context) {
46+
return DeleteControl.defaultDelete();
47+
}
4848
}

0 commit comments

Comments
 (0)