ArielB
ArielB

Reputation: 1284

Is it possible to trigger a kubernetes cronjob also upon deployment?

I have a simple cronjob that runs every 10 minutes:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: myjob
spec:
  schedule: "*/10 * * * *" #every 10 minutes
  successfulJobsHistoryLimit: 1
  failedJobsHistoryLimit: 1
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: job
            image: image
            imagePullPolicy: Always
          restartPolicy: OnFailure

It indeed runs every 10 minutes, but i would like it to run first time when i deploy the cronjob. is it possible?

Upvotes: 2

Views: 6530

Answers (1)

Gavin
Gavin

Reputation: 414

You could have a one time CronJob trigger the scheduled CronJob:

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

Source

The one time CronJob would need to run after the scheduled CronJob has been created, and its image would need to include the kubectl binary. Api-server permissions needed to run kubectl within the container could be provided by linking a ServiceAccount to the one time CronJob.

Upvotes: 3

Related Questions