From b75ff274745ba515de3685dd8e7b48d44fbe95ff Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Fri, 8 Aug 2025 17:05:47 +0200 Subject: [PATCH 1/3] fix: do not output warning when resolving a configuration Signed-off-by: Chris Laprun --- .../api/config/BaseConfigurationService.java | 23 +++++++++++++++---- .../config/BaseConfigurationServiceTest.java | 7 ++++++ 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java index 438f7d91a9..891f199dbe 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/BaseConfigurationService.java @@ -30,6 +30,12 @@ import static io.javaoperatorsdk.operator.api.config.ControllerConfiguration.CONTROLLER_NAME_AS_FIELD_MANAGER; +/** + * A default {@link ConfigurationService} implementation, resolving {@link Reconciler}s + * configuration when it has already been resolved before. If this behavior is not adequate, please + * use {@link AbstractConfigurationService} instead as a base for your {@code ConfigurationService} + * implementation. + */ public class BaseConfigurationService extends AbstractConfigurationService { private static final String LOGGER_NAME = "Default ConfigurationService implementation"; @@ -149,10 +155,12 @@ private static void configureFromAnnotatedReconciler( @Override protected void logMissingReconcilerWarning(String reconcilerKey, String reconcilersNameMessage) { - logger.warn( - "Configuration for reconciler '{}' was not found. {}", - reconcilerKey, - reconcilersNameMessage); + if (!createIfNeeded()) { + logger.warn( + "Configuration for reconciler '{}' was not found. {}", + reconcilerKey, + reconcilersNameMessage); + } } @SuppressWarnings("unused") @@ -318,6 +326,13 @@ private

ResolvedControllerConfiguration

controllerCon informerConfig); } + /** + * @deprecated This method was meant to allow subclasses to prevent automatic creation of the + * configuration when not found. This functionality is now removed, if you want to be able to + * prevent automated, on-demand creation of a reconciler's configuration, please use the + * {@link AbstractConfigurationService} implementation instead as base for your extension. + */ + @Deprecated(forRemoval = true) protected boolean createIfNeeded() { return true; } diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java index 25926e6405..452f4a3aea 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java @@ -81,6 +81,13 @@ private static KubernetesDependentResourceConfig extractDependentKubernetesResou return (KubernetesDependentResourceConfig) configuration.getConfigurationFor(spec); } + @Test + void test() { + final var service = new BaseConfigurationService(); + final var config = service.getConfigurationFor(new NoDepReconciler()); + System.out.println(config); + } + @Test @SuppressWarnings({"rawtypes", "unchecked"}) void getDependentResources() { From b4186cdbf7d6e2bb7e53c33e5551f4fb5c9afb76 Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Mon, 11 Aug 2025 16:05:31 +0200 Subject: [PATCH 2/3] fix: remove test code that shouldn't have been included Signed-off-by: Chris Laprun --- .../operator/config/BaseConfigurationServiceTest.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java index 452f4a3aea..25926e6405 100644 --- a/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java +++ b/operator-framework/src/test/java/io/javaoperatorsdk/operator/config/BaseConfigurationServiceTest.java @@ -81,13 +81,6 @@ private static KubernetesDependentResourceConfig extractDependentKubernetesResou return (KubernetesDependentResourceConfig) configuration.getConfigurationFor(spec); } - @Test - void test() { - final var service = new BaseConfigurationService(); - final var config = service.getConfigurationFor(new NoDepReconciler()); - System.out.println(config); - } - @Test @SuppressWarnings({"rawtypes", "unchecked"}) void getDependentResources() { From 5e13db1c2bf0ec113125ed009554df4a3e2c961b Mon Sep 17 00:00:00 2001 From: Chris Laprun Date: Wed, 13 Aug 2025 17:46:03 +0200 Subject: [PATCH 3/3] fix: remove duplicated line [skip-ci] Signed-off-by: Chris Laprun --- .../operator/api/config/ConfigurationService.java | 1 - 1 file changed, 1 deletion(-) diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java index 864b65c3f7..41134e64ac 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ConfigurationService.java @@ -485,7 +485,6 @@ default Set> withPreviousAnnotationForDependentReso * * @return if resource version should be parsed (as integer) * @since 4.5.0 - * @return if resource version should be parsed (as integer) */ default boolean parseResourceVersionsForEventFilteringAndCaching() { return false;