Robert Denham
03/08/2023, 1:26 AMjawnsy
03/08/2023, 1:30 AMcustomizations
field to patch the Job: https://docs.prefect.io/api-ref/prefect/infrastructure/#prefect.infrastructure.KubernetesJobRobert Denham
03/08/2023, 1:32 AMjawnsy
03/08/2023, 1:35 AMjawnsy
03/08/2023, 1:36 AMChristopher Boyd
03/08/2023, 1:37 AMRobert Denham
03/08/2023, 1:38 AMChristopher Boyd
03/08/2023, 1:38 AMRobert Denham
03/08/2023, 1:38 AMChristopher Boyd
03/08/2023, 1:38 AMChristopher Boyd
03/08/2023, 1:39 AMRobert Denham
03/08/2023, 1:40 AMChristopher Boyd
03/08/2023, 1:46 AM[
{
"op": "add",
"path": "/spec/template/spec/",
"value": {
"nodeName": "foo-node"
},
}
]
Robert Denham
03/08/2023, 2:11 AMapiVersion: batch/v1
kind: Job
metadata:
# labels are required, even if empty
labels: {}
spec:
template:
spec:
completions: 1
containers: # the first container is required
- env: [] # env is required, even if empty
name: prefect-job
parallelism: 1
restartPolicy: Never
nodeSelector:
location: "on-prem"
Then, creating/modifying the block is easiest in python:
from prefect.infrastructure.kubernetes import KubernetesJob
# some bits from existing block
k2block = KubernetesJob.load("kubetest2")
k8s_job=KubernetesJob(
namespace="default",
image=k2block.image,
env=k2block.env,
job=KubernetesJob.job_from_file("base_run.yaml")
)
k8s_job.save("k8sonprem", overwrite=True)