Skip to content

Commit 0712e46

Browse files
feat: allow to omit job cleanup with --kubernetes-omit-job-cleanup (for debugging) (#55)
1 parent 57c5cf3 commit 0712e46

File tree

1 file changed

+17
-5
lines changed

1 file changed

+17
-5
lines changed

snakemake_executor_plugin_kubernetes/__init__.py

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,14 @@ class ExecutorSettings(ExecutorSettingsBase):
9595
"nargs": "+",
9696
},
9797
)
98+
omit_job_cleanup: bool = field(
99+
default=False,
100+
metadata={
101+
"help": "Do not delete jobs after they have finished or failed. "
102+
"This is useful for debugging, or if your k8s cluster performs "
103+
"automatic cleanups."
104+
},
105+
)
98106

99107

100108
# Required:
@@ -502,7 +510,10 @@ def read_log(
502510
self.logger.error(f"Job {j.external_jobid} failed.{msg}")
503511
self.report_job_error(j, msg=msg, aux_logs=aux_logs)
504512

505-
if pod_name is not None:
513+
if (
514+
pod_name is not None
515+
and not self.workflow.executor_settings.omit_job_cleanup
516+
):
506517
self._kubernetes_retry(
507518
lambda j=j: self.safe_delete_job(
508519
j.external_jobid, ignore_not_found=True
@@ -515,11 +526,12 @@ def read_log(
515526
self.logger.info(f"Job {j.external_jobid} succeeded.")
516527
self.report_job_success(j)
517528

518-
self._kubernetes_retry(
519-
lambda j=j: self.safe_delete_job(
520-
j.external_jobid, ignore_not_found=True
529+
if not self.workflow.executor_settings.omit_job_cleanup:
530+
self._kubernetes_retry(
531+
lambda j=j: self.safe_delete_job(
532+
j.external_jobid, ignore_not_found=True
533+
)
521534
)
522-
)
523535
else:
524536
# still active
525537
self.logger.debug(f"Job {j.external_jobid} is still active.")

0 commit comments

Comments
 (0)