diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java index 1da3a1af95..bfae478971 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/AbstractOperatorExtension.java @@ -43,6 +43,7 @@ public abstract class AbstractOperatorExtension implements HasKubernetesClient, protected final boolean preserveNamespaceOnError; protected final boolean waitForNamespaceDeletion; protected final int namespaceDeleteTimeout = DEFAULT_NAMESPACE_DELETE_TIMEOUT; + protected final boolean clientProvided; protected String namespace; @@ -53,6 +54,7 @@ protected AbstractOperatorExtension( boolean preserveNamespaceOnError, boolean waitForNamespaceDeletion, KubernetesClient kubernetesClient) { + this.clientProvided = kubernetesClient != null; this.kubernetesClient = kubernetesClient != null ? kubernetesClient : new KubernetesClientBuilder() .withConfig(ConfigurationServiceProvider.instance().getClientConfiguration()).build(); @@ -182,6 +184,7 @@ protected void afterAllImpl(ExtensionContext context) { protected void afterEachImpl(ExtensionContext context) { // resets the config service provider so the controller configs are reconstructed always ConfigurationServiceProvider.reset(); + ConfigurationServiceProvider.overrideCurrent(c -> c.withCloseClientOnStop(!clientProvided)); if (!oneNamespacePerClass) { after(context); } @@ -257,6 +260,7 @@ public T oneNamespacePerClass(boolean value) { } public T withConfigurationService(Consumer overrider) { + ConfigurationServiceProvider.reset(); ConfigurationServiceProvider.overrideCurrent(overrider); return (T) this; } diff --git a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java index e852455ebf..ecb3531732 100644 --- a/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java +++ b/operator-framework-junit5/src/main/java/io/javaoperatorsdk/operator/junit/LocallyRunOperatorExtension.java @@ -62,7 +62,9 @@ private LocallyRunOperatorExtension( this.portForwards = portForwards; this.localPortForwards = new ArrayList<>(portForwards.size()); this.additionalCustomResourceDefinitions = additionalCustomResourceDefinitions; - this.operator = new Operator(getKubernetesClient()); + ConfigurationServiceProvider.reset(); + this.operator = + new Operator(getKubernetesClient(), o -> o.withCloseClientOnStop(!clientProvided)); this.registeredControllers = new HashMap<>(); } diff --git a/operator-framework/pom.xml b/operator-framework/pom.xml index 0e864eee51..57cc7b70a3 100644 --- a/operator-framework/pom.xml +++ b/operator-framework/pom.xml @@ -83,7 +83,7 @@ io.javaoperatorsdk - jenvtest + jenvtest-fabric8-client-support test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/BuiltInResourceCleanerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/BuiltInResourceCleanerIT.java index f5c663b358..7b4160ecca 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/BuiltInResourceCleanerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/BuiltInResourceCleanerIT.java @@ -8,19 +8,26 @@ import org.slf4j.LoggerFactory; import io.fabric8.kubernetes.api.model.Service; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.builtinresourcecleaner.ObservedGenerationTestReconciler; import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class BuiltInResourceCleanerIT { private static final Logger log = LoggerFactory.getLogger(BuiltInResourceCleanerIT.class); + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new ObservedGenerationTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ChangeNamespaceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ChangeNamespaceIT.java index e669f6d06c..17c6511d60 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ChangeNamespaceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ChangeNamespaceIT.java @@ -31,7 +31,8 @@ class ChangeNamespaceIT { @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new ChangeNamespaceTestReconciler()) + LocallyRunOperatorExtension.builder() + .withReconciler(new ChangeNamespaceTestReconciler()) .build(); @BeforeEach diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanerForReconcilerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanerForReconcilerIT.java index bf5fa243cf..fccd2eb454 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanerForReconcilerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanerForReconcilerIT.java @@ -4,6 +4,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.cleanerforreconciler.CleanerForReconcilerCustomResource; import io.javaoperatorsdk.operator.sample.cleanerforreconciler.CleanerForReconcilerTestReconciler; @@ -11,13 +13,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class CleanerForReconcilerIT { public static final String TEST_RESOURCE_NAME = "cleaner-for-reconciler-test1"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new CleanerForReconcilerTestReconciler()) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new CleanerForReconcilerTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanupConflictIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanupConflictIT.java index e1c571c4a5..451d772516 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanupConflictIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CleanupConflictIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.cleanupconflict.CleanupConflictCustomResource; import io.javaoperatorsdk.operator.sample.cleanupconflict.CleanupConflictReconciler; @@ -14,14 +16,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class CleanupConflictIT { private static final String ADDITIONAL_FINALIZER = "javaoperatorsdk.io/additionalfinalizer"; public static final String TEST_RESOURCE_NAME = "test1"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new CleanupConflictReconciler()) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new CleanupConflictReconciler()) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ConcurrencyIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ConcurrencyIT.java index f33c581538..2b47293f71 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ConcurrencyIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ConcurrencyIT.java @@ -10,6 +10,8 @@ import org.slf4j.LoggerFactory; import io.fabric8.kubernetes.api.model.ConfigMap; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.simple.TestCustomResource; import io.javaoperatorsdk.operator.sample.simple.TestReconciler; @@ -18,6 +20,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class ConcurrencyIT { public static final int NUMBER_OF_RESOURCES_CREATED = 50; public static final int NUMBER_OF_RESOURCES_DELETED = 30; @@ -25,9 +28,14 @@ class ConcurrencyIT { public static final String UPDATED_SUFFIX = "_updated"; private static final Logger log = LoggerFactory.getLogger(ConcurrencyIT.class); + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new TestReconciler(true)).build(); + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new TestReconciler(true)).build(); @Test void manyResourcesGetCreatedUpdatedAndDeleted() throws InterruptedException { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CreateUpdateInformerEventSourceEventFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CreateUpdateInformerEventSourceEventFilterIT.java index f319509c47..c07e4983d7 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CreateUpdateInformerEventSourceEventFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CreateUpdateInformerEventSourceEventFilterIT.java @@ -7,6 +7,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.createupdateeventfilter.CreateUpdateEventFilterTestCustomResource; import io.javaoperatorsdk.operator.sample.createupdateeventfilter.CreateUpdateEventFilterTestCustomResourceSpec; @@ -16,14 +18,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class CreateUpdateInformerEventSourceEventFilterIT { @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new CreateUpdateEventFilterTestReconciler()) .build(); + static KubernetesClient client; + @Test void updateEventNotReceivedAfterCreateOrUpdate() { CreateUpdateEventFilterTestCustomResource resource = prepareTestResource(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java index 6733abaa47..6da0322303 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/CustomResourceFilterIT.java @@ -4,6 +4,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestReconciler; import io.javaoperatorsdk.operator.sample.customfilter.CustomFilteringTestResource; @@ -11,11 +13,17 @@ import static org.assertj.core.api.Assertions.assertThat; +@EnableKubeAPIServer class CustomResourceFilterIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new CustomFilteringTestReconciler()) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new CustomFilteringTestReconciler()) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DeleterForManagedDependentResourcesOnlyIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DeleterForManagedDependentResourcesOnlyIT.java index 66db8ecb5e..bb33daae82 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DeleterForManagedDependentResourcesOnlyIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DeleterForManagedDependentResourcesOnlyIT.java @@ -4,6 +4,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.cleanermanageddependent.CleanerForManagedDependentCustomResource; import io.javaoperatorsdk.operator.sample.cleanermanageddependent.CleanerForManagedDependentTestReconciler; @@ -12,13 +14,18 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class DeleterForManagedDependentResourcesOnlyIT { public static final String TEST_RESOURCE_NAME = "cleaner-for-reconciler-test1"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new CleanerForManagedDependentTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentAnnotationSecondaryMapperIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentAnnotationSecondaryMapperIT.java index b5b01e1530..d8b96bbce6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentAnnotationSecondaryMapperIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentAnnotationSecondaryMapperIT.java @@ -7,6 +7,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.dependentannotationsecondarymapper.DependentAnnotationSecondaryMapperReconciler; import io.javaoperatorsdk.operator.sample.dependentannotationsecondarymapper.DependentAnnotationSecondaryMapperResource; @@ -16,13 +18,18 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class DependentAnnotationSecondaryMapperIT { public static final String TEST_RESOURCE_NAME = "test1"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(DependentAnnotationSecondaryMapperReconciler.class) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentFilterIT.java index 19d6678a59..7785cc411e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentFilterIT.java @@ -8,6 +8,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.dependentfilter.DependentFilterTestCustomResource; import io.javaoperatorsdk.operator.sample.dependentfilter.DependentFilterTestReconciler; @@ -18,13 +20,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class DependentFilterIT { public static final String RESOURCE_NAME = "test1"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(DependentFilterTestReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(DependentFilterTestReconciler.class) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java index 1d0c091e16..a958e77901 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentOperationEventFilterIT.java @@ -7,6 +7,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.dependentoperationeventfiltering.ConfigMapDependentResource; import io.javaoperatorsdk.operator.sample.dependentoperationeventfiltering.DependentOperationEventFilterCustomResource; @@ -16,15 +18,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class DependentOperationEventFilterIT { public static final String TEST = "test"; public static final String SPEC_VAL_1 = "val1"; public static final String SPEC_VAL_2 = "val2"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new DependentOperationEventFilterCustomResourceTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentPrimaryIndexerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentPrimaryIndexerIT.java index 44d88aaecf..3668a8fda2 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentPrimaryIndexerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentPrimaryIndexerIT.java @@ -1,12 +1,19 @@ package io.javaoperatorsdk.operator; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.primaryindexer.DependentPrimaryIndexerTestReconciler; +@EnableKubeAPIServer public class DependentPrimaryIndexerIT extends PrimaryIndexerIT { + static KubernetesClient client; + protected LocallyRunOperatorExtension buildOperator() { return LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new DependentPrimaryIndexerTestReconciler()) .build(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentResourceCrossRefIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentResourceCrossRefIT.java index 912b5b8ce7..7bdcc817a1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentResourceCrossRefIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/DependentResourceCrossRefIT.java @@ -8,6 +8,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; import io.fabric8.kubernetes.api.model.Secret; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.dependentresourcecrossref.DependentResourceCrossRefReconciler; import io.javaoperatorsdk.operator.sample.dependentresourcecrossref.DependentResourceCrossRefResource; @@ -15,14 +17,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class DependentResourceCrossRefIT { public static final String TEST_RESOURCE_NAME = "test"; public static final int EXECUTION_NUMBER = 50; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new DependentResourceCrossRefReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ErrorStatusHandlerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ErrorStatusHandlerIT.java index e66fd2dcce..adfad77081 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ErrorStatusHandlerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ErrorStatusHandlerIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.processing.retry.GenericRetry; import io.javaoperatorsdk.operator.sample.errorstatushandler.ErrorStatusHandlerTestCustomResource; @@ -14,14 +16,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class ErrorStatusHandlerIT { public static final int MAX_RETRY_ATTEMPTS = 3; ErrorStatusHandlerTestReconciler reconciler = new ErrorStatusHandlerTestReconciler(); + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(reconciler, new GenericRetry().setMaxAttempts(MAX_RETRY_ATTEMPTS).withLinearRetry()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/EventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/EventSourceIT.java index 7432e5da0a..ea0401b540 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/EventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/EventSourceIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.event.EventSourceTestCustomReconciler; import io.javaoperatorsdk.operator.sample.event.EventSourceTestCustomResource; @@ -15,11 +17,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class EventSourceIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(EventSourceTestCustomReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(EventSourceTestCustomReconciler.class) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/FilterIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/FilterIT.java index 28ce794de9..55b37427f8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/FilterIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/FilterIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.filter.FilterTestCustomResource; import io.javaoperatorsdk.operator.sample.filter.FilterTestReconciler; @@ -15,14 +17,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class FilterIT { public static final String RESOURCE_NAME = "test1"; public static final int POLL_DELAY = 150; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(FilterTestReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(FilterTestReconciler.class) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/GracefulStopIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/GracefulStopIT.java index 715921ecbb..9454fe98d6 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/GracefulStopIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/GracefulStopIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.gracefulstop.GracefulStopTestCustomResource; import io.javaoperatorsdk.operator.sample.gracefulstop.GracefulStopTestCustomResourceSpec; @@ -15,14 +17,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer public class GracefulStopIT { public static final String TEST_1 = "test1"; public static final String TEST_2 = "test2"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withConfigurationService(o -> o.withCloseClientOnStop(false)) .withReconciler(new GracefulStopTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java index fe5b63de8a..a7811d19b8 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/IndexDiscriminatorIT.java @@ -20,6 +20,7 @@ class IndexDiscriminatorIT { public static final String TEST_RESOURCE_1 = "test1"; public static final String CHANGED_SPEC_VALUE = "otherValue"; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder().withReconciler(IndexDiscriminatorTestReconciler.class) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerEventSourceIT.java index 45983145da..8dedad9d1f 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerEventSourceIT.java @@ -8,6 +8,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.informereventsource.InformerEventSourceTestCustomReconciler; import io.javaoperatorsdk.operator.sample.informereventsource.InformerEventSourceTestCustomResource; @@ -19,15 +21,20 @@ import static org.assertj.core.api.Assertions.fail; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class InformerEventSourceIT { public static final String RESOURCE_NAME = "informertestcr"; public static final String INITIAL_STATUS_MESSAGE = "Initial Status"; public static final String UPDATE_STATUS_MESSAGE = "Updated Status"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new InformerEventSourceTestCustomReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/KubernetesResourceStatusUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/KubernetesResourceStatusUpdateIT.java index 02cd982af9..1deeaf646e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/KubernetesResourceStatusUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/KubernetesResourceStatusUpdateIT.java @@ -24,6 +24,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +// todo not use pod? class KubernetesResourceStatusUpdateIT { @RegisterExtension diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/LabelSelectorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/LabelSelectorIT.java index 8324a8c1d2..081d5e4364 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/LabelSelectorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/LabelSelectorIT.java @@ -8,6 +8,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestCustomResource; import io.javaoperatorsdk.operator.sample.labelselector.LabelSelectorTestReconciler; @@ -17,11 +19,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class LabelSelectorIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new LabelSelectorTestReconciler()) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new LabelSelectorTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalAfterRetryIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalAfterRetryIT.java index 84814e127e..28461ad70e 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalAfterRetryIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalAfterRetryIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.maxintervalafterretry.MaxIntervalAfterRetryTestCustomResource; import io.javaoperatorsdk.operator.sample.maxintervalafterretry.MaxIntervalAfterRetryTestReconciler; @@ -13,11 +15,16 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class MaxIntervalAfterRetryIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new MaxIntervalAfterRetryTestReconciler()).build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalIT.java index 35ae316f53..6910052953 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MaxIntervalIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.maxinterval.MaxIntervalTestCustomResource; import io.javaoperatorsdk.operator.sample.maxinterval.MaxIntervalTestReconciler; @@ -13,11 +15,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class MaxIntervalIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new MaxIntervalTestReconciler()).build(); + LocallyRunOperatorExtension.builder() + .waitForNamespaceDeletion(false) + .withKubernetesClient(client) + .withReconciler(new MaxIntervalTestReconciler()).build(); @Test void reconciliationTriggeredBasedOnMaxInterval() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultiVersionCRDIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultiVersionCRDIT.java index dbb393fec0..91019ea925 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultiVersionCRDIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultiVersionCRDIT.java @@ -3,6 +3,7 @@ import java.time.Duration; import java.util.HashMap; +import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; import org.slf4j.Logger; @@ -10,9 +11,11 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; import io.fabric8.kubernetes.client.WatcherException; import io.fabric8.kubernetes.client.informers.SharedIndexInformer; import io.fabric8.kubernetes.client.utils.Serialization; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.api.config.InformerStoppedHandler; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.multiversioncrd.MultiVersionCRDTestCustomResource1; @@ -27,6 +30,8 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@Disabled +@EnableKubeAPIServer class MultiVersionCRDIT { private static final Logger log = LoggerFactory.getLogger(MultiVersionCRDIT.class); @@ -34,9 +39,13 @@ class MultiVersionCRDIT { public static final String CR_V1_NAME = "crv1"; public static final String CR_V2_NAME = "crv2"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(MultiVersionCRDTestReconciler1.class) .withReconciler(MultiVersionCRDTestReconciler2.class) .withConfigurationService( diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleManagedExternalDependentSameTypeIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleManagedExternalDependentSameTypeIT.java index e62835c063..34f8addc27 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleManagedExternalDependentSameTypeIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleManagedExternalDependentSameTypeIT.java @@ -4,6 +4,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.multiplemanageddependentsametype.MultipleManagedDependentResourceSpec; import io.javaoperatorsdk.operator.sample.multiplemanagedexternaldependenttype.MultipleManagedExternalDependentResourceCustomResource; @@ -13,11 +15,16 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class MultipleManagedExternalDependentSameTypeIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new MultipleManagedExternalDependentResourceReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleSecondaryEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleSecondaryEventSourceIT.java index 85be323379..0359d3af1d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleSecondaryEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/MultipleSecondaryEventSourceIT.java @@ -7,18 +7,26 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.multiplesecondaryeventsource.MultipleSecondaryEventSourceCustomResource; import io.javaoperatorsdk.operator.sample.multiplesecondaryeventsource.MultipleSecondaryEventSourceReconciler; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class MultipleSecondaryEventSourceIT { public static final String TEST_RESOURCE_NAME = "testresource"; + + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(MultipleSecondaryEventSourceReconciler.class) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ObservedGenerationHandlingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ObservedGenerationHandlingIT.java index 0e28ddec4c..faa9e880b5 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ObservedGenerationHandlingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ObservedGenerationHandlingIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.observedgeneration.ObservedGenerationTestCustomResource; import io.javaoperatorsdk.operator.sample.observedgeneration.ObservedGenerationTestReconciler; @@ -13,10 +15,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class ObservedGenerationHandlingIT { + + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new ObservedGenerationTestReconciler()) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new ObservedGenerationTestReconciler()) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/OperatorRestartIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/OperatorRestartIT.java index 45b88a126b..479b3a73c0 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/OperatorRestartIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/OperatorRestartIT.java @@ -1,10 +1,6 @@ package io.javaoperatorsdk.operator; -import org.junit.jupiter.api.AfterEach; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.BeforeEach; -import org.junit.jupiter.api.Order; -import org.junit.jupiter.api.Test; +import org.junit.jupiter.api.*; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; import io.fabric8.kubernetes.client.KubernetesClient; @@ -16,6 +12,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@Disabled class OperatorRestartIT { private final static KubernetesClient client = new KubernetesClientBuilder().build(); private final static Operator operator = new Operator(o -> o.withCloseClientOnStop(false)); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/OrderedManagedDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/OrderedManagedDependentIT.java index e7bb8fdd14..de74d9d74d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/OrderedManagedDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/OrderedManagedDependentIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.orderedmanageddependent.ConfigMapDependentResource1; import io.javaoperatorsdk.operator.sample.orderedmanageddependent.ConfigMapDependentResource2; @@ -15,11 +17,16 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class OrderedManagedDependentIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new OrderedManagedDependentTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PerResourcePollingEventSourceIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PerResourcePollingEventSourceIT.java index a4b850b9d4..524f7892bc 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PerResourcePollingEventSourceIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PerResourcePollingEventSourceIT.java @@ -4,6 +4,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.perresourceeventsource.PerResourceEventSourceCustomResource; import io.javaoperatorsdk.operator.sample.perresourceeventsource.PerResourcePollingEventSourceTestReconciler; @@ -11,14 +13,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class PerResourcePollingEventSourceIT { public static final String NAME_1 = "name1"; public static final String NAME_2 = "name2"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new PerResourcePollingEventSourceTestReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryIndexerIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryIndexerIT.java index 16f223ce38..cf0684834d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryIndexerIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryIndexerIT.java @@ -7,6 +7,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMeta; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.primaryindexer.AbstractPrimaryIndexerTestReconciler; import io.javaoperatorsdk.operator.sample.primaryindexer.PrimaryIndexerTestCustomResource; @@ -16,17 +18,23 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class PrimaryIndexerIT { public static final String CONFIG_MAP_NAME = "common-config-map"; public static final String RESOURCE_NAME1 = "test1"; public static final String RESOURCE_NAME2 = "test2"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = buildOperator(); protected LocallyRunOperatorExtension buildOperator() { - return LocallyRunOperatorExtension.builder().withReconciler(new PrimaryIndexerTestReconciler()) + return LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new PrimaryIndexerTestReconciler()) .build(); } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryDependentIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryDependentIT.java index eaa7e4410f..9acdc3d468 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryDependentIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryDependentIT.java @@ -9,6 +9,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; import io.fabric8.kubernetes.api.model.Secret; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.primarytosecondaydependent.PrimaryToSecondaryDependentCustomResource; import io.javaoperatorsdk.operator.sample.primarytosecondaydependent.PrimaryToSecondaryDependentReconciler; @@ -19,15 +21,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class PrimaryToSecondaryDependentIT { public static final String TEST_CONFIG_MAP_NAME = "testconfigmap"; public static final String TEST_CR_NAME = "test1"; public static final String TEST_DATA = "testData"; - public - @RegisterExtension LocallyRunOperatorExtension operator = + static KubernetesClient client; + + @RegisterExtension + LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new PrimaryToSecondaryDependentReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryIT.java index 720683a8cc..39c1bf08fd 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.primarytosecondary.Cluster; import io.javaoperatorsdk.operator.sample.primarytosecondary.Job; @@ -15,14 +17,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class PrimaryToSecondaryIT { public static final String CLUSTER_NAME = "cluster1"; public static final int MIN_DELAY = 150; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withAdditionalCustomResourceDefinition(Cluster.class) .withReconciler(new JobReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryMissingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryMissingIT.java index 3105ab04ff..edd4f75488 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryMissingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/PrimaryToSecondaryMissingIT.java @@ -3,6 +3,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.primarytosecondary.Cluster; import io.javaoperatorsdk.operator.sample.primarytosecondary.JobReconciler; @@ -16,11 +18,16 @@ * The intention with this IT is to show the use cases why the PrimaryToSecondary Mapper is needed, * and the situation when it is not working. */ +@EnableKubeAPIServer class PrimaryToSecondaryMissingIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withAdditionalCustomResourceDefinition(Cluster.class) .withReconciler(new JobReconciler(false)) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/RateLimitIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/RateLimitIT.java index f1d5bed6f1..dca9d9e4f3 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/RateLimitIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/RateLimitIT.java @@ -9,6 +9,8 @@ import org.slf4j.LoggerFactory; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.ratelimit.RateLimitCustomResource; import io.javaoperatorsdk.operator.sample.ratelimit.RateLimitCustomResourceSpec; @@ -18,13 +20,18 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class RateLimitIT { private final static Logger log = LoggerFactory.getLogger(RateLimitIT.class); + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(new RateLimitReconciler()) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java index 07a022adb1..099b68196b 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java @@ -7,6 +7,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ConfigMap; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.simple.TestCustomResource; import io.javaoperatorsdk.operator.sample.simple.TestReconciler; @@ -15,11 +17,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class ReconcilerExecutorIT { + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(new TestReconciler(true)).build(); + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(new TestReconciler(true)).build(); @Test void configMapGetsCreatedForTestCustomResource() { diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryIT.java index a54e24dc70..bef2d18afd 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.processing.retry.GenericRetry; import io.javaoperatorsdk.operator.sample.retry.RetryTestCustomReconciler; @@ -17,15 +19,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class RetryIT { public static final int RETRY_INTERVAL = 150; public static final int MAX_RETRY_ATTEMPTS = 5; public static final int NUMBER_FAILED_EXECUTIONS = 3; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler( new RetryTestCustomReconciler(NUMBER_FAILED_EXECUTIONS), new GenericRetry().setInitialInterval(RETRY_INTERVAL).withLinearRetry() diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryMaxAttemptIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryMaxAttemptIT.java index d09b14c4a9..2d43399f2c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryMaxAttemptIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/RetryMaxAttemptIT.java @@ -3,6 +3,8 @@ import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.RegisterExtension; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.processing.retry.GenericRetry; import io.javaoperatorsdk.operator.sample.retry.RetryTestCustomReconciler; @@ -11,6 +13,7 @@ import static io.javaoperatorsdk.operator.RetryIT.createTestCustomResource; import static org.assertj.core.api.Assertions.assertThat; +@EnableKubeAPIServer class RetryMaxAttemptIT { public static final int MAX_RETRY_ATTEMPTS = 3; @@ -19,9 +22,13 @@ class RetryMaxAttemptIT { RetryTestCustomReconciler reconciler = new RetryTestCustomReconciler(ALL_EXECUTION_TO_FAIL); + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(reconciler, new GenericRetry().setInitialInterval(RETRY_INTERVAL).withLinearRetry() .setMaxAttempts(MAX_RETRY_ATTEMPTS)) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusPatchNotLockingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusPatchNotLockingIT.java index 1746e5737d..7605bb8403 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusPatchNotLockingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusPatchNotLockingIT.java @@ -7,6 +7,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.statuspatchnonlocking.StatusPatchLockingCustomResource; import io.javaoperatorsdk.operator.sample.statuspatchnonlocking.StatusPatchLockingCustomResourceSpec; @@ -17,13 +19,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class StatusPatchNotLockingIT { public static final String TEST_RESOURCE_NAME = "test"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(StatusPatchLockingReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(StatusPatchLockingReconciler.class) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusUpdateLockingIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusUpdateLockingIT.java index 147c0403c3..982b7b9969 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusUpdateLockingIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/StatusUpdateLockingIT.java @@ -7,6 +7,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.statusupdatelocking.StatusUpdateLockingCustomResource; import io.javaoperatorsdk.operator.sample.statusupdatelocking.StatusUpdateLockingReconciler; @@ -15,13 +17,19 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class StatusUpdateLockingIT { public static final String TEST_RESOURCE_NAME = "test"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(StatusUpdateLockingReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(StatusUpdateLockingReconciler.class) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java index ee6fc8e422..370ff54e7c 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/SubResourceUpdateIT.java @@ -7,6 +7,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.subresource.SubResourceTestCustomReconciler; import io.javaoperatorsdk.operator.sample.subresource.SubResourceTestCustomResource; @@ -17,14 +19,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class SubResourceUpdateIT { public static final int WAIT_AFTER_EXECUTION = 500; public static final int EVENT_RECEIVE_WAIT = 200; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(SubResourceTestCustomReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(SubResourceTestCustomReconciler.class) .build(); @Test diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/UnmodifiableDependentPartIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/UnmodifiableDependentPartIT.java index bc0e951d8a..019aab3c7d 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/UnmodifiableDependentPartIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/UnmodifiableDependentPartIT.java @@ -5,6 +5,8 @@ import io.fabric8.kubernetes.api.model.ConfigMap; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.unmodifiabledependentpart.UnmodifiableDependentPartCustomResource; import io.javaoperatorsdk.operator.sample.unmodifiabledependentpart.UnmodifiableDependentPartReconciler; @@ -15,15 +17,20 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer public class UnmodifiableDependentPartIT { public static final String TEST_RESOURCE_NAME = "test1"; public static final String INITIAL_DATA = "initialData"; public static final String UPDATED_DATA = "updatedData"; + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) .withReconciler(UnmodifiableDependentPartReconciler.class) .build(); diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/UpdatingResAndSubResIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/UpdatingResAndSubResIT.java index 3d7d27b4c3..8874d3ef84 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/UpdatingResAndSubResIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/UpdatingResAndSubResIT.java @@ -6,6 +6,8 @@ import org.junit.jupiter.api.extension.RegisterExtension; import io.fabric8.kubernetes.api.model.ObjectMetaBuilder; +import io.fabric8.kubernetes.client.KubernetesClient; +import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer; import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension; import io.javaoperatorsdk.operator.sample.doubleupdate.DoubleUpdateTestCustomReconciler; import io.javaoperatorsdk.operator.sample.doubleupdate.DoubleUpdateTestCustomResource; @@ -16,10 +18,17 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; +@EnableKubeAPIServer class UpdatingResAndSubResIT { + + static KubernetesClient client; + @RegisterExtension LocallyRunOperatorExtension operator = - LocallyRunOperatorExtension.builder().withReconciler(DoubleUpdateTestCustomReconciler.class) + LocallyRunOperatorExtension.builder() + .withKubernetesClient(client) + .waitForNamespaceDeletion(false) + .withReconciler(DoubleUpdateTestCustomReconciler.class) .build(); @Test diff --git a/pom.xml b/pom.xml index 0715dedf36..869ae27d77 100644 --- a/pom.xml +++ b/pom.xml @@ -57,7 +57,7 @@ 1.10.6 4.10.0 3.1.3 - 0.9.0 + 0.9.1 2.11 3.11.0 @@ -204,7 +204,7 @@ io.javaoperatorsdk - jenvtest + jenvtest-fabric8-client-support ${jenvtest.version} test @@ -403,6 +403,15 @@ org.apache.maven.plugins maven-surefire-plugin + + + + + + + + + **/*IT.java @@ -424,6 +433,15 @@ org.apache.maven.plugins maven-surefire-plugin + + + + + + + + + **/*ITS.java