[SIMPL-30451] Stop freezing the k8s executor config with .configured()

k8s_job_executor.configured({...}) collapses the executor config schema to Any, so a run config execution: block is accepted and then silently discarded. That makes job_image and job_namespace impossible to supply at launch time, which is what a probe - or any deployment that is not the chart - needs. Found on the sandbox: the run reported 'No image included in either executor config or the job' and then tried to clean up in namespace dagster, both values coming from the run launcher because the executor config never applied.

The same defaults now go through to_job(config=...), where they remain overridable from run config and the Launchpad.

Changelog: fixed
This commit is contained in:
ILay
2026-08-31 20:39:33 +02:00
parent 35ef45de56
commit 3f8175a17f

View File

@@ -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"},
)