mpolatcan opened a new issue #12341:
URL: https://github.com/apache/airflow/issues/12341


   Hi Airflow community ✋  I have detected bug on Airflow webserver. I have 
deployed Airflow cluster that uses Kubernetes executor, runs on production AWS 
EKS cluster. All configurations are correct and runs successfully tasks on 
DAGs. But when I want to run specific task on DAG, that throws error like that:
   
   
![image](https://user-images.githubusercontent.com/5066703/99072345-e7572d80-25c4-11eb-994c-d0081d79c715.png)
   
   But, I have checked my KubernetesExecutor configurations all of them are 
correct. So, I have digged error on source code of Airflow webserver at tag 
1.10.12 which I have deployed version of Airflow. And found that some import 
errors are ignored for KubernetesExecutor on file 
https://github.com/apache/airflow/blob/1.10.12/airflow/www/views.py at line 1152
   
   ```python
   executor = ExecutorLoader.get_default_executor()
   valid_celery_config = False
   valid_kubernetes_config = False
   
   try:
      from airflow.executors.celery_executor import CeleryExecutor  # noqa
   
      valid_celery_config = isinstance(executor, CeleryExecutor)
   except ImportError:
       pass
   
   try:
     from airflow.contrib.executors.kubernetes_executor import 
KubernetesExecutor  # noqa
   
      valid_kubernetes_config = isinstance(executor, KubernetesExecutor)
   except ImportError:
      pass
   
   if not valid_celery_config and not valid_kubernetes_config:
      flash("Only works with the Celery or Kubernetes executors, sorry", 
"error")
      return redirect(origin)
   ```
   
   In there, bug in this code snippet
   
   ```python
   try:
     from airflow.contrib.executors.kubernetes_executor import 
KubernetesExecutor  # BUG IS HERE !!!
   
      valid_kubernetes_config = isinstance(executor, KubernetesExecutor)
   except ImportError:
      pass
   ```
   Import statement raises error KubernetesExecutor not found in this module 
because when you look that module at tag 1.10.12 
https://github.com/apache/airflow/blob/1.10.12/airflow/contrib/executors/kubernetes_executor.py,
 there is no KubernetesExecutor class, only includes kubernetes_executor module 
which it is KubernetesExecutor's location. But when you use that you need to 
change the code like that:
   
   ```python
   try:
     from airflow.contrib.executors.kubernetes_executor import 
kubernetes_executor
     
     valid_kubernetes_config = isinstance(executor, 
kubernetes_executor.KubernetesExecutor)
   except ImportError:
      pass
   ```
   
   or:
   
   ```python
   try:
     from airflow.executors.kubernetes_executor import KubernetesExecutor
     
     valid_kubernetes_config = isinstance(executor, KubernetesExecutor)
   except ImportError:
      pass
   ```
   
   This error block user to run single task with KubernetesExecutor without run 
whole DAG. 
   
   Thanks, have a nice day 👍 😄 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to