title: How to schedule a cronjob which executes a kubectl command?
body: <p>How to schedule a cronjob which executes a kubectl command?</p>
  
  <p>I would like to run the following kubectl command every 5 minutes:</p>
  
  <pre><code>kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
  </code></pre>
  
  <p>For this, I have created a cronjob as below:</p>
  
  <pre><code>apiVersion: batch/v1beta1
  kind: CronJob
  metadata:
    name: hello
  spec:
    schedule: "*/5 * * * *"
    jobTemplate:
      spec:
        template:
          spec:
            containers:
            - name: hello
              image: busybox
              args:
              - /bin/sh
              - -c
              - kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
            restartPolicy: OnFailure
  </code></pre>
  
  <p>But it is failing to start the container, showing the message : </p>
  
  <pre><code>Back-off restarting failed container
  </code></pre>
  
  <p>And with the error code 127:</p>
  
  <pre><code>State:          Terminated
        Reason:       Error
        Exit Code:    127
  </code></pre>
  
  <p>From what I checked, the error code 127 says that the command doesn't exist. How could I run the kubectl command then as a cron job ? Am I missing something?</p>
  
  <p><em>Note: I had posted a similar question ( <a href="https://stackoverflow.com/questions/54763195/scheduled-restart-of-kubernetes-pod-without-downtime">Scheduled restart of Kubernetes pod without downtime</a> ) , but that was more of having the main deployment itself as a cronjob, here I'm trying to run a kubectl command (which does the restart) using a CronJob - so I thought it would be better to post separately</em></p>
  
  <p>kubectl describe cronjob hello -n jp-test:</p>
  
  <pre><code>Name:                       hello
  Namespace:                  jp-test
  Labels:                     &lt;none&gt;
  Annotations:                kubectl.kubernetes.io/last-applied-configuration={"apiVersion":"batch/v1beta1","kind":"CronJob","metadata":{"annotations":{},"name":"hello","namespace":"jp-test"},"spec":{"jobTemplate":{"spec":{"templ...
  Schedule:                   */5 * * * *
  Concurrency Policy:         Allow
  Suspend:                    False
  Starting Deadline Seconds:  &lt;unset&gt;
  Selector:                   &lt;unset&gt;
  Parallelism:                &lt;unset&gt;
  Completions:                &lt;unset&gt;
  Pod Template:
    Labels:  &lt;none&gt;
    Containers:
     hello:
      Image:      busybox
      Port:       &lt;none&gt;
      Host Port:  &lt;none&gt;
      Args:
        /bin/sh
        -c
        kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
      Environment:     &lt;none&gt;
      Mounts:          &lt;none&gt;
    Volumes:           &lt;none&gt;
  Last Schedule Time:  Wed, 27 Feb 2019 14:10:00 +0100
  Active Jobs:         hello-1551273000
  Events:
    Type    Reason            Age   From                Message
    ----    ------            ----  ----                -------
    Normal  SuccessfulCreate  6m    cronjob-controller  Created job hello-1551272700
    Normal  SuccessfulCreate  1m    cronjob-controller  Created job hello-1551273000
    Normal  SawCompletedJob   16s   cronjob-controller  Saw completed job: hello-1551272700
  </code></pre>
  
  <p>kubectl describe job hello -v=5 -n jp-test</p>
  
  <pre><code>Name:           hello-1551276000
  Namespace:      jp-test
  Selector:       controller-uid=fa009d78-3a97-11e9-ae31-ac1f6b1a0950
  Labels:         controller-uid=fa009d78-3a97-11e9-ae31-ac1f6b1a0950
                  job-name=hello-1551276000
  Annotations:    &lt;none&gt;
  Controlled By:  CronJob/hello
  Parallelism:    1
  Completions:    1
  Start Time:     Wed, 27 Feb 2019 15:00:02 +0100
  Pods Statuses:  0 Running / 0 Succeeded / 0 Failed
  Pod Template:
    Labels:  controller-uid=fa009d78-3a97-11e9-ae31-ac1f6b1a0950
             job-name=hello-1551276000
    Containers:
     hello:
      Image:      busybox
      Port:       &lt;none&gt;
      Host Port:  &lt;none&gt;
      Args:
        /bin/sh
        -c
        kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
      Environment:  &lt;none&gt;
      Mounts:       &lt;none&gt;
    Volumes:        &lt;none&gt;
  Events:
    Type     Reason                Age              From            Message
    ----     ------                ----             ----            -------
    Normal   SuccessfulCreate      7m               job-controller  Created pod: hello-1551276000-lz4dp
    Normal   SuccessfulDelete      1m               job-controller  Deleted pod: hello-1551276000-lz4dp
    Warning  BackoffLimitExceeded  1m (x2 over 1m)  job-controller  Job has reached the specified backoff limit
  
  Name:           hello-1551276300
  Namespace:      jp-test
  Selector:       controller-uid=ad52e87a-3a98-11e9-ae31-ac1f6b1a0950
  Labels:         controller-uid=ad52e87a-3a98-11e9-ae31-ac1f6b1a0950
                  job-name=hello-1551276300
  Annotations:    &lt;none&gt;
  Controlled By:  CronJob/hello
  Parallelism:    1
  Completions:    1
  Start Time:     Wed, 27 Feb 2019 15:05:02 +0100
  Pods Statuses:  1 Running / 0 Succeeded / 0 Failed
  Pod Template:
    Labels:  controller-uid=ad52e87a-3a98-11e9-ae31-ac1f6b1a0950
             job-name=hello-1551276300
    Containers:
     hello:
      Image:      busybox
      Port:       &lt;none&gt;
      Host Port:  &lt;none&gt;
      Args:
        /bin/sh
        -c
        kubectl patch deployment runners -p '{"spec":{"template":{"spec":{"containers":[{"name":"jp-runner","env":[{"name":"START_TIME","value":"'$(date +%s)'"}]}]}}}}' -n jp-test
      Environment:  &lt;none&gt;
      Mounts:       &lt;none&gt;
    Volumes:        &lt;none&gt;
  Events:
    Type    Reason            Age   From            Message
    ----    ------            ----  ----            -------
    Normal  SuccessfulCreate  2m    job-controller  Created pod: hello-1551276300-8d5df
  </code></pre>