shivanitomarzeotap opened a new issue #20626:
URL: https://github.com/apache/airflow/issues/20626


   ### Apache Airflow version
   
   2.1.4
   
   ### What happened
   
   in_cluster configuration option is disabled, config path is empty and the 
kubeconfig(json) is provided to the airflow admin connection. As written 
[here](https://github.com/apache/airflow/blob/main/airflow/providers/cncf/kubernetes/hooks/kubernetes.py#L49-L56)
 because first two options are not selected, it should create the connection 
with provided kubeconfig json file.
   But it fails saying that -  _Invalid kube-config file_
   
   
   ### What you expected to happen
   
   If in_cluster configuration and config path options are disabled, it should 
create the connection with provided kubeconfig json file.
   
   ### How to reproduce
   
   Create airflow admin connection via airflow UI where in_cluster option is 
disabled and config path is empty.
   <img width="877" alt="Screenshot 2022-01-03 at 1 42 34 PM" 
src="https://user-images.githubusercontent.com/52529737/147910225-5e1cac10-d854-42da-98cb-2c5fac6298a1.png";>
   and use this connection for 
[dag](https://github.com/apache/airflow/blob/main/airflow/providers/cncf/kubernetes/example_dags/example_spark_kubernetes.py)
 
   
   ### Operating System
   
   -
   
   ### Versions of Apache Airflow Providers
   
   _No response_
   
   ### Deployment
   
   Composer
   
   ### Deployment details
   
   _No response_
   
   ### Anything else
   
   hypothesis - The connection form includes empty string for un-set values, 
and in code we only have a check for None and not for empty string.
   
   Traceback - `[2022-01-03 07:54:31,547] {spark_kubernetes.py:68} INFO - 
Creating sparkApplication
   [2022-01-03 07:54:31,586] {taskinstance.py:1465} ERROR - Task failed with 
exception
   Traceback (most recent call last):
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/models/taskinstance.py", 
line 1166, in _run_raw_task
       self._prepare_and_execute_task_with_callbacks(context, task)
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/models/taskinstance.py", 
line 1285, in _prepare_and_execute_task_with_callbacks
       result = self._execute_task(context, task_copy)
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/models/taskinstance.py", 
line 1315, in _execute_task
       result = task_copy.execute(context=context)
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/providers/cncf/kubernetes/operators/spark_kubernetes.py",
 line 70, in execute
       response = hook.create_custom_object(
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/providers/cncf/kubernetes/hooks/kubernetes.py",
 line 168, in create_custom_object
       api = client.CustomObjectsApi(self.api_client)
     File "/opt/python3.8/lib/python3.8/functools.py", line 967, in __get__
       val = self.func(instance)
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/providers/cncf/kubernetes/hooks/kubernetes.py",
 line 149, in api_client
       return self.get_conn()
     File 
"/opt/python3.8/lib/python3.8/site-packages/airflow/providers/cncf/kubernetes/hooks/kubernetes.py",
 line 127, in get_conn
       config.load_kube_config(
     File 
"/opt/python3.8/lib/python3.8/site-packages/kubernetes/config/kube_config.py", 
line 737, in load_kube_config
       loader = _get_kube_config_loader_for_yaml_file(
     File 
"/opt/python3.8/lib/python3.8/site-packages/kubernetes/config/kube_config.py", 
line 700, in _get_kube_config_loader_for_yaml_file
       raise ConfigException(
   kubernetes.config.config_exception.ConfigException: Invalid kube-config 
file. No configuration found.`
   
   ### Are you willing to submit PR?
   
   - [X] Yes I am willing to submit a PR!
   
   ### Code of Conduct
   
   - [X] I agree to follow this project's [Code of 
Conduct](https://github.com/apache/airflow/blob/main/CODE_OF_CONDUCT.md)
   


-- 
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.

To unsubscribe, e-mail: [email protected]

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


Reply via email to