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()