diff --git a/src/distributed_execution/tightly_coupled/jobs.py b/src/distributed_execution/tightly_coupled/jobs.py index 3b4abcf..c5f82f9 100644 --- a/src/distributed_execution/tightly_coupled/jobs.py +++ b/src/distributed_execution/tightly_coupled/jobs.py @@ -81,12 +81,19 @@ tightly_coupled_k8s_job = distributed_execution_reference.to_job( "Tightly coupled, one Kubernetes Job per step. Each step pod must reach the metadata " "database, object storage and Vault. Requires a cluster - not runnable locally." ), - executor_def=k8s_job_executor.configured( - { - "image_pull_policy": "IfNotPresent", - "step_k8s_config": STEP_K8S_CONFIG, + # Defaults go through `config` rather than `executor_def=...configured(...)`. + # `.configured()` collapses the executor's config schema to Any, so a run + # config `execution:` block is accepted and then silently discarded - which + # also makes job_image and job_namespace impossible to supply at launch time. + executor_def=k8s_job_executor, + config={ + "execution": { + "config": { + "image_pull_policy": "IfNotPresent", + "step_k8s_config": STEP_K8S_CONFIG, + } } - ), + }, tags={**COMMON_TAGS, "executor": "k8s_job"}, )