Skip to content

Commit 1a5819e

Browse files
committed
wip
Signed-off-by: Attila Mészáros <a_meszaros@apple.com>
1 parent d0496b4 commit 1a5819e

6 files changed

Lines changed: 29 additions & 7 deletions

File tree

operator-framework-junit/src/main/java/io/javaoperatorsdk/operator/junit/ClusterDeployedOperatorExtension.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
import java.util.Arrays;
2424
import java.util.List;
2525
import java.util.Locale;
26-
import java.util.Objects;
2726
import java.util.concurrent.TimeUnit;
2827
import java.util.function.Consumer;
2928
import java.util.function.Function;
@@ -103,10 +102,17 @@ protected void applyCrds(ExtensionContext context) {
103102
final var crdPath = "./target/classes/META-INF/fabric8/";
104103
final var crdSuffix = "-v1.yml";
105104

105+
final var crdDir = new File(crdPath);
106+
final var crdFiles = crdDir.listFiles((ignored, name) -> name.endsWith(crdSuffix));
107+
if (crdFiles == null || crdFiles.length == 0) {
108+
LOGGER.warn(
109+
"No CRD files found with suffix '{}' in directory: {}",
110+
crdSuffix,
111+
crdDir.getAbsolutePath());
112+
}
113+
106114
final var kubernetesClient = getInfrastructureKubernetesClient();
107-
for (var crdFile :
108-
Objects.requireNonNull(
109-
new File(crdPath).listFiles((ignored, name) -> name.endsWith(crdSuffix)))) {
115+
for (var crdFile : crdFiles != null ? crdFiles : new File[0]) {
110116
try (InputStream is = new FileInputStream(crdFile)) {
111117
final var crd = kubernetesClient.load(is);
112118
crd.createOrReplace();

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

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,8 +63,9 @@ public class LocallyRunOperatorExtension extends AbstractOperatorExtension {
6363
private static final int CRD_DELETE_TIMEOUT = 5000;
6464
private static final int CRD_DELETE_WAIT_TIMEOUT = 60000;
6565
private static final Set<AppliedCRD> appliedCRDs = new HashSet<>();
66-
private static final boolean deleteCRDs =
66+
private static final boolean DELETE_CRDS_DEFAULT =
6767
Boolean.parseBoolean(System.getProperty("testsuite.deleteCRDs", "true"));
68+
private static volatile boolean deleteCRDs = DELETE_CRDS_DEFAULT;
6869

6970
private final Operator operator;
7071
private final List<ReconcilerSpec> reconcilers;
@@ -93,7 +94,8 @@ private LocallyRunOperatorExtension(
9394
Function<ExtensionContext, String> namespaceNameSupplier,
9495
Function<ExtensionContext, String> perClassNamespaceNameSupplier,
9596
List<String> additionalCrds,
96-
Consumer<LocallyRunOperatorExtension> beforeStartHook) {
97+
Consumer<LocallyRunOperatorExtension> beforeStartHook,
98+
Boolean deleteCRDsOverride) {
9799
super(
98100
infrastructure,
99101
infrastructureTimeout,
@@ -119,6 +121,9 @@ private LocallyRunOperatorExtension(
119121
this.operator = new Operator(configurationServiceOverrider);
120122
this.registeredControllers = new HashMap<>();
121123
crdMappings = getAdditionalCRDsFromFiles(additionalCrds, getKubernetesClient());
124+
if (deleteCRDsOverride != null) {
125+
deleteCRDs = deleteCRDsOverride;
126+
}
122127
}
123128

124129
static Map<String, String> getAdditionalCRDsFromFiles(
@@ -496,6 +501,7 @@ public static class Builder extends AbstractBuilder<Builder> {
496501
private final List<CustomResourceDefinition> additionalCustomResourceDefinitionInstances;
497502
private final List<String> additionalCRDs = new ArrayList<>();
498503
private Consumer<LocallyRunOperatorExtension> beforeStartHook;
504+
private Boolean deleteCRDs;
499505
private KubernetesClient kubernetesClient;
500506
private KubernetesClient infrastructureKubernetesClient;
501507

@@ -586,6 +592,11 @@ public Builder withBeforeStartHook(Consumer<LocallyRunOperatorExtension> beforeS
586592
return this;
587593
}
588594

595+
public Builder withDeleteCRDs(boolean deleteCRDs) {
596+
this.deleteCRDs = deleteCRDs;
597+
return this;
598+
}
599+
589600
public LocallyRunOperatorExtension build() {
590601
return new LocallyRunOperatorExtension(
591602
reconcilers,
@@ -604,7 +615,8 @@ public LocallyRunOperatorExtension build() {
604615
namespaceNameSupplier,
605616
perClassNamespaceNameSupplier,
606617
additionalCRDs,
607-
beforeStartHook);
618+
beforeStartHook,
619+
deleteCRDs);
608620
}
609621
}
610622

sample-operators/metrics-processing/src/test/java/io/javaoperatorsdk/operator/sample/metrics/MetricsHandlingE2E.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ class MetricsHandlingE2E {
7474
? LocallyRunOperatorExtension.builder()
7575
.withReconciler(new MetricsHandlingReconciler1())
7676
.withReconciler(new MetricsHandlingReconciler2())
77+
.withDeleteCRDs(false)
7778
.withConfigurationService(
7879
c -> c.withMetrics(MetricsHandlingSampleOperator.initOTLPMetrics(true)))
7980
.build()

sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ boolean isLocal() {
7474
.withReconciler(new MySQLSchemaReconciler()) // configuration for schema comes from
7575
// SchemaDependentResource annotation
7676
.withInfrastructure(infrastructure)
77+
.withDeleteCRDs(false)
7778
.withPortForward(MY_SQL_NS, "app", "mysql", 3306, SchemaDependentResource.LOCAL_PORT)
7879
.build()
7980
: ClusterDeployedOperatorExtension.builder()

sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ boolean isLocal() {
6363
.waitForNamespaceDeletion(false)
6464
.withReconciler(new TomcatReconciler())
6565
.withReconciler(new WebappReconciler(client))
66+
.withDeleteCRDs(false)
6667
.build()
6768
: ClusterDeployedOperatorExtension.builder()
6869
.waitForNamespaceDeletion(false)

sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ public WebPageOperatorE2E() throws FileNotFoundException {}
4343
? LocallyRunOperatorExtension.builder()
4444
.waitForNamespaceDeletion(false)
4545
.withReconciler(new WebPageReconciler())
46+
.withDeleteCRDs(false)
4647
.build()
4748
: ClusterDeployedOperatorExtension.builder()
4849
.waitForNamespaceDeletion(false)

0 commit comments

Comments
 (0)