Olshansky
Olshansky

Reputation: 6424

Predictable pod name in kubernetes cron job

I have a cron job on kubernetes that I trigger like so for testing purposes:

kubectl create -f src/cronjob.yaml
kubectl create job --from=cronjob/analysis analysis-test

This creates a pod with the name analysis-test-<random-string>. I was wondering if it's possible to omit or make the suffix predictable?

Filtered cronjob.yaml

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: analysis
  labels:
    job: analysis
spec:
  schedule: "0 0 * * 0"
  concurrencyPolicy: "Forbid"
  suspend: true
  failedJobsHistoryLimit: 3
  successfulJobsHistoryLimit: 3
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: OnFailure
          containers:
            - name: container-name
              image: myimage
              env:
              - name: ENVIRONMENT
                value: "DEV"
              imagePullPolicy: IfNotPresent
              command: [ "/bin/bash", "-c", "--" ]
              args: [ "while true; do sleep 30; done;"]

Upvotes: 2

Views: 2891

Answers (1)

ThatBuffDude
ThatBuffDude

Reputation: 481

As of v1beta1, no you can't, here's the doc regarding cronjob https://kubernetes.io/docs/concepts/workloads/controllers/cron-jobs/

Here's an excerpt from the docs:

When creating the manifest for a CronJob resource, make sure the name you provide is a valid DNS subdomain name. The name must be no longer than 52 characters. This is because the CronJob controller will automatically append 11 characters to the job name provided and there is a constraint that the maximum length of a Job name is no more than 63 characters.

Also here's a reference page to CronJob v1beta1 spec to view the available options config: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.20/#cronjobspec-v1beta1-batch


Digging through the source code a little bit, you can see how the CronJob controller create the Job Resource https://github.com/kubernetes/kubernetes/blob/v1.20.1/pkg/controller/cronjob/cronjob_controller.go#L327 https://github.com/kubernetes/kubernetes/blob/v1.20.1/pkg/controller/cronjob/utils.go#L219

Upvotes: 4

Related Questions