This is an automated email from the ASF dual-hosted git repository.

potiuk pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/airflow.git


The following commit(s) were added to refs/heads/main by this push:
     new 2de2687e101 Move the KubernetesPodOperator 
'convert_config_file_to_dict' call (#55064)
2de2687e101 is described below

commit 2de2687e101839e4019ef141faebd391dc2abfcb
Author: olegkachur-e <[email protected]>
AuthorDate: Fri Sep 12 16:43:31 2025 +0000

    Move the KubernetesPodOperator 'convert_config_file_to_dict' call (#55064)
    
    It allow propper work for operators that inherit from
    KubernetesPodOperator and override the invoke_defer method (GKE).
    
    Co-authored-by: Oleg Kachur <[email protected]>
---
 .../kubernetes/src/airflow/providers/cncf/kubernetes/operators/pod.py | 2 +-
 .../cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py  | 4 ++++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git 
a/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/operators/pod.py
 
b/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/operators/pod.py
index 49f83dbfdc7..e550a4b73a9 100644
--- 
a/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/operators/pod.py
+++ 
b/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/operators/pod.py
@@ -833,7 +833,6 @@ class KubernetesPodOperator(BaseOperator):
         ti.xcom_push(key="pod_name", value=self.pod.metadata.name)
         ti.xcom_push(key="pod_namespace", value=self.pod.metadata.namespace)
 
-        self.convert_config_file_to_dict()
         self.invoke_defer_method()
 
     def convert_config_file_to_dict(self):
@@ -847,6 +846,7 @@ class KubernetesPodOperator(BaseOperator):
 
     def invoke_defer_method(self, last_log_time: DateTime | None = None) -> 
None:
         """Redefine triggers which are being used in child classes."""
+        self.convert_config_file_to_dict()
         trigger_start_time = datetime.datetime.now(tz=datetime.timezone.utc)
         self.defer(
             trigger=KubernetesPodTrigger(
diff --git 
a/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py 
b/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py
index ad68c5f410d..39673fa22d0 100644
--- a/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py
+++ b/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/operators/test_pod.py
@@ -2589,6 +2589,9 @@ class TestKubernetesPodOperatorAsync:
         with pytest.raises(AirflowException, match=expect_match):
             k.cleanup(pod, pod)
 
+    @patch(
+        
"airflow.providers.cncf.kubernetes.operators.pod.KubernetesPodOperator.convert_config_file_to_dict"
+    )
     @patch(f"{HOOK_CLASS}.get_pod")
     
@patch("airflow.providers.cncf.kubernetes.utils.pod_manager.PodManager.await_pod_completion")
     
@patch("airflow.providers.cncf.kubernetes.utils.pod_manager.PodManager.fetch_container_logs")
@@ -2597,6 +2600,7 @@ class TestKubernetesPodOperatorAsync:
         fetch_container_logs,
         await_pod_completion,
         get_pod,
+        mock_convert_config_file_to_dict,
     ):
         """When logs fetch exits with status running, raise task deferred"""
         pod = MagicMock()

Reply via email to