diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java index 354e2b49e4..c86c3f95b6 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java @@ -25,7 +25,7 @@ import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter; import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; @SuppressWarnings("rawtypes") public class AnnotationControllerConfiguration @@ -75,7 +75,7 @@ public boolean isGenerationAware() { @Override public Set getNamespaces() { return Set.of(valueOrDefault(annotation, ControllerConfiguration::namespaces, - DEFAULT_NAMESPACES.toArray(String[]::new))); + DEFAULT_NAMESPACES_SET.toArray(String[]::new))); } @Override diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java index 70a901d68e..36e0dab3a1 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java @@ -14,7 +14,7 @@ import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig; import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_CURRENT_NAMESPACE_SET; @SuppressWarnings({"rawtypes", "unused"}) @@ -68,7 +68,7 @@ public ControllerConfigurationOverrider addingNamespaces(String... namespaces public ControllerConfigurationOverrider removingNamespaces(String... namespaces) { List.of(namespaces).forEach(this.namespaces::remove); if (this.namespaces.isEmpty()) { - this.namespaces = DEFAULT_NAMESPACES; + this.namespaces = DEFAULT_NAMESPACES_SET; } return this; } @@ -80,7 +80,7 @@ public ControllerConfigurationOverrider settingNamespace(String namespace) { } public ControllerConfigurationOverrider watchingAllNamespaces() { - this.namespaces = DEFAULT_NAMESPACES; + this.namespaces = DEFAULT_NAMESPACES_SET; return this; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultResourceConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultResourceConfiguration.java index 6a3737ae48..407c352be0 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultResourceConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultResourceConfiguration.java @@ -4,7 +4,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; public class DefaultResourceConfiguration implements ResourceConfiguration { @@ -16,7 +16,7 @@ public class DefaultResourceConfiguration public DefaultResourceConfiguration(String labelSelector, Class resourceClass, String... namespaces) { this(labelSelector, resourceClass, - namespaces == null || namespaces.length == 0 ? DEFAULT_NAMESPACES + namespaces == null || namespaces.length == 0 ? DEFAULT_NAMESPACES_SET : Set.of(namespaces)); } @@ -25,7 +25,7 @@ public DefaultResourceConfiguration(String labelSelector, Class resourceClass this.labelSelector = labelSelector; this.resourceClass = resourceClass; this.namespaces = - namespaces == null || namespaces.isEmpty() ? DEFAULT_NAMESPACES + namespaces == null || namespaces.isEmpty() ? DEFAULT_NAMESPACES_SET : namespaces; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/NamespaceChangeable.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/NamespaceChangeable.java index 5630604cd9..4e3cb19ed9 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/NamespaceChangeable.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/NamespaceChangeable.java @@ -2,7 +2,7 @@ import java.util.Set; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; public interface NamespaceChangeable { @@ -18,7 +18,7 @@ public interface NamespaceChangeable { default void changeNamespaces(String... namespaces) { changeNamespaces( - namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES); + namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES_SET); } default boolean allowsNamespaceChanges() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java index 8026946bb6..ca59e738d8 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java @@ -8,7 +8,7 @@ import io.javaoperatorsdk.operator.ReconcilerUtils; import io.javaoperatorsdk.operator.api.reconciler.Constants; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_CURRENT_NAMESPACE_SET; public interface ResourceConfiguration { @@ -35,7 +35,7 @@ default Class getResourceClass() { } default Set getNamespaces() { - return DEFAULT_NAMESPACES; + return DEFAULT_NAMESPACES_SET; } default boolean watchAllNamespaces() { @@ -44,7 +44,7 @@ default boolean watchAllNamespaces() { static boolean allNamespacesWatched(Set namespaces) { failIfNotValid(namespaces); - return DEFAULT_NAMESPACES.equals(namespaces); + return DEFAULT_NAMESPACES_SET.equals(namespaces); } default boolean watchCurrentNamespace() { diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java index b6c7fcfb89..2fc74aa010 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java @@ -10,7 +10,7 @@ import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; import io.javaoperatorsdk.operator.processing.event.source.informer.Mappers; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; public interface InformerConfiguration extends ResourceConfiguration { @@ -73,7 +73,7 @@ public InformerConfigurationBuilder withSecondaryToPrimaryMapper( public InformerConfigurationBuilder withNamespaces(String... namespaces) { return withNamespaces( - namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES); + namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES_SET); } public InformerConfigurationBuilder withNamespaces(Set namespaces) { @@ -92,7 +92,7 @@ public InformerConfigurationBuilder withNamespaces(Set namespaces) { */ public InformerConfigurationBuilder withNamespaces(Set namespaces, boolean followChanges) { - this.namespaces = namespaces != null ? namespaces : DEFAULT_NAMESPACES; + this.namespaces = namespaces != null ? namespaces : DEFAULT_NAMESPACES_SET; this.inheritControllerNamespacesOnChange = true; return this; } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Constants.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Constants.java index da9c117992..68b88b4455 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Constants.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Constants.java @@ -5,15 +5,19 @@ public final class Constants { - public static final Set DEFAULT_NAMESPACES = + public static final Set DEFAULT_NAMESPACES_SET = Collections.singleton(Constants.WATCH_ALL_NAMESPACES); public static final Set WATCH_CURRENT_NAMESPACE_SET = Collections.singleton(Constants.WATCH_CURRENT_NAMESPACE); + public static final Set SAME_AS_CONTROLLER_NAMESPACES_SET = + Collections.singleton(Constants.SAME_AS_CONTROLLER); + public static final String NO_VALUE_SET = ""; public static final String WATCH_CURRENT_NAMESPACE = "JOSDK_WATCH_CURRENT"; public static final String WATCH_ALL_NAMESPACES = "JOSDK_ALL_NAMESPACES"; public static final long NO_RECONCILIATION_MAX_INTERVAL = -1L; + public static final String SAME_AS_CONTROLLER = "JOSDK_SAME_AS_CONTROLLER"; private Constants() {} } diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java index bda5dcb1dd..fc33975532 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependent.java @@ -5,14 +5,15 @@ import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; +import io.javaoperatorsdk.operator.api.reconciler.Constants; + import static io.javaoperatorsdk.operator.api.reconciler.Constants.NO_VALUE_SET; @Retention(RetentionPolicy.RUNTIME) @Target({ElementType.TYPE}) public @interface KubernetesDependent { - String SAME_AS_CONTROLLER = "JOSDK_SAME_AS_CONTROLLER"; - String[] DEFAULT_NAMESPACES = {SAME_AS_CONTROLLER}; + String[] DEFAULT_NAMESPACES = {Constants.SAME_AS_CONTROLLER}; /** * Specified which namespaces this Controller monitors for custom resources events. If no @@ -21,7 +22,7 @@ * * @return the list of namespaces this controller monitors */ - String[] namespaces() default {SAME_AS_CONTROLLER}; + String[] namespaces() default {Constants.SAME_AS_CONTROLLER}; /** * Optional label selector used to identify the set of custom resources the controller will acc diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java index 5f325bbfcc..8cc8e12164 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResourceConfig.java @@ -1,13 +1,14 @@ package io.javaoperatorsdk.operator.processing.dependent.kubernetes; -import java.util.Collections; import java.util.Set; +import io.javaoperatorsdk.operator.api.reconciler.Constants; + import static io.javaoperatorsdk.operator.api.reconciler.Constants.NO_VALUE_SET; public class KubernetesDependentResourceConfig { - private Set namespaces = Collections.emptySet(); + private Set namespaces = Constants.SAME_AS_CONTROLLER_NAMESPACES_SET; private String labelSelector = NO_VALUE_SET; private boolean namespacesWereConfigured = false; diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/MockControllerConfiguration.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/MockControllerConfiguration.java index caa02a7511..0e3fc5df22 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/MockControllerConfiguration.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/MockControllerConfiguration.java @@ -2,7 +2,7 @@ import io.fabric8.kubernetes.api.model.HasMetadata; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; import static org.mockito.Mockito.mock; import static org.mockito.Mockito.when; @@ -12,7 +12,7 @@ public static ControllerConfiguration forResource( Class resourceType) { final ControllerConfiguration configuration = mock(ControllerConfiguration.class); when(configuration.getResourceClass()).thenReturn(resourceType); - when(configuration.getNamespaces()).thenReturn(DEFAULT_NAMESPACES); + when(configuration.getNamespaces()).thenReturn(DEFAULT_NAMESPACES_SET); when(configuration.getEffectiveNamespaces()).thenCallRealMethod(); return configuration; } diff --git a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java index b7e379ccf6..173379f802 100644 --- a/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java +++ b/operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java @@ -20,7 +20,7 @@ import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper; import io.javaoperatorsdk.operator.sample.simple.TestCustomResource; -import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES; +import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES_SET; import static org.mockito.ArgumentMatchers.any; import static org.mockito.Mockito.*; @@ -55,7 +55,7 @@ void setup() { when(informer.getIndexer()).thenReturn(mock(Indexer.class)); when(informerConfiguration.getEffectiveNamespaces()) - .thenReturn(DEFAULT_NAMESPACES); + .thenReturn(DEFAULT_NAMESPACES_SET); when(informerConfiguration.getSecondaryToPrimaryMapper()) .thenReturn(mock(SecondaryToPrimaryMapper.class));