Decide pod_template and image based on Coordinator for lang-SDK tasks on KubernetesExecutor#68713
Draft
jason810496 wants to merge 2 commits into
Draft
Conversation
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.
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
extrafield for Coordinator #68694. Stacked on top of it.extrafield for Coordinator #68694):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 settingexecutor_configon every task.What
KubernetesExecutor._coordinator_pod_template_file(readspod_template_filefromextra, import-guarded for 3.3+) and apply it with precedence overexecutor_configinexecute_async.pod_template_file-- applied with precedence over per-taskexecutor_config(a queue's coordinator carries the runtime requirement, so it must win). Python queues resolve toNoneand 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 throughKubernetesJob.kube_imageto the pod request.[sdk]config is logged and ignored rather than crashing the scheduler.Next
Was generative AI tooling used to co-author this PR?