Возможно ли запустить kubernetes cronjob также при развертывании?

#kubernetes #kubernetes-cronjob

#kubernetes #kubernetes-cronjob

Вопрос:

У меня есть простое cronjob, которое выполняется каждые 10 минут:

 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
 

Он действительно запускается каждые 10 минут, но я бы хотел, чтобы он запускался в первый раз при развертывании cronjob. возможно ли это?

Комментарии:

1. что вам на самом деле нужно? нужно ли применять задание только один раз, когда оно было развернуто?

2. Каждые x минут бит один раз после его развертывания

Ответ №1:

У вас может быть одноразовое CronJob, запускающее запланированное CronJob:

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

Источник

Одноразовый CronJob должен выполняться после создания запланированного CronJob, и его образ должен включать двоичный файл kubectl. Разрешения Api-сервера, необходимые для запуска kubectl в контейнере, могут быть предоставлены путем привязки ServiceAccount к одноразовому CronJob.

Комментарии:

1. Также связанная проблема с github , в которой говорится о запуске CronJobs вручную и запуске его при создании.

2. Тьфу, это выглядит немного неуклюже, чтобы запустить задание в контейнере, я думаю, я бы предпочел дублировать cronjob и обернуть его с помощью helm