Skip to content

Decide pod_template and image based on Coordinator for lang-SDK tasks on KubernetesExecutor#68713

Draft
jason810496 wants to merge 2 commits into
apache:mainfrom
jason810496:feature/lang-sdk/k8s-coordinator-pod-template-file
Draft

Decide pod_template and image based on Coordinator for lang-SDK tasks on KubernetesExecutor#68713
jason810496 wants to merge 2 commits into
apache:mainfrom
jason810496:feature/lang-sdk/k8s-coordinator-pod-template-file

Conversation

@jason810496

Copy link
Copy Markdown
Member

Why

A queue routed to a non-Python coordinator ([sdk] queue_to_coordinator) needs a worker pod whose image carries that runtime (e.g. the JVM for a Java coordinator), but the KubernetesExecutor had no way to pick a coordinator-specific pod template or base image short of setting executor_config on every task.

What

  • Add KubernetesExecutor._coordinator_pod_template_file (reads pod_template_file from extra, import-guarded for 3.3+) and apply it with precedence over executor_config in execute_async.
    • pod_template_file -- applied with precedence over per-task executor_config (a queue's coordinator carries the runtime requirement, so it must win). Python queues resolve to None and are unaffected.
    • worker_container_repository + worker_container_tag -- compose a per-queue base image (both required), since the base image is never carried by a pod template. Plumbed through KubernetesJob.kube_image to the pod request.
  • A malformed [sdk] config is logged and ignored rather than crashing the scheduler.

Next


Was generative AI tooling used to co-author this PR?

Coordinator config entries need a place to carry deployment metadata that
other components consume without coupling it to the coordinator instance.
The coordinator itself never receives this metadata; components such as
KubernetesExecutor read it by queue when launching worker pods.
…netesExecutor

Add an optional pod_template_file to each [sdk] coordinators entry so a queue
routed to a non-Python coordinator launches its worker pod from a
coordinator-specific template (e.g. an image bundling the JVM for a Java
coordinator). The KubernetesExecutor resolves the template by queue when the
task's executor_config does not set one; a per-task executor_config template
still wins.
@jason810496 jason810496 changed the title Route lang-SDK coordinator tasks to a per-queue pod template on KubernetesExecutor Decide pod_template and image based on Coordinator for lang-SDK tasks on KubernetesExecutor Jun 18, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant