Module: Utilities

Instance Method Summary collapse

Methods included from CronJobs

#create_new_cronjob, #delete_cronjob, #get_all_cronjobs, #get_all_namespaced_cronjobs, #get_single_namespaced_cronjob, #patch_cronjob, #update_namespaced_cronjob

Methods included from Generic

#check_valid_json, #prepareGenericRequest, #prepareGenericRequestOptions, #prepareURI, #prepareURIWithParams, #yaml_file_to_json

Methods included from Jobs

#create_new_job, #delete_job, #get_all_jobs, #get_all_namespaced_jobs, #get_single_namespaced_job, #patch_job, #update_namespaced_job

Methods included from PersistentVolumeClaims

#create_new_persistentvolumeclaim, #delete_persistentvolumeclaim, #get_all_namespaced_persistentvolumeclaims, #get_all_persistentvolumeclaims, #get_single_namespaced_persistentvolumeclaim, #patch_persistentvolumeclaim, #update_namespaced_persistentvolumeclaim

Methods included from PersistentVolumes

#create_new_persistentvolume, #delete_persistentvolume, #get_all_persistentvolumes, #get_single_persistentvolume, #patch_persistentvolume, #update_namespaced_persistentvolume

Methods included from ConfigMaps

#create_new_configmap, #delete_configmap, #get_all_configmaps, #get_all_namespaced_configmaps, #get_single_namespaced_configmap, #patch_configmap, #update_configmap

Methods included from ReplicaSets

#create_new_replicaset, #delete_replicaset, #get_all_namespaced_replicasets, #get_all_replicasets, #get_single_namespaced_replicaset, #patch_replicaset, #update_namespaced_replicaset

Methods included from Deployments

#create_new_deployment, #delete_deployment, #get_all_deployments, #get_all_namespaced_deployments, #get_single_namespaced_deployment, #patch_deployment, #update_namespaced_deployment

Methods included from Services

#create_new_service, #delete_service, #get_all_namespaced_services, #get_all_services, #get_single_namespaced_service, #patch_service, #update_namespaced_service

Methods included from Pods

#create_new_pod, #delete_pod, #get_all_namespaced_pods, #get_all_namespaced_pods_with_field_selector, #get_all_namespaced_pods_with_label_selector, #get_all_pods, #get_single_namespaced_pod, #patch_pod, #update_namespaced_pod

Methods included from Endpoints

#create_new_endpoint, #delete_endpoint, #get_all_endpoints, #get_all_namespaced_endpoints, #get_single_namespaced_endpoint, #patch_endpoint, #update_namespaced_endpoint

Methods included from Nodes

#get_nodes

Methods included from Ingresses

#create_new_ingress, #delete_ingress, #get_all_ingresses, #get_all_namespaced_ingresses, #get_single_namespaced_ingress, #patch_ingress, #update_namespaced_ingress

Methods included from Namespaces

#create_new_namespace, #delete_namespace, #get_all_namespaces, #patch_namespace, #update_namespace

Instance Method Details

#trigger_cronjob(namespace, cronjob_name, restart_policy = 'Never') ⇒ Object

Trigger a cronjob



38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# 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