windowsrefund
windowsrefund

Reputation: 9

Trying to create a simple CronJob

$ kubectl api-versions | grep batch
batch/v1
batch/v1beta1

When attempting to create this CronJob object which has a single container and an empty volume, I get this error:

$ kubectl apply -f test.yaml
error: error parsing test.yaml: error converting YAML to JSON: yaml: line 19: did not find expected key

The YAML

$ cat test.yaml
apiVersion: batch/v1beta1
  kind: CronJob
  metadata:
    name: dummy
  spec:
    schedule: "*/1 * * * *"
    jobTemplate:
      spec:
        template:
          spec:
            containers:
            - name: app
              image: alpine
              command: 
              - echo
              - Hello World!
              volumeMounts:
              - mountPath: /data
                name: foo
            restartPolicy: OnFailure
            volumes:
            - name: foo
              emptyDir: {}

Based on my reading of the API, I believe my schema is legit. Any ideas or help would be greatly appreciated.

Upvotes: 0

Views: 68

Answers (1)

Arghya Sadhu
Arghya Sadhu

Reputation: 44569

I think it's indentation issue. Below yaml should work.

apiVersion: batch/v1beta1
kind: CronJob
metadata:
  name: dummy
spec:
  schedule: "*/1 * * * *"
  jobTemplate:
    spec:
      template:
        spec:
          containers:
          - name: app
            image: alpine
            command:
            - echo
            - Hello World!
            volumeMounts:
            - mountPath: /data
              name: foo
          restartPolicy: OnFailure
          volumes:
          - name: foo
            emptyDir: {}

Upvotes: 2

Related Questions