Skip to content

Commit 60212cc

Browse files
committed
fix: allow keeping deleted CRDs in test with configuration
Signed-off-by: xstefank <[email protected]>
1 parent f5f0a60 commit 60212cc

File tree

1 file changed

+15
-3
lines changed

1 file changed

+15
-3
lines changed

operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java

+15-3
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,16 @@
88
import java.nio.file.Files;
99
import java.nio.file.Path;
1010
import java.time.Duration;
11+
import java.util.ArrayDeque;
1112
import java.util.ArrayList;
13+
import java.util.Deque;
1214
import java.util.HashMap;
15+
import java.util.HashSet;
16+
import java.util.Iterator;
1317
import java.util.LinkedList;
1418
import java.util.List;
1519
import java.util.Map;
20+
import java.util.Set;
1621
import java.util.function.Consumer;
1722
import java.util.function.Function;
1823
import java.util.stream.Stream;
@@ -43,6 +48,8 @@ public class LocallyRunOperatorExtension extends AbstractOperatorExtension {
4348

4449
private static final Logger LOGGER = LoggerFactory.getLogger(LocallyRunOperatorExtension.class);
4550
private static final int CRD_DELETE_TIMEOUT = 1000;
51+
private static final Set<AppliedCRD> appliedCRDs = new HashSet<>();
52+
private static final boolean deleteCRDs = Boolean.parseBoolean(System.getProperty("testsuite.deleteCRDs", "true"));
4653

4754
private final Operator operator;
4855
private final List<ReconcilerSpec> reconcilers;
@@ -51,7 +58,6 @@ public class LocallyRunOperatorExtension extends AbstractOperatorExtension {
5158
private final List<Class<? extends CustomResource>> additionalCustomResourceDefinitions;
5259
private final Map<Reconciler, RegisteredController> registeredControllers;
5360
private final Map<String, String> crdMappings;
54-
private static final LinkedList<AppliedCRD> appliedCRDs = new LinkedList<>();
5561

5662
private LocallyRunOperatorExtension(
5763
List<ReconcilerSpec> reconcilers,
@@ -297,8 +303,10 @@ protected void after(ExtensionContext context) {
297303

298304
var kubernetesClient = getKubernetesClient();
299305

300-
while (!appliedCRDs.isEmpty()) {
301-
deleteCrd(appliedCRDs.poll(), kubernetesClient);
306+
var iterator = appliedCRDs.iterator();
307+
while (iterator.hasNext()) {
308+
deleteCrd(iterator.next(), kubernetesClient);
309+
iterator.remove();
302310
}
303311

304312
kubernetesClient.close();
@@ -320,6 +328,10 @@ protected void after(ExtensionContext context) {
320328
}
321329

322330
private void deleteCrd(AppliedCRD appliedCRD, KubernetesClient client) {
331+
if (!deleteCRDs) {
332+
LOGGER.debug("Skipping deleting CRD because of configuration: {}", appliedCRD);
333+
return;
334+
}
323335
try {
324336
LOGGER.debug("Deleting CRD: {}", appliedCRD.crdString);
325337
final var crd = client.load(new ByteArrayInputStream(appliedCRD.crdString.getBytes()));

0 commit comments

Comments
 (0)