From 40538a5652c3e6d554402a91accc6be5715a7929 Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 25 Jul 2022 16:03:18 +0200 Subject: [PATCH 1/4] feat: separate executor service for workflow --- .../dependent/workflow/builder/WorkflowBuilder.java | 5 +++-- .../operator/processing/event/EventProcessor.java | 4 ++-- .../io/javaoperatorsdk/operator/sample/WebPageOperator.java | 2 ++ sample-operators/webpage/src/main/resources/log4j2.xml | 2 +- 4 files changed, 8 insertions(+), 5 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java index e60b26db97..c58c7ccbb0 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java @@ -7,6 +7,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata; import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider; +import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager; import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource; import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition; import io.javaoperatorsdk.operator.processing.dependent.workflow.DependentResourceNode; @@ -75,8 +76,8 @@ public WorkflowBuilder

withThrowExceptionFurther(boolean throwExceptionFurthe } public Workflow

build() { - return new Workflow(dependentResourceNodes, - ConfigurationServiceProvider.instance().getExecutorService(), throwExceptionAutomatically); + return new Workflow( + dependentResourceNodes, ExecutorServiceManager.instance().executorService(), throwExceptionAutomatically); } public Workflow

build(int parallelism) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java index e46878f927..d9192e9a7b 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java @@ -390,13 +390,13 @@ public void run() { final var name = thread.getName(); try { MDCUtils.addResourceInfo(executionScope.getResource()); - thread.setName("EventHandler-" + controllerName); +// thread.setName("EventHandler-" + controllerName); PostExecutionControl postExecutionControl = reconciliationDispatcher.handleExecution(executionScope); eventProcessingFinished(executionScope, postExecutionControl); } finally { // restore original name - thread.setName(name); +// thread.setName(name); MDCUtils.removeResourceInfo(); } } diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java index 9b137649fc..408dfe6158 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java @@ -1,7 +1,9 @@ package io.javaoperatorsdk.operator.sample; import java.io.IOException; +import java.util.function.Consumer; +import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.takes.facets.fork.FkRegex; diff --git a/sample-operators/webpage/src/main/resources/log4j2.xml b/sample-operators/webpage/src/main/resources/log4j2.xml index 5b794e7de3..2ce4ba07f3 100644 --- a/sample-operators/webpage/src/main/resources/log4j2.xml +++ b/sample-operators/webpage/src/main/resources/log4j2.xml @@ -2,7 +2,7 @@ - + From 2b7e625a33746d854189a9e6a0b52b45e6b0b649 Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 25 Jul 2022 16:06:17 +0200 Subject: [PATCH 2/4] thread naming --- .../operator/processing/event/EventProcessor.java | 10 +++++----- ...ollerExecutionIT.java => ReconcilerExecutorIT.java} | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) rename operator-framework/src/test/java/io/javaoperatorsdk/operator/{ControllerExecutionIT.java => ReconcilerExecutorIT.java} (99%) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java index d9192e9a7b..07bffb2aa3 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java @@ -160,7 +160,7 @@ private void submitReconciliationExecution(ResourceState state) { state.unMarkEventReceived(); metrics.reconcileCustomResource(state.getId(), state.getRetry(), metricsMetadata); log.debug("Executing events for custom resource. Scope: {}", executionScope); - executor.execute(new ControllerExecution(executionScope)); + executor.execute(new ReconcilerExecutor(executionScope)); } else { log.debug( "Skipping executing controller for resource id: {}. Controller in execution: {}. Latest Resource present: {}", @@ -376,10 +376,10 @@ private void handleAlreadyMarkedEvents() { } } - private class ControllerExecution implements Runnable { + private class ReconcilerExecutor implements Runnable { private final ExecutionScope executionScope; - private ControllerExecution(ExecutionScope executionScope) { + private ReconcilerExecutor(ExecutionScope executionScope) { this.executionScope = executionScope; } @@ -390,13 +390,13 @@ public void run() { final var name = thread.getName(); try { MDCUtils.addResourceInfo(executionScope.getResource()); -// thread.setName("EventHandler-" + controllerName); + thread.setName("ReconcilerExecutor-" + controllerName+"-"+thread.getId()); PostExecutionControl postExecutionControl = reconciliationDispatcher.handleExecution(executionScope); eventProcessingFinished(executionScope, postExecutionControl); } finally { // restore original name -// thread.setName(name); + thread.setName(name); MDCUtils.removeResourceInfo(); } } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ControllerExecutionIT.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java similarity index 99% rename from operator-framework/src/test/java/io/javaoperatorsdk/operator/ControllerExecutionIT.java rename to operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java index 31eabc0292..07a022adb1 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/ControllerExecutionIT.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/ReconcilerExecutorIT.java @@ -15,7 +15,7 @@ import static org.assertj.core.api.Assertions.assertThat; import static org.awaitility.Awaitility.await; -class ControllerExecutionIT { +class ReconcilerExecutorIT { @RegisterExtension LocallyRunOperatorExtension operator = From cb5c7138705fd604778293c37d2ce02e11bedd20 Mon Sep 17 00:00:00 2001 From: csviri Date: Mon, 25 Jul 2022 16:21:14 +0200 Subject: [PATCH 3/4] fix: format --- .../dependent/workflow/builder/WorkflowBuilder.java | 4 ++-- .../operator/processing/event/EventProcessor.java | 2 +- .../io/javaoperatorsdk/operator/sample/WebPageOperator.java | 2 -- 3 files changed, 3 insertions(+), 5 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java index c58c7ccbb0..bda1006bb2 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java @@ -6,7 +6,6 @@ import java.util.concurrent.ExecutorService; import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider; import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager; import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource; import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition; @@ -77,7 +76,8 @@ public WorkflowBuilder

withThrowExceptionFurther(boolean throwExceptionFurthe public Workflow

build() { return new Workflow( - dependentResourceNodes, ExecutorServiceManager.instance().executorService(), throwExceptionAutomatically); + dependentResourceNodes, ExecutorServiceManager.instance().executorService(), + throwExceptionAutomatically); } public Workflow

build(int parallelism) { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java index 07bffb2aa3..df9d0f06fc 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/EventProcessor.java @@ -390,7 +390,7 @@ public void run() { final var name = thread.getName(); try { MDCUtils.addResourceInfo(executionScope.getResource()); - thread.setName("ReconcilerExecutor-" + controllerName+"-"+thread.getId()); + thread.setName("ReconcilerExecutor-" + controllerName + "-" + thread.getId()); PostExecutionControl postExecutionControl = reconciliationDispatcher.handleExecution(executionScope); eventProcessingFinished(executionScope, postExecutionControl); diff --git a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java index 408dfe6158..9b137649fc 100644 --- a/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java +++ b/sample-operators/webpage/src/main/java/io/javaoperatorsdk/operator/sample/WebPageOperator.java @@ -1,9 +1,7 @@ package io.javaoperatorsdk.operator.sample; import java.io.IOException; -import java.util.function.Consumer; -import io.javaoperatorsdk.operator.api.config.ConfigurationServiceOverrider; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.takes.facets.fork.FkRegex; From ff2005c289917bee4e45c117c4545d8b757dd4da Mon Sep 17 00:00:00 2001 From: csviri Date: Fri, 26 Aug 2022 10:58:56 +0200 Subject: [PATCH 4/4] fix: naming fixes --- .../dependent/workflow/builder/WorkflowBuilder.java | 7 +++---- sample-operators/webpage/src/main/resources/log4j2.xml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java index bda1006bb2..e60b26db97 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/workflow/builder/WorkflowBuilder.java @@ -6,7 +6,7 @@ import java.util.concurrent.ExecutorService; import io.fabric8.kubernetes.api.model.HasMetadata; -import io.javaoperatorsdk.operator.api.config.ExecutorServiceManager; +import io.javaoperatorsdk.operator.api.config.ConfigurationServiceProvider; import io.javaoperatorsdk.operator.api.reconciler.dependent.DependentResource; import io.javaoperatorsdk.operator.processing.dependent.workflow.Condition; import io.javaoperatorsdk.operator.processing.dependent.workflow.DependentResourceNode; @@ -75,9 +75,8 @@ public WorkflowBuilder

withThrowExceptionFurther(boolean throwExceptionFurthe } public Workflow

build() { - return new Workflow( - dependentResourceNodes, ExecutorServiceManager.instance().executorService(), - throwExceptionAutomatically); + return new Workflow(dependentResourceNodes, + ConfigurationServiceProvider.instance().getExecutorService(), throwExceptionAutomatically); } public Workflow

build(int parallelism) { diff --git a/sample-operators/webpage/src/main/resources/log4j2.xml b/sample-operators/webpage/src/main/resources/log4j2.xml index 2ce4ba07f3..5b794e7de3 100644 --- a/sample-operators/webpage/src/main/resources/log4j2.xml +++ b/sample-operators/webpage/src/main/resources/log4j2.xml @@ -2,7 +2,7 @@ - +