Márton Balassi created FLINK-26660:
--------------------------------------

             Summary: Specify EventSource when watching multiple namespaces
                 Key: FLINK-26660
                 URL: https://issues.apache.org/jira/browse/FLINK-26660
             Project: Flink
          Issue Type: Sub-task
          Components: Kubernetes Operator
            Reporter: Márton Balassi


Currently when watching multiple namespaces, for example via the following 
command:

 
{code:java}
kubectl create ns flink-system
kubectl create ns flink-prod
kubectl create ns flink-user
helm install --namespace flink-system --set 
"watchNamespaces={flink-prod,flink-user}" flink-operator helm/flink-operator 
{code}
 

The operator itself comes up healthy, but on FlinkDeployment submission and is 
unable to reconcile:

 
{code:java}
# Modify the example to deploy to flink-prod namespace!
kubectl create -f examples/basic.yaml {code}
The operator log show the following:
{code:java}
flink-operator 2022-03-15 16:06:40,694 i.j.o.p.e.ReconciliationDispatcher 
[ERROR] Error during event processing ExecutionScope{ resource id: 
CustomResourceID{name= │
│ 'basic-example', namespace='flink-prod'}, version: 12332} failed.             
                                                                                
      │
│ flink-operator 
org.apache.flink.kubernetes.operator.exception.ReconciliationException: 
java.lang.IllegalArgumentException: There are multiple EventSources register │
│ ed for type io.fabric8.kubernetes.api.model.apps.Deployment, you need to 
provide a name to specify which EventSource you want to query. Known names: 
null-flink-pro │
│ d,null-flink-user                                                             
                                                                                
      │
│ flink-operator     at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:131)
                       │
│ flink-operator     at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:57)
                        │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.Controller$2.execute(Controller.java:101)
                                                              │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.Controller$2.execute(Controller.java:76) 
                                                              │
│ flink-operator     at 
io.javaoperatorsdk.operator.api.monitoring.Metrics.timeControllerExecution(Metrics.java:34)
                                                   │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.Controller.reconcile(Controller.java:75) 
                                                              │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.reconcileExecution(ReconciliationDispatcher.java:151)
                   │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleReconcile(ReconciliationDispatcher.java:117)
                      │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleDispatch(ReconciliationDispatcher.java:82)
                        │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.ReconciliationDispatcher.handleExecution(ReconciliationDispatcher.java:51)
                       │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.EventProcessor$ControllerExecution.run(EventProcessor.java:385)
                                  │
│ flink-operator     at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)     
                                                              │
│ flink-operator     at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)    
                                                              │
│ flink-operator     at java.base/java.lang.Thread.run(Unknown Source)          
                                                                                
      │
│ flink-operator Caused by: java.lang.IllegalArgumentException: There are 
multiple EventSources registered for type 
io.fabric8.kubernetes.api.model.apps.Deployment,  │
│ you need to provide a name to specify which EventSource you want to query. 
Known names: null-flink-prod,null-flink-user                                    
         │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.EventSourceManager$EventSources.get(EventSourceManager.java:266)
                                 │
│ flink-operator     at 
io.javaoperatorsdk.operator.processing.event.EventSourceManager.getResourceEventSourceFor(EventSourceManager.java:163)
                        │
│ flink-operator     at 
io.javaoperatorsdk.operator.api.reconciler.DefaultContext.getSecondaryResource(DefaultContext.java:28)
                                        │
│ flink-operator     at 
io.javaoperatorsdk.operator.api.reconciler.Context.getSecondaryResource(Context.java:10)
                                                      │
│ flink-operator     at 
org.apache.flink.kubernetes.operator.observer.BaseObserver.observeJmDeployment(BaseObserver.java:69)
                                          │
│ flink-operator     at 
org.apache.flink.kubernetes.operator.observer.JobObserver.observe(JobObserver.java:49)
                                                        │
│ flink-operator     at 
org.apache.flink.kubernetes.operator.controller.FlinkDeploymentController.reconcile(FlinkDeploymentController.java:124)
                       │
│ flink-operator     ... 13 more {code}
 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to