title: How to ensure kubernetes cronjob does not restart on failure
body: <p>I have a cronjob that sends out emails to customers.  It occasionally fails for various reasons.  I <em>do not want</em> it to restart, but it still does.</p>
  
  <p>I am running Kubernetes on GKE.  To get it to stop, I have to delete the CronJob and then kill all the pods it creates manually.   </p>
  
  <p>This is bad, for obvious reasons.  </p>
  
  <pre><code>apiVersion: batch/v1beta1
  kind: CronJob
  metadata:
    creationTimestamp: 2018-06-21T14:48:46Z
    name: dailytasks
    namespace: default
    resourceVersion: "20390223"
    selfLink: [redacted]
    uid: [redacted]
  spec:
    concurrencyPolicy: Forbid
    failedJobsHistoryLimit: 1
    jobTemplate:
      metadata:
        creationTimestamp: null
      spec:
        template:
          metadata:
            creationTimestamp: null
          spec:
            containers:
            - command:
              - kubernetes/daily_tasks.sh
              env:
              - name: DB_HOST
                valueFrom:
                  fieldRef:
                    apiVersion: v1
                    fieldPath: status.hostIP
              envFrom:
              - secretRef:
                  name: my-secrets
              image: [redacted]
              imagePullPolicy: IfNotPresent
              name: dailytasks
              resources: {}
              terminationMessagePath: /dev/termination-log
              terminationMessagePolicy: File
            dnsPolicy: ClusterFirst
            restartPolicy: Never
            schedulerName: default-scheduler
            securityContext: {}
            terminationGracePeriodSeconds: 30
    schedule: 0 14 * * *
    successfulJobsHistoryLimit: 3
    suspend: true
  status:
    active:
    - apiVersion: batch
      kind: Job
      name: dailytasks-1533218400
      namespace: default
      resourceVersion: "20383182"
      uid: [redacted]
    lastScheduleTime: 2018-08-02T14:00:00Z
  </code></pre>