diff --git a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java index 4196eb0e7e..10429185d3 100644 --- a/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java +++ b/operator-framework-core/src/main/java/io/javaoperatorsdk/operator/processing/dependent/kubernetes/KubernetesDependentResource.java @@ -12,6 +12,7 @@ import io.fabric8.kubernetes.client.dsl.NonNamespaceOperation; import io.fabric8.kubernetes.client.dsl.Resource; import io.javaoperatorsdk.operator.api.config.informer.InformerConfiguration; +import io.javaoperatorsdk.operator.api.reconciler.Constants; import io.javaoperatorsdk.operator.api.reconciler.Context; import io.javaoperatorsdk.operator.api.reconciler.EventSourceContext; import io.javaoperatorsdk.operator.api.reconciler.dependent.managed.DependentResourceConfigurator; @@ -35,6 +36,7 @@ public abstract class KubernetesDependentResource matcher; private final ResourceUpdatePreProcessor processor; private final Class resourceType; + private KubernetesDependentResourceConfig kubernetesDependentResourceConfig; @SuppressWarnings("unchecked") public KubernetesDependentResource(Class resourceType) { @@ -49,12 +51,17 @@ public KubernetesDependentResource(Class resourceType) { @Override public void configureWith(KubernetesDependentResourceConfig config) { - configureWith(config.labelSelector(), config.namespaces(), !config.wereNamespacesConfigured()); + this.kubernetesDependentResourceConfig = config; } @SuppressWarnings("unchecked") private void configureWith(String labelSelector, Set namespaces, - boolean inheritNamespacesOnChange) { + boolean inheritNamespacesOnChange, EventSourceContext

context) { + + if (namespaces.equals(Constants.SAME_AS_CONTROLLER_NAMESPACES_SET)) { + namespaces = context.getControllerConfiguration().getNamespaces(); + } + final SecondaryToPrimaryMapper primaryResourcesRetriever = (this instanceof SecondaryToPrimaryMapper) ? (SecondaryToPrimaryMapper) this : Mappers.fromOwnerReference(); @@ -136,9 +143,17 @@ protected NonNamespaceOperation, Resource> prepa @Override protected InformerEventSource createEventSource(EventSourceContext

context) { - configureWith(null, context.getControllerConfiguration().getNamespaces(), true); - log.warn("Using default configuration for " + resourceType().getSimpleName() - + " KubernetesDependentResource, call configureWith to provide configuration"); + if (kubernetesDependentResourceConfig != null) { + configureWith(kubernetesDependentResourceConfig.labelSelector(), + kubernetesDependentResourceConfig.namespaces(), + !kubernetesDependentResourceConfig.wereNamespacesConfigured(), context); + } else { + configureWith(null, context.getControllerConfiguration().getNamespaces(), + true, context); + log.warn( + "Using default configuration for {} KubernetesDependentResource, call configureWith to provide configuration", + resourceType().getSimpleName()); + } return eventSource(); }