From d2cc3a24f2396f7e8938f5607502f3fa49c11328 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 29 Apr 2026 09:06:03 +0200 Subject: [PATCH 1/2] fix: local E2E test should not delete CRD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit That causes a race condition, where it marks the CRD to be deleted. But since we don't wait for cleanup of the namespace in E2E eventually the namespace is deleted by garbage collector and then the CRD is deleted. Unfortunatelly this can happen when the cluster test is already running. Signed-off-by: Attila Mészáros --- .../javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java | 1 + .../operator/sample/operations/OperationsE2E.java | 1 + .../io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java | 1 + .../io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java | 1 + 4 files changed, 4 insertions(+) diff --git a/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java b/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java index 80d07333f6..622c693fd5 100644 --- a/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java +++ b/sample-operators/mysql-schema/src/test/java/io/javaoperatorsdk/operator/sample/MySQLSchemaOperatorE2E.java @@ -74,6 +74,7 @@ boolean isLocal() { .withReconciler(new MySQLSchemaReconciler()) // configuration for schema comes from // SchemaDependentResource annotation .withInfrastructure(infrastructure) + .withDeleteCRDs(false) .withPortForward(MY_SQL_NS, "app", "mysql", 3306, SchemaDependentResource.LOCAL_PORT) .build() : ClusterDeployedOperatorExtension.builder() diff --git a/sample-operators/operations/src/test/java/io/javaoperatorsdk/operator/sample/operations/OperationsE2E.java b/sample-operators/operations/src/test/java/io/javaoperatorsdk/operator/sample/operations/OperationsE2E.java index e30032eb8d..269df8e417 100644 --- a/sample-operators/operations/src/test/java/io/javaoperatorsdk/operator/sample/operations/OperationsE2E.java +++ b/sample-operators/operations/src/test/java/io/javaoperatorsdk/operator/sample/operations/OperationsE2E.java @@ -74,6 +74,7 @@ class OperationsE2E { ? LocallyRunOperatorExtension.builder() .withReconciler(new OperationsReconciler1()) .withReconciler(new OperationsReconciler2()) + .withDeleteCRDs(false) .withConfigurationService( c -> c.withMetrics(OperationsSampleOperator.initOTLPMetrics(true))) .build() diff --git a/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java b/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java index f889b242db..2127298afd 100644 --- a/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java +++ b/sample-operators/tomcat-operator/src/test/java/io/javaoperatorsdk/operator/sample/TomcatOperatorE2E.java @@ -61,6 +61,7 @@ boolean isLocal() { isLocal() ? LocallyRunOperatorExtension.builder() .waitForNamespaceDeletion(false) + .withDeleteCRDs(false) .withReconciler(new TomcatReconciler()) .withReconciler(new WebappReconciler(client)) .build() diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java index 979f471de0..8b0ed5fe69 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorE2E.java @@ -42,6 +42,7 @@ public WebPageOperatorE2E() throws FileNotFoundException {} isLocal() ? LocallyRunOperatorExtension.builder() .waitForNamespaceDeletion(false) + .withDeleteCRDs(false) .withReconciler(new WebPageReconciler()) .build() : ClusterDeployedOperatorExtension.builder() From 5ae54f5df417f678138f12078b99952e09c4b78b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Attila=20M=C3=A9sz=C3=A1ros?= Date: Wed, 29 Apr 2026 09:12:53 +0200 Subject: [PATCH 2/2] wip MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Attila Mészáros --- .../sample/WebPageOperatorManagedDependentResourcesE2E.java | 1 + .../sample/WebPageOperatorStandaloneDependentResourcesE2E.java | 1 + 2 files changed, 2 insertions(+) diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java index 2b19af705c..20c27529d4 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorManagedDependentResourcesE2E.java @@ -40,6 +40,7 @@ public WebPageOperatorManagedDependentResourcesE2E() throws FileNotFoundExceptio isLocal() ? LocallyRunOperatorExtension.builder() .waitForNamespaceDeletion(false) + .withDeleteCRDs(false) .withReconciler(new WebPageManagedDependentsReconciler()) .build() : ClusterDeployedOperatorExtension.builder() diff --git a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java index e083e6eda5..2073bf3daa 100644 --- a/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java +++ b/sample-operators/webpage/src/test/java/io/javaoperatorsdk/operator/sample/WebPageOperatorStandaloneDependentResourcesE2E.java @@ -33,6 +33,7 @@ public WebPageOperatorStandaloneDependentResourcesE2E() throws FileNotFoundExcep isLocal() ? LocallyRunOperatorExtension.builder() .waitForNamespaceDeletion(false) + .withDeleteCRDs(false) .withReconciler(new WebPageStandaloneDependentsReconciler()) .build() : ClusterDeployedOperatorExtension.builder()