Skip to content

Commit 90a6482

Browse files
authored
refactor: move watch all and default namespace constants (#1194)
1 parent ef2c5f7 commit 90a6482

File tree

9 files changed

+36
-16
lines changed

9 files changed

+36
-16
lines changed

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/AnnotationControllerConfiguration.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,8 @@
2525
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
2626
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilters;
2727

28+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
29+
2830
@SuppressWarnings("rawtypes")
2931
public class AnnotationControllerConfiguration<R extends HasMetadata>
3032
implements io.javaoperatorsdk.operator.api.config.ControllerConfiguration<R> {
@@ -73,7 +75,7 @@ public boolean isGenerationAware() {
7375
@Override
7476
public Set<String> getNamespaces() {
7577
return Set.of(valueOrDefault(annotation, ControllerConfiguration::namespaces,
76-
new String[] {Constants.WATCH_ALL_NAMESPACES}));
78+
DEFAULT_NAMESPACES.toArray(String[]::new)));
7779
}
7880

7981
@Override

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ControllerConfigurationOverrider.java

+6-3
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,9 @@
1414
import io.javaoperatorsdk.operator.processing.dependent.kubernetes.KubernetesDependentResourceConfig;
1515
import io.javaoperatorsdk.operator.processing.event.source.controller.ResourceEventFilter;
1616

17+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
18+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_CURRENT_NAMESPACE_SET;
19+
1720
@SuppressWarnings({"rawtypes", "unused"})
1821
public class ControllerConfigurationOverrider<R extends HasMetadata> {
1922

@@ -53,7 +56,7 @@ public ControllerConfigurationOverrider<R> withGenerationAware(boolean generatio
5356
}
5457

5558
public ControllerConfigurationOverrider<R> watchingOnlyCurrentNamespace() {
56-
this.namespaces = ResourceConfiguration.CURRENT_NAMESPACE_ONLY;
59+
this.namespaces = WATCH_CURRENT_NAMESPACE_SET;
5760
return this;
5861
}
5962

@@ -65,7 +68,7 @@ public ControllerConfigurationOverrider<R> addingNamespaces(String... namespaces
6568
public ControllerConfigurationOverrider<R> removingNamespaces(String... namespaces) {
6669
List.of(namespaces).forEach(this.namespaces::remove);
6770
if (this.namespaces.isEmpty()) {
68-
this.namespaces = ResourceConfiguration.DEFAULT_NAMESPACES;
71+
this.namespaces = DEFAULT_NAMESPACES;
6972
}
7073
return this;
7174
}
@@ -77,7 +80,7 @@ public ControllerConfigurationOverrider<R> settingNamespace(String namespace) {
7780
}
7881

7982
public ControllerConfigurationOverrider<R> watchingAllNamespaces() {
80-
this.namespaces = ResourceConfiguration.DEFAULT_NAMESPACES;
83+
this.namespaces = DEFAULT_NAMESPACES;
8184
return this;
8285
}
8386

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/DefaultResourceConfiguration.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
import io.fabric8.kubernetes.api.model.HasMetadata;
66

7+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
8+
79
public class DefaultResourceConfiguration<R extends HasMetadata>
810
implements ResourceConfiguration<R> {
911

@@ -14,7 +16,7 @@ public class DefaultResourceConfiguration<R extends HasMetadata>
1416
public DefaultResourceConfiguration(String labelSelector, Class<R> resourceClass,
1517
String... namespaces) {
1618
this(labelSelector, resourceClass,
17-
namespaces == null || namespaces.length == 0 ? ResourceConfiguration.DEFAULT_NAMESPACES
19+
namespaces == null || namespaces.length == 0 ? DEFAULT_NAMESPACES
1820
: Set.of(namespaces));
1921
}
2022

@@ -23,7 +25,7 @@ public DefaultResourceConfiguration(String labelSelector, Class<R> resourceClass
2325
this.labelSelector = labelSelector;
2426
this.resourceClass = resourceClass;
2527
this.namespaces =
26-
namespaces == null || namespaces.isEmpty() ? ResourceConfiguration.DEFAULT_NAMESPACES
28+
namespaces == null || namespaces.isEmpty() ? DEFAULT_NAMESPACES
2729
: namespaces;
2830
}
2931

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/NamespaceChangeable.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
import java.util.Set;
44

5+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
6+
57
public interface NamespaceChangeable {
68

79
/**
@@ -16,7 +18,7 @@ public interface NamespaceChangeable {
1618

1719
default void changeNamespaces(String... namespaces) {
1820
changeNamespaces(
19-
namespaces != null ? Set.of(namespaces) : ResourceConfiguration.DEFAULT_NAMESPACES);
21+
namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES);
2022
}
2123

2224
default boolean allowsNamespaceChanges() {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/ResourceConfiguration.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -8,10 +8,10 @@
88
import io.javaoperatorsdk.operator.ReconcilerUtils;
99
import io.javaoperatorsdk.operator.api.reconciler.Constants;
1010

11-
public interface ResourceConfiguration<R extends HasMetadata> {
11+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
12+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.WATCH_CURRENT_NAMESPACE_SET;
1213

13-
Set<String> DEFAULT_NAMESPACES = Collections.singleton(Constants.WATCH_ALL_NAMESPACES);
14-
Set<String> CURRENT_NAMESPACE_ONLY = Collections.singleton(Constants.WATCH_CURRENT_NAMESPACE);
14+
public interface ResourceConfiguration<R extends HasMetadata> {
1515

1616
default String getResourceTypeName() {
1717
return ReconcilerUtils.getResourceTypeName(getResourceClass());
@@ -53,7 +53,7 @@ default boolean watchCurrentNamespace() {
5353

5454
static boolean currentNamespaceWatched(Set<String> namespaces) {
5555
failIfNotValid(namespaces);
56-
return CURRENT_NAMESPACE_ONLY.equals(namespaces);
56+
return WATCH_CURRENT_NAMESPACE_SET.equals(namespaces);
5757
}
5858

5959
static void failIfNotValid(Set<String> namespaces) {

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/config/informer/InformerConfiguration.java

+4-2
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper;
1111
import io.javaoperatorsdk.operator.processing.event.source.informer.Mappers;
1212

13+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
14+
1315
public interface InformerConfiguration<R extends HasMetadata>
1416
extends ResourceConfiguration<R> {
1517

@@ -71,7 +73,7 @@ public InformerConfigurationBuilder<R> withSecondaryToPrimaryMapper(
7173

7274
public InformerConfigurationBuilder<R> withNamespaces(String... namespaces) {
7375
return withNamespaces(
74-
namespaces != null ? Set.of(namespaces) : ResourceConfiguration.DEFAULT_NAMESPACES);
76+
namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES);
7577
}
7678

7779
public InformerConfigurationBuilder<R> withNamespaces(Set<String> namespaces) {
@@ -90,7 +92,7 @@ public InformerConfigurationBuilder<R> withNamespaces(Set<String> namespaces) {
9092
*/
9193
public InformerConfigurationBuilder<R> withNamespaces(Set<String> namespaces,
9294
boolean followChanges) {
93-
this.namespaces = namespaces != null ? namespaces : ResourceConfiguration.DEFAULT_NAMESPACES;
95+
this.namespaces = namespaces != null ? namespaces : DEFAULT_NAMESPACES;
9496
this.inheritControllerNamespacesOnChange = true;
9597
return this;
9698
}

operator-framework-core/src/main/java/io/javaoperatorsdk/operator/api/reconciler/Constants.java

+8
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,15 @@
11
package io.javaoperatorsdk.operator.api.reconciler;
22

3+
import java.util.Collections;
4+
import java.util.Set;
5+
36
public final class Constants {
47

8+
public static final Set<String> DEFAULT_NAMESPACES =
9+
Collections.singleton(Constants.WATCH_ALL_NAMESPACES);
10+
public static final Set<String> WATCH_CURRENT_NAMESPACE_SET =
11+
Collections.singleton(Constants.WATCH_CURRENT_NAMESPACE);
12+
513
public static final String NO_VALUE_SET = "";
614
public static final String WATCH_CURRENT_NAMESPACE = "JOSDK_WATCH_CURRENT";
715
public static final String WATCH_ALL_NAMESPACES = "JOSDK_ALL_NAMESPACES";

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/api/config/MockControllerConfiguration.java

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import io.fabric8.kubernetes.api.model.HasMetadata;
44

5+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
56
import static org.mockito.Mockito.mock;
67
import static org.mockito.Mockito.when;
78

@@ -11,7 +12,7 @@ public static <R extends HasMetadata> ControllerConfiguration<R> forResource(
1112
Class<R> resourceType) {
1213
final ControllerConfiguration configuration = mock(ControllerConfiguration.class);
1314
when(configuration.getResourceClass()).thenReturn(resourceType);
14-
when(configuration.getNamespaces()).thenReturn(ResourceConfiguration.DEFAULT_NAMESPACES);
15+
when(configuration.getNamespaces()).thenReturn(DEFAULT_NAMESPACES);
1516
when(configuration.getEffectiveNamespaces()).thenCallRealMethod();
1617
return configuration;
1718
}

operator-framework-core/src/test/java/io/javaoperatorsdk/operator/processing/event/source/informer/InformerEventSourceTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,13 @@
1414
import io.fabric8.kubernetes.client.dsl.MixedOperation;
1515
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
1616
import io.fabric8.kubernetes.client.informers.cache.Indexer;
17-
import io.javaoperatorsdk.operator.api.config.ResourceConfiguration;
1817
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
1918
import io.javaoperatorsdk.operator.processing.event.EventHandler;
2019
import io.javaoperatorsdk.operator.processing.event.ResourceID;
2120
import io.javaoperatorsdk.operator.processing.event.source.SecondaryToPrimaryMapper;
2221
import io.javaoperatorsdk.operator.sample.simple.TestCustomResource;
2322

23+
import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
2424
import static org.mockito.ArgumentMatchers.any;
2525
import static org.mockito.Mockito.*;
2626

@@ -55,7 +55,7 @@ void setup() {
5555
when(informer.getIndexer()).thenReturn(mock(Indexer.class));
5656

5757
when(informerConfiguration.getEffectiveNamespaces())
58-
.thenReturn(ResourceConfiguration.DEFAULT_NAMESPACES);
58+
.thenReturn(DEFAULT_NAMESPACES);
5959
when(informerConfiguration.getSecondaryToPrimaryMapper())
6060
.thenReturn(mock(SecondaryToPrimaryMapper.class));
6161

0 commit comments

Comments
 (0)