Skip to content

refactor: move watch all and default namespace constants #1194

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 2 commits into from
May 5, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,8 @@
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;

@SuppressWarnings("rawtypes")
public class AnnotationControllerConfiguration<R extends HasMetadata>
implements io.javaoperatorsdk.operator.api.config.ControllerConfiguration<R> {
Expand Down Expand Up @@ -73,7 +75,7 @@ public boolean isGenerationAware() {
@Override
public Set<String> getNamespaces() {
return Set.of(valueOrDefault(annotation, ControllerConfiguration::namespaces,
new String[] {Constants.WATCH_ALL_NAMESPACES}));
DEFAULT_NAMESPACES.toArray(String[]::new)));
}

@Override
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,9 @@
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.WATCH_CURRENT_NAMESPACE_SET;

@SuppressWarnings({"rawtypes", "unused"})
public class ControllerConfigurationOverrider<R extends HasMetadata> {

Expand Down Expand Up @@ -53,7 +56,7 @@ public ControllerConfigurationOverrider<R> withGenerationAware(boolean generatio
}

public ControllerConfigurationOverrider<R> watchingOnlyCurrentNamespace() {
this.namespaces = ResourceConfiguration.CURRENT_NAMESPACE_ONLY;
this.namespaces = WATCH_CURRENT_NAMESPACE_SET;
return this;
}

Expand All @@ -65,7 +68,7 @@ public ControllerConfigurationOverrider<R> addingNamespaces(String... namespaces
public ControllerConfigurationOverrider<R> removingNamespaces(String... namespaces) {
List.of(namespaces).forEach(this.namespaces::remove);
if (this.namespaces.isEmpty()) {
this.namespaces = ResourceConfiguration.DEFAULT_NAMESPACES;
this.namespaces = DEFAULT_NAMESPACES;
}
return this;
}
Expand All @@ -77,7 +80,7 @@ public ControllerConfigurationOverrider<R> settingNamespace(String namespace) {
}

public ControllerConfigurationOverrider<R> watchingAllNamespaces() {
this.namespaces = ResourceConfiguration.DEFAULT_NAMESPACES;
this.namespaces = DEFAULT_NAMESPACES;
return this;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@

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

import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;

public class DefaultResourceConfiguration<R extends HasMetadata>
implements ResourceConfiguration<R> {

Expand All @@ -14,7 +16,7 @@ public class DefaultResourceConfiguration<R extends HasMetadata>
public DefaultResourceConfiguration(String labelSelector, Class<R> resourceClass,
String... namespaces) {
this(labelSelector, resourceClass,
namespaces == null || namespaces.length == 0 ? ResourceConfiguration.DEFAULT_NAMESPACES
namespaces == null || namespaces.length == 0 ? DEFAULT_NAMESPACES
: Set.of(namespaces));
}

Expand All @@ -23,7 +25,7 @@ public DefaultResourceConfiguration(String labelSelector, Class<R> resourceClass
this.labelSelector = labelSelector;
this.resourceClass = resourceClass;
this.namespaces =
namespaces == null || namespaces.isEmpty() ? ResourceConfiguration.DEFAULT_NAMESPACES
namespaces == null || namespaces.isEmpty() ? DEFAULT_NAMESPACES
: namespaces;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import java.util.Set;

import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;

public interface NamespaceChangeable {

/**
Expand All @@ -16,7 +18,7 @@ public interface NamespaceChangeable {

default void changeNamespaces(String... namespaces) {
changeNamespaces(
namespaces != null ? Set.of(namespaces) : ResourceConfiguration.DEFAULT_NAMESPACES);
namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES);
}

default boolean allowsNamespaceChanges() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,10 +8,10 @@
import io.javaoperatorsdk.operator.ReconcilerUtils;
import io.javaoperatorsdk.operator.api.reconciler.Constants;

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

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

default String getResourceTypeName() {
return ReconcilerUtils.getResourceTypeName(getResourceClass());
Expand Down Expand Up @@ -53,7 +53,7 @@ default boolean watchCurrentNamespace() {

static boolean currentNamespaceWatched(Set<String> namespaces) {
failIfNotValid(namespaces);
return CURRENT_NAMESPACE_ONLY.equals(namespaces);
return WATCH_CURRENT_NAMESPACE_SET.equals(namespaces);
}

static void failIfNotValid(Set<String> namespaces) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
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;

public interface InformerConfiguration<R extends HasMetadata>
extends ResourceConfiguration<R> {

Expand Down Expand Up @@ -71,7 +73,7 @@ public InformerConfigurationBuilder<R> withSecondaryToPrimaryMapper(

public InformerConfigurationBuilder<R> withNamespaces(String... namespaces) {
return withNamespaces(
namespaces != null ? Set.of(namespaces) : ResourceConfiguration.DEFAULT_NAMESPACES);
namespaces != null ? Set.of(namespaces) : DEFAULT_NAMESPACES);
}

public InformerConfigurationBuilder<R> withNamespaces(Set<String> namespaces) {
Expand All @@ -90,7 +92,7 @@ public InformerConfigurationBuilder<R> withNamespaces(Set<String> namespaces) {
*/
public InformerConfigurationBuilder<R> withNamespaces(Set<String> namespaces,
boolean followChanges) {
this.namespaces = namespaces != null ? namespaces : ResourceConfiguration.DEFAULT_NAMESPACES;
this.namespaces = namespaces != null ? namespaces : DEFAULT_NAMESPACES;
this.inheritControllerNamespacesOnChange = true;
return this;
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,15 @@
package io.javaoperatorsdk.operator.api.reconciler;

import java.util.Collections;
import java.util.Set;

public final class Constants {

public static final Set<String> DEFAULT_NAMESPACES =
Collections.singleton(Constants.WATCH_ALL_NAMESPACES);
public static final Set<String> WATCH_CURRENT_NAMESPACE_SET =
Collections.singleton(Constants.WATCH_CURRENT_NAMESPACE);

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";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

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

import static io.javaoperatorsdk.operator.api.reconciler.Constants.DEFAULT_NAMESPACES;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;

Expand All @@ -11,7 +12,7 @@ public static <R extends HasMetadata> ControllerConfiguration<R> forResource(
Class<R> resourceType) {
final ControllerConfiguration configuration = mock(ControllerConfiguration.class);
when(configuration.getResourceClass()).thenReturn(resourceType);
when(configuration.getNamespaces()).thenReturn(ResourceConfiguration.DEFAULT_NAMESPACES);
when(configuration.getNamespaces()).thenReturn(DEFAULT_NAMESPACES);
when(configuration.getEffectiveNamespaces()).thenCallRealMethod();
return configuration;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,13 +14,13 @@
import io.fabric8.kubernetes.client.dsl.MixedOperation;
import io.fabric8.kubernetes.client.informers.SharedIndexInformer;
import io.fabric8.kubernetes.client.informers.cache.Indexer;
import io.javaoperatorsdk.operator.api.config.ResourceConfiguration;
import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration;
import io.javaoperatorsdk.operator.processing.event.EventHandler;
import io.javaoperatorsdk.operator.processing.event.ResourceID;
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 org.mockito.ArgumentMatchers.any;
import static org.mockito.Mockito.*;

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

when(informerConfiguration.getEffectiveNamespaces())
.thenReturn(ResourceConfiguration.DEFAULT_NAMESPACES);
.thenReturn(DEFAULT_NAMESPACES);
when(informerConfiguration.getSecondaryToPrimaryMapper())
.thenReturn(mock(SecondaryToPrimaryMapper.class));

Expand Down