Skip to content

Commit 25fa1eb

Browse files
committed
Revert "chore: temporarily revert SSA for finalizers (#1654)"
This reverts commit c72baa2.
1 parent c72baa2 commit 25fa1eb

File tree

3 files changed

+6
-50
lines changed

3 files changed

+6
-50
lines changed

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

Lines changed: 5 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -295,10 +295,8 @@ private PostExecutionControl<P> handleCleanup(P originalResource, P resource,
295295
// cleanup is finished, nothing left to done
296296
final var finalizerName = configuration().getFinalizerName();
297297
if (deleteControl.isRemoveFinalizer() && resource.hasFinalizer(finalizerName)) {
298-
P customResource = removeFinalizer(resource, finalizerName);
299-
// todo: restore SSA
300-
// P customResource = conflictRetryingPatch(resource, originalResource,
301-
// r -> r.removeFinalizer(finalizerName));
298+
P customResource = conflictRetryingPatch(resource, originalResource,
299+
r -> r.removeFinalizer(finalizerName));
302300
return PostExecutionControl.customResourceFinalizerRemoved(customResource);
303301
}
304302
}
@@ -313,49 +311,13 @@ private PostExecutionControl<P> handleCleanup(P originalResource, P resource,
313311
return postExecutionControl;
314312
}
315313

316-
// todo: remove after restoring SSA
317-
public P removeFinalizer(P resource, String finalizer) {
318-
if (log.isDebugEnabled()) {
319-
log.debug("Removing finalizer on resource: {}", ResourceID.fromResource(resource));
320-
}
321-
int retryIndex = 0;
322-
while (true) {
323-
try {
324-
var removed = resource.removeFinalizer(finalizer);
325-
if (!removed) {
326-
return resource;
327-
}
328-
return customResourceFacade.updateResource(resource);
329-
} catch (KubernetesClientException e) {
330-
log.trace("Exception during finalizer removal for resource: {}", resource);
331-
retryIndex++;
332-
// only retry on conflict (HTTP 409), otherwise fail
333-
if (e.getCode() != 409) {
334-
throw e;
335-
}
336-
if (retryIndex >= MAX_FINALIZER_REMOVAL_RETRY) {
337-
throw new OperatorException(
338-
"Exceeded maximum (" + MAX_FINALIZER_REMOVAL_RETRY
339-
+ ") retry attempts to remove finalizer '" + finalizer + "' for resource "
340-
+ ResourceID.fromResource(resource));
341-
}
342-
resource = customResourceFacade.getResource(resource.getMetadata().getNamespace(),
343-
resource.getMetadata().getName());
344-
}
345-
}
346-
}
347-
348314
private P updateCustomResourceWithFinalizer(P resourceForExecution, P originalResource) {
349315
log.debug(
350316
"Adding finalizer for resource: {} version: {}", getUID(originalResource),
351317
getVersion(originalResource));
352318

353-
originalResource.addFinalizer(configuration().getFinalizerName());
354-
return customResourceFacade.updateResource(originalResource);
355-
356-
// todo: restore SSA
357-
// return conflictRetryingPatch(resourceForExecution, originalResource,
358-
// r -> r.addFinalizer(configuration().getFinalizerName()));
319+
return conflictRetryingPatch(resourceForExecution, originalResource,
320+
r -> r.addFinalizer(configuration().getFinalizerName()));
359321
}
360322

361323
private P updateCustomResource(P resource) {
@@ -434,6 +396,7 @@ public R updateResource(R resource) {
434396
.replace();
435397
}
436398

399+
@SuppressWarnings({"rawtypes", "unchecked"})
437400
public R updateStatus(R resource) {
438401
log.trace("Updating status for resource: {}", resource);
439402
return resource(resource)

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

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,6 @@
99
import org.junit.jupiter.api.AfterAll;
1010
import org.junit.jupiter.api.BeforeAll;
1111
import org.junit.jupiter.api.BeforeEach;
12-
import org.junit.jupiter.api.Disabled;
1312
import org.junit.jupiter.api.Test;
1413
import org.mockito.ArgumentCaptor;
1514
import org.mockito.ArgumentMatcher;
@@ -23,10 +22,7 @@
2322
import io.javaoperatorsdk.operator.MockKubernetesClient;
2423
import io.javaoperatorsdk.operator.OperatorException;
2524
import io.javaoperatorsdk.operator.TestUtils;
26-
import io.javaoperatorsdk.operator.api.config.Cloner;
27-
import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider;
28-
import io.javaoperatorsdk.operator.api.config.ControllerConfiguration;
29-
import io.javaoperatorsdk.operator.api.config.MockControllerConfiguration;
25+
import io.javaoperatorsdk.operator.api.config.*;
3026
import io.javaoperatorsdk.operator.api.reconciler.Cleaner;
3127
import io.javaoperatorsdk.operator.api.reconciler.Context;
3228
import io.javaoperatorsdk.operator.api.reconciler.DeleteControl;
@@ -59,7 +55,6 @@
5955
import static org.mockito.Mockito.when;
6056

6157
@SuppressWarnings({"unchecked", "rawtypes"})
62-
@Disabled(value = "todo: reactivate when restoring SSA")
6358
class ReconciliationDispatcherTest {
6459

6560
private static final String DEFAULT_FINALIZER = "javaoperatorsdk.io/finalizer";

operator-framework/src/test/java/io/javaoperatorsdk/operator/CachePruneIT.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import java.time.Duration;
44
import java.util.Map;
55

6-
import org.junit.jupiter.api.Disabled;
76
import org.junit.jupiter.api.Test;
87
import org.junit.jupiter.api.extension.RegisterExtension;
98

@@ -18,7 +17,6 @@
1817
import static org.assertj.core.api.Assertions.assertThat;
1918
import static org.awaitility.Awaitility.await;
2019

21-
@Disabled(value = "todo: reactivate when restoring SSA")
2220
class CachePruneIT {
2321

2422
public static final String DEFAULT_DATA = "default_data";

0 commit comments

Comments
 (0)