feat: introduce getEffectiveNamespaces on ControllerConfiguration · java-tools/java-operator-sdk@771cd5f · GitHub
Skip to content

Commit 771cd5f

Browse files
committed
feat: introduce getEffectiveNamespaces on ControllerConfiguration
1 parent 9a0d987 commit 771cd5f

4 files changed

Lines changed: 21 additions & 29 deletions

File tree

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/Operator.java‎

Lines changed: 1 addition & 2 deletions

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,15 @@ static boolean currentNamespaceWatched(Set<String> namespaces) {
4141
&& namespaces.contains(Controller.WATCH_CURRENT_NAMESPACE);
4242
}
4343

44+
default Set<String> getEffectiveNamespaces() {
45+
var targetNamespaces = getNamespaces();
46+
if (watchCurrentNamespace()) {
47+
targetNamespaces =
48+
Collections.singleton(getConfigurationService().getClientConfiguration().getNamespace());
49+
}
50+
return targetNamespaces;
51+
}
52+
4453
default RetryConfiguration getRetryConfiguration() {
4554
return RetryConfiguration.DEFAULT;
4655
}

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/DefaultEventSourceManager.java‎

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ public class DefaultEventSourceManager implements EventSourceManager {
2727
private final ReentrantLock lock = new ReentrantLock();
2828
private final Map<String, EventSource> eventSources = new ConcurrentHashMap<>();
2929
private final DefaultEventHandler defaultEventHandler;
30-
private String[] targetNamespaces;
3130
private TimerEventSource retryTimerEventSource;
3231

3332
DefaultEventSourceManager(DefaultEventHandler defaultEventHandler, boolean supportRetry) {
@@ -39,28 +38,16 @@ public class DefaultEventSourceManager implements EventSourceManager {
3938
}
4039
}
4140

42-
public String[] getTargetNamespaces() {
43-
return targetNamespaces;
44-
}
45-
4641
public <R extends CustomResource> DefaultEventSourceManager(
4742
ResourceController<R> controller,
4843
ControllerConfiguration<R> configuration,
4944
MixedOperation<R, KubernetesResourceList<R>, Resource<R>> client) {
5045
this(new DefaultEventHandler(controller, configuration, client), true);
51-
// check if we only want to watch the current namespace
52-
targetNamespaces = configuration.getNamespaces().toArray(new String[] {});
53-
if (configuration.watchCurrentNamespace()) {
54-
targetNamespaces =
55-
new String[] {
56-
configuration.getConfigurationService().getClientConfiguration().getNamespace()
57-
};
58-
}
5946
registerEventSource(
6047
CUSTOM_RESOURCE_EVENT_SOURCE_NAME,
6148
new CustomResourceEventSource(
6249
client,
63-
targetNamespaces,
50+
configuration.getEffectiveNamespaces(),
6451
configuration.isGenerationAware(),
6552
configuration.getFinalizer(),
6653
configuration.getCustomResourceClass()));

‎operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/event/internal/CustomResourceEventSource.java‎

Lines changed: 10 additions & 13 deletions

0 commit comments

Comments
 (0)