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

jscheffl 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 f0677f3df6d Handle backwards-compatibility for older Google provider 
(#60730)
f0677f3df6d is described below

commit f0677f3df6db91541d3fac85bd3b90804c811804
Author: Jarek Potiuk <[email protected]>
AuthorDate: Sat Jan 17 21:45:46 2026 +0100

    Handle backwards-compatibility for older Google provider (#60730)
    
    Google provider depends on cncf.kubernetes for GKE and since we
    are changing how we are calling the invoke_defer_method in GKE,
    older Google providers have invoke_defer_method that does not
    accept context parameter and it will fail.
    
    We need to make sure that invoke_defer_method actually can
    accept the context parameter before passing it.
---
 .../src/airflow/providers/cncf/kubernetes/operators/pod.py     | 10 +++++++++-
 1 file changed, 9 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 865f8a13f15..668c15e9043 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
@@ -20,6 +20,7 @@ from __future__ import annotations
 
 import asyncio
 import datetime
+import inspect
 import json
 import logging
 import math
@@ -852,7 +853,14 @@ 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.invoke_defer_method(context=context)
+        # Check if invoke_defer_method accepts context parameter
+        # This might happen if the KPO is extended by for example old Google
+        # provider where invoke_defer_method does not accept context parameter
+        sig = inspect.signature(self.invoke_defer_method)
+        if "context" in sig.parameters:
+            self.invoke_defer_method(context=context)
+        else:
+            self.invoke_defer_method()
 
     def convert_config_file_to_dict(self):
         """Convert passed config_file to dict representation."""

Reply via email to