sokojh commented on code in PR #72863:
URL: https://github.com/apache/airflow/pull/72863#discussion_r3976020263
##########
providers/cncf/kubernetes/docs/kubernetes_executor.rst:
##########
@@ -38,6 +38,44 @@ KubernetesExecutor requires a non-sqlite database in the
backend.
When a Dag submits a task, the KubernetesExecutor requests a worker pod from
the Kubernetes API. The worker pod then runs the task, reports the result, and
terminates.
+.. _kubernetes_executor_worker_image:
+
+What the worker pod runs
+------------------------
+
+Airflow 3 removed the ``airflow worker`` command, so a worker image no longer
needs it. The
+KubernetesExecutor passes the task as a serialized *workload* in the ``base``
container's ``args``,
+and the container's own entrypoint runs it:
+
+.. code-block:: text
+
+ args:
+ - python
+ - -m
+ - airflow.sdk.execution_time.execute_workload
+ - --json-string
+ - '{"token": "<short-lived JWT>", "dag_rel_path": "...", "bundle_info":
{...},
+ "log_path": "...", "ti": {...}, "type": "ExecuteTask"}'
+
+This means a worker image must satisfy three requirements:
+
+* **The Task SDK must be installed.**
``airflow.sdk.execution_time.execute_workload`` is the entry
Review Comment:
Fair point, trimmed. Kept only the args and the "don't set command" bit,
which is what the reporter was actually stuck on.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]