module Utilities

Public Instance Methods

trigger_cronjob(namespace, cronjob_name, restart_policy = 'Never') click to toggle source

Trigger a cronjob

# File lib/ruby-kubernetes-controller/utilities.rb, line 38
def trigger_cronjob(namespace, cronjob_name, restart_policy = 'Never')
  cronjob_json = JSON.parse(get_single_namespaced_cronjob(namespace, cronjob_name))
  cronjob_json['spec']['jobTemplate']['spec']['template']['spec']['restartPolicy'] = restart_policy
  cronjob_json['metadata']['name'] += '-' + ('a'..'z').to_a.shuffle[0,8].join
  json_config =
      '{
        "kind": "Job",
        "apiVersion": "batch/v1",
        "metadata": {
          "name": ' + cronjob_json['metadata']['name'].to_json + '
        },
        "spec": {
          "template": {
            "spec": ' + cronjob_json['spec']['jobTemplate']['spec']['template']['spec'].to_json + '
          }
        }
      }'
  create_new_job(namespace, json_config)
end