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 31f953b0c8d bug fix (#59292)
31f953b0c8d is described below

commit 31f953b0c8ddae5ac6caf29d8cb636aad11aceff
Author: Akshith Kandivanam <[email protected]>
AuthorDate: Tue Dec 16 18:29:42 2025 -0500

    bug fix (#59292)
---
 .../cncf/kubernetes/decorators/kubernetes_cmd.py   |  5 ++++-
 .../kubernetes/decorators/test_kubernetes_cmd.py   | 23 ++++++++++++++++++++++
 2 files changed, 27 insertions(+), 1 deletion(-)

diff --git 
a/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py
 
b/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py
index 279a3d22187..08cd8530653 100644
--- 
a/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py
+++ 
b/providers/cncf/kubernetes/src/airflow/providers/cncf/kubernetes/decorators/kubernetes_cmd.py
@@ -36,7 +36,8 @@ if TYPE_CHECKING:
 class _KubernetesCmdDecoratedOperator(DecoratedOperator, 
KubernetesPodOperator):
     custom_operator_name = "@task.kubernetes_cmd"
 
-    template_fields: Sequence[str] = KubernetesPodOperator.template_fields
+    template_fields: Sequence[str] = tuple({"op_args", "op_kwargs", 
*KubernetesPodOperator.template_fields})
+
     overwrite_rtif_after_execution: bool = True
 
     def __init__(self, *, python_callable: Callable, args_only: bool = False, 
**kwargs) -> None:
@@ -69,6 +70,8 @@ class _KubernetesCmdDecoratedOperator(DecoratedOperator, 
KubernetesPodOperator):
         )
 
     def execute(self, context: Context):
+        self.render_template_fields(context)
+
         generated = self._generate_cmds(context)
         if self.args_only:
             self.cmds = []
diff --git 
a/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py
 
b/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py
index 8cc1af370d7..a9832240345 100644
--- 
a/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py
+++ 
b/providers/cncf/kubernetes/tests/unit/cncf/kubernetes/decorators/test_kubernetes_cmd.py
@@ -397,3 +397,26 @@ class 
TestKubernetesCmdDecorator(TestKubernetesDecoratorsBase):
             self.execute_task(hello_task)
         self.mock_hook.assert_not_called()
         self.mock_create_pod.assert_not_called()
+
+    def test_kubernetes_cmd_template_fields_include_taskflow_args(self):
+        """Test that kubernetes_cmd operator has op_args and op_kwargs in 
template_fields"""
+        with self.dag_maker:
+
+            @task.kubernetes_cmd(
+                image="python:3.10-slim-buster",
+                in_cluster=False,
+                cluster_context="default",
+                config_file="/tmp/fake_file",
+                namespace="default",
+            )
+            def hello(name: str) -> list[str]:
+                return ["echo", name]
+
+            hello_task = hello("world")
+
+        op = hello_task.operator
+
+        assert "op_args" in op.template_fields
+        assert "op_kwargs" in op.template_fields
+        assert "cmds" in op.template_fields
+        assert "arguments" in op.template_fields

Reply via email to