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