diff --git a/operator-framework/pom.xml b/operator-framework/pom.xml
index 7fe42fff63..40ec6c9d20 100644
--- a/operator-framework/pom.xml
+++ b/operator-framework/pom.xml
@@ -12,7 +12,21 @@
   <artifactId>operator-framework</artifactId>
   <name>Operator SDK - Framework - Plain Java</name>
 
+
   <dependencies>
+    <!-- https://mvnrepository.com/artifact/org.testcontainers/k3s -->
+    <dependency>
+      <groupId>com.dajudge.kindcontainer</groupId>
+      <artifactId>kindcontainer</artifactId>
+      <version>1.4.2</version>
+      <scope>test</scope>
+    </dependency>
+<!--  todo move to dependency management  -->
+    <dependency>
+      <groupId>com.fasterxml.jackson.core</groupId>
+      <artifactId>jackson-annotations</artifactId>
+      <version>2.15.2</version>
+    </dependency>
     <dependency>
       <groupId>io.javaoperatorsdk</groupId>
       <artifactId>operator-framework-core</artifactId>
@@ -81,11 +95,6 @@
       <version>${project.version}</version>
       <scope>test</scope>
     </dependency>
-    <dependency>
-      <groupId>io.javaoperatorsdk</groupId>
-      <artifactId>jenvtest</artifactId>
-      <scope>test</scope>
-    </dependency>
   </dependencies>
 
   <build>
diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerRelatedBehaviorITS.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerRelatedBehaviorITS.java
index 36e4fd23f6..89288313e1 100644
--- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerRelatedBehaviorITS.java
+++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/InformerRelatedBehaviorITS.java
@@ -14,11 +14,11 @@
 import io.fabric8.kubernetes.api.model.rbac.ClusterRoleBinding;
 import io.fabric8.kubernetes.api.model.rbac.Role;
 import io.fabric8.kubernetes.api.model.rbac.RoleBinding;
+import io.fabric8.kubernetes.client.Config;
 import io.fabric8.kubernetes.client.ConfigBuilder;
 import io.fabric8.kubernetes.client.KubernetesClient;
 import io.fabric8.kubernetes.client.KubernetesClientBuilder;
 import io.fabric8.kubernetes.client.utils.KubernetesResourceUtil;
-import io.javaoperatorsdk.jenvtest.junit.EnableKubeAPIServer;
 import io.javaoperatorsdk.operator.health.InformerHealthIndicator;
 import io.javaoperatorsdk.operator.junit.LocallyRunOperatorExtension;
 import io.javaoperatorsdk.operator.processing.event.source.controller.ControllerResourceEventSource;
@@ -26,6 +26,8 @@
 import io.javaoperatorsdk.operator.sample.informerrelatedbehavior.InformerRelatedBehaviorTestCustomResource;
 import io.javaoperatorsdk.operator.sample.informerrelatedbehavior.InformerRelatedBehaviorTestReconciler;
 
+import com.dajudge.kindcontainer.ApiServerContainer;
+
 import static io.javaoperatorsdk.operator.sample.informerrelatedbehavior.InformerRelatedBehaviorTestReconciler.CONFIG_MAP_DEPENDENT_RESOURCE;
 import static io.javaoperatorsdk.operator.sample.informerrelatedbehavior.InformerRelatedBehaviorTestReconciler.INFORMER_RELATED_BEHAVIOR_TEST_RECONCILER;
 import static org.assertj.core.api.Assertions.assertThat;
@@ -46,7 +48,8 @@
  * The test ends with "ITS" (Special) since it needs to run separately from other ITs
  * </p>
  */
-@EnableKubeAPIServer(apiServerFlags = {"--min-request-timeout", "1"}, updateKubeConfigFile = true)
+// @EnableKubeAPIServer(apiServerFlags = {"--min-request-timeout", "1"}, updateKubeConfigFile =
+// true)
 class InformerRelatedBehaviorITS {
 
   private static final Logger log = LoggerFactory.getLogger(InformerRelatedBehaviorITS.class);
@@ -54,15 +57,21 @@ class InformerRelatedBehaviorITS {
   public static final String TEST_RESOURCE_NAME = "test1";
   public static final String ADDITIONAL_NAMESPACE_SUFFIX = "-additional";
 
-  KubernetesClient adminClient = new KubernetesClientBuilder().build();
+  KubernetesClient adminClient;
   InformerRelatedBehaviorTestReconciler reconciler;
   String actualNamespace;
   String additionalNamespace;
   Operator operator;
+  ApiServerContainer<?> apiServerContainer = new ApiServerContainer<>();
   volatile boolean replacementStopHandlerCalled = false;
 
   @BeforeEach
   void beforeEach(TestInfo testInfo) {
+    apiServerContainer.start();
+
+    adminClient = new KubernetesClientBuilder()
+        .withConfig(Config.fromKubeconfig(apiServerContainer.getKubeconfig()))
+        .build();
     LocallyRunOperatorExtension.applyCrd(InformerRelatedBehaviorTestCustomResource.class,
         adminClient);
     testInfo.getTestMethod().ifPresent(method -> {
@@ -81,6 +90,7 @@ void cleanup() {
     }
     adminClient.resource(dependentConfigMap()).delete();
     adminClient.resource(testCustomResource()).delete();
+    apiServerContainer.stop();
   }
 
   @Test
@@ -299,13 +309,12 @@ private void assertRuntimeInfoForSecondaryPermission(Operator operator) {
   }
 
   KubernetesClient clientUsingServiceAccount() {
-    KubernetesClient client = new KubernetesClientBuilder()
-        .withConfig(new ConfigBuilder()
+    return new KubernetesClientBuilder()
+        .withConfig(new ConfigBuilder(Config.fromKubeconfig(apiServerContainer.getKubeconfig()))
             .withImpersonateUsername("rbac-test-user")
             .withNamespace(actualNamespace)
             .build())
         .build();
-    return client;
   }
 
   Operator startOperator(boolean stopOnInformerErrorDuringStartup) {