How to create a Kubernetes job from a cron job

As a Kubernetes user, I find that I often need to trigger a kubernetes cron job manually, outside of its schedule. Fortunately, since the release of Kubernetes 1.10, we're able to specify a cronjob config when creating a kubernetes job manually.

tl;dr

kubectl create job --from=cronjob/<cronjob-name> <job-name>
1

We typically create a k8s job like this:

kubectl apply -f some-job-config.yaml

This is nice enough, but sometimes we need to launch a job that is already defined in a cronjob config. So rather than copying and pasting the applicable cronjob config into a new file, we can simply use the --from option with kubectl create job.

kubectl create job --from=cronjob/<cronjob-name> <job-name>

The name of the job needs to be unique, and the cronjob name can be found using:

kubectl get cronjob

Helpful note: It's wise to come up with a job naming convention and stick with it. As an example, we could use the name of the cronjob and append the timestamp.