diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java
index c9b60d2617..e2251eea64 100644
--- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java
+++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationServiceOverrider.java
@@ -1,6 +1,7 @@
 package io.javaoperatorsdk.operator.api.config;
 
 import java.util.Set;
+import java.util.concurrent.ExecutorService;
 
 import io.fabric8.kubernetes.api.model.HasMetadata;
 import io.fabric8.kubernetes.client.Config;
@@ -16,6 +17,7 @@ public class ConfigurationServiceOverrider {
   private Cloner cloner;
   private int timeoutSeconds;
   private boolean closeClientOnStop;
+  private ExecutorService executorService = null;
 
   public ConfigurationServiceOverrider(
       ConfigurationService original) {
@@ -65,6 +67,11 @@ public ConfigurationServiceOverrider withCloseClientOnStop(boolean close) {
     return this;
   }
 
+  public ConfigurationServiceOverrider withExecutorService(ExecutorService executorService) {
+    this.executorService = executorService;
+    return this;
+  }
+
   public ConfigurationService build() {
     return new ConfigurationService() {
       @Override
@@ -120,6 +127,15 @@ public Metrics getMetrics() {
       public boolean closeClientOnStop() {
         return closeClientOnStop;
       }
+
+      @Override
+      public ExecutorService getExecutorService() {
+        if (executorService != null) {
+          return executorService;
+        } else {
+          return ConfigurationService.super.getExecutorService();
+        }
+      }
     };
   }
 
diff --git a/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java b/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java
index 2cc212340b..19d0a471b7 100644
--- a/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java
+++ b/smoke-test-samples/pure-java/src/main/java/io/javaoperatorsdk/operator/sample/PureJavaApplicationRunner.java
@@ -1,5 +1,7 @@
 package io.javaoperatorsdk.operator.sample;
 
+import java.util.concurrent.Executors;
+
 import io.javaoperatorsdk.operator.Operator;
 import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider;
 import io.javaoperatorsdk.operator.config.runtime.DefaultConfigurationService;
@@ -8,9 +10,11 @@ public class PureJavaApplicationRunner {
 
   public static void main(String[] args) {
     Operator operator =
-        new Operator(ConfigurationServiceOverrider.override(DefaultConfigurationService.instance())
-            .withConcurrentReconciliationThreads(2)
-            .build());
+        new Operator(
+            ConfigurationServiceOverrider.override(DefaultConfigurationService.instance())
+                .withExecutorService(Executors.newCachedThreadPool())
+                .withConcurrentReconciliationThreads(2)
+                .build());
     operator.register(new CustomServiceReconciler());
     operator.start();
   }