Kubernetes CronJob Not Correctly Using Docker Secret

12/10/2018

I have a Kubernetes cluster that I am trying to set up a CronJob on. I have the CronJob set up in the default namespace, with the image pull secret I want to use set up in the default namespace as well. I set the imagePullSecrets in the CronJob to reference the secret I use to pull images from my private docker registry, I can verify this secret is valid because I have deployments in the same cluster and namespace that use this secret to successfully pull docker images. However, when the CronJob pod starts, I see the following error:

no basic auth credentials

I understand this happens when the pod doesn't have credentials to pull the image from the docker registry. But I am using the same secret for my deployments in the same namespace and they successfully pull down the image. Is there a difference in the configuration of using imagePullSecrets between deployments and cronjobs?

Server Version: v1.9.3

CronJob config:

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  namespace: default
  name: my-cronjob
spec:
  concurrencyPolicy: Forbid
  schedule: 30 13 * * *
  jobTemplate:
    spec:
      template:
        spec:
          restartPolicy: Never
          imagePullSecrets:
          - name: my-secret
          containers:
          - image: my-image
            name: my-cronjob
            command:
            - my-command
            args:
            - my-args
-- northsideknight
kubernetes
kubernetes-cronjob

0 Answers