1212import io .fabric8 .kubernetes .client .dsl .NonNamespaceOperation ;
1313import io .fabric8 .kubernetes .client .dsl .Resource ;
1414import io .javaoperatorsdk .operator .api .config .informer .InformerConfiguration ;
15+ import io .javaoperatorsdk .operator .api .reconciler .Constants ;
1516import io .javaoperatorsdk .operator .api .reconciler .Context ;
1617import io .javaoperatorsdk .operator .api .reconciler .EventSourceContext ;
1718import io .javaoperatorsdk .operator .api .reconciler .dependent .managed .DependentResourceConfigurator ;
@@ -35,6 +36,7 @@ public abstract class KubernetesDependentResource<R extends HasMetadata, P exten
3536 private final Matcher <R , P > matcher ;
3637 private final ResourceUpdatePreProcessor <R > processor ;
3738 private final Class <R > resourceType ;
39+ private KubernetesDependentResourceConfig kubernetesDependentResourceConfig ;
3840
3941 @ SuppressWarnings ("unchecked" )
4042 public KubernetesDependentResource (Class <R > resourceType ) {
@@ -49,12 +51,17 @@ public KubernetesDependentResource(Class<R> resourceType) {
4951
5052 @ Override
5153 public void configureWith (KubernetesDependentResourceConfig config ) {
52- configureWith ( config . labelSelector (), config . namespaces (), ! config . wereNamespacesConfigured ()) ;
54+ this . kubernetesDependentResourceConfig = config ;
5355 }
5456
5557 @ SuppressWarnings ("unchecked" )
5658 private void configureWith (String labelSelector , Set <String > namespaces ,
57- boolean inheritNamespacesOnChange ) {
59+ boolean inheritNamespacesOnChange , EventSourceContext <P > context ) {
60+
61+ if (namespaces .equals (Constants .SAME_AS_CONTROLLER_NAMESPACES_SET )) {
62+ namespaces = context .getControllerConfiguration ().getNamespaces ();
63+ }
64+
5865 final SecondaryToPrimaryMapper <R > primaryResourcesRetriever =
5966 (this instanceof SecondaryToPrimaryMapper ) ? (SecondaryToPrimaryMapper <R >) this
6067 : Mappers .fromOwnerReference ();
@@ -136,9 +143,17 @@ protected NonNamespaceOperation<R, KubernetesResourceList<R>, Resource<R>> prepa
136143
137144 @ Override
138145 protected InformerEventSource <R , P > createEventSource (EventSourceContext <P > context ) {
139- configureWith (null , context .getControllerConfiguration ().getNamespaces (), true );
140- log .warn ("Using default configuration for " + resourceType ().getSimpleName ()
141- + " KubernetesDependentResource, call configureWith to provide configuration" );
146+ if (kubernetesDependentResourceConfig != null ) {
147+ configureWith (kubernetesDependentResourceConfig .labelSelector (),
148+ kubernetesDependentResourceConfig .namespaces (),
149+ !kubernetesDependentResourceConfig .wereNamespacesConfigured (), context );
150+ } else {
151+ configureWith (null , context .getControllerConfiguration ().getNamespaces (),
152+ true , context );
153+ log .warn (
154+ "Using default configuration for {} KubernetesDependentResource, call configureWith to provide configuration" ,
155+ resourceType ().getSimpleName ());
156+ }
142157 return eventSource ();
143158 }
144159
0 commit comments