From 4d91949b53e93fcdbfb3abba190ba62460cda3c8 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Tue, 20 Jun 2023 23:13:32 +0200 Subject: [PATCH] fix: we need the constructor that takes a ConfigurationService for QOSDK --- .../io/javaoperatorsdk/operator/Operator.java | 48 ++++++++++++------- 1 file changed, 31 insertions(+), 17 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java index d684124fb2..2381d46701 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java @@ -24,7 +24,6 @@ public class Operator implements LifecycleAware { private static final Logger log = LoggerFactory.getLogger(Operator.class); - private final KubernetesClient kubernetesClient; private final ControllerManager controllerManager; private final LeaderElectionManager leaderElectionManager; private final ConfigurationService configurationService; @@ -40,15 +39,29 @@ public Operator() { } /** - * @param configurationService implementation - * @deprecated Use {@link #Operator(Consumer)} instead + * Creates an Operator based on the configuration provided by the specified + * {@link ConfigurationService}. If you intend to use different values than the default, you use + * {@link Operator#Operator(Consumer)} instead to override the default with your intended setup. + * + * @param configurationService a {@link ConfigurationService} providing the configuration for the + * operator */ - @Deprecated(forRemoval = true) - @SuppressWarnings("unused") public Operator(ConfigurationService configurationService) { - this(null, null); + this.configurationService = configurationService; + + final var executorServiceManager = configurationService.getExecutorServiceManager(); + controllerManager = new ControllerManager(executorServiceManager); + + leaderElectionManager = new LeaderElectionManager(controllerManager, configurationService); } + /** + * Creates an Operator overriding the default configuration with the values provided by the + * specified {@link ConfigurationServiceOverrider}. + * + * @param overrider a {@link ConfigurationServiceOverrider} consumer used to override the default + * {@link ConfigurationService} values + */ public Operator(Consumer overrider) { this(null, overrider); } @@ -65,26 +78,27 @@ public Operator(Consumer overrider) { */ @Deprecated public Operator(KubernetesClient client, Consumer overrider) { + this(initConfigurationService(client, overrider)); + } + + private static ConfigurationService initConfigurationService(KubernetesClient client, + Consumer overrider) { // initialize the client if the user didn't provide one if (client == null) { var configurationService = ConfigurationService.newOverriddenConfigurationService(overrider); client = configurationService.getKubernetesClient(); } - this.kubernetesClient = client; + final var kubernetesClient = client; // override the configuration service to use the same client if (overrider != null) { - overrider = overrider.andThen(o -> o.withKubernetesClient(this.kubernetesClient)); + overrider = overrider.andThen(o -> o.withKubernetesClient(kubernetesClient)); } else { - overrider = o -> o.withKubernetesClient(this.kubernetesClient); + overrider = o -> o.withKubernetesClient(kubernetesClient); } - this.configurationService = ConfigurationService.newOverriddenConfigurationService(overrider); - final var executorServiceManager = configurationService.getExecutorServiceManager(); - controllerManager = new ControllerManager(executorServiceManager); - - leaderElectionManager = new LeaderElectionManager(controllerManager, configurationService); + return ConfigurationService.newOverriddenConfigurationService(overrider); } /** @@ -118,7 +132,7 @@ public void installShutdownHook(Duration gracefulShutdownTimeout) { } public KubernetesClient getKubernetesClient() { - return kubernetesClient; + return configurationService.getKubernetesClient(); } /** @@ -167,7 +181,7 @@ public void stop(Duration gracefulShutdownTimeout) throws OperatorException { configurationService.getExecutorServiceManager().stop(gracefulShutdownTimeout); leaderElectionManager.stop(); if (configurationService.closeClientOnStop()) { - kubernetesClient.close(); + getKubernetesClient().close(); } started = false; @@ -222,7 +236,7 @@ public

RegisteredController

register(Reconciler

re + configurationService.getKnownReconcilerNames()); } - final var controller = new Controller<>(reconciler, configuration, kubernetesClient); + final var controller = new Controller<>(reconciler, configuration, getKubernetesClient()); controllerManager.add(controller);