module Resque::Kubernetes::ManifestConformance
Provides functions to ensure a manifest conforms to a job specification and includes details needed for resque-kubernetes
Public Instance Methods
add_labels(manifest)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 15 def add_labels(manifest) manifest.deep_add(%w[metadata labels resque-kubernetes], "job") manifest["metadata"]["labels"]["resque-kubernetes-group"] = manifest["metadata"]["name"] manifest.deep_add(%w[spec template metadata labels resque-kubernetes], "pod") end
adjust_manifest(manifest)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 8 def adjust_manifest(manifest) add_labels(manifest) ensure_term_on_empty(manifest) ensure_reset_policy(manifest) update_job_name(manifest) end
container_term_on_empty(container)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 29 def container_term_on_empty(container) container["env"] ||= [] term_on_empty = container["env"].find { |env| env["name"] == "INTERVAL" } unless term_on_empty term_on_empty = {"name" => "INTERVAL"} container["env"] << term_on_empty end term_on_empty["value"] = "0" end
ensure_namespace(manifest)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 43 def ensure_namespace(manifest) manifest["metadata"]["namespace"] ||= @default_namespace end
ensure_reset_policy(manifest)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 39 def ensure_reset_policy(manifest) manifest["spec"]["template"]["spec"]["restartPolicy"] ||= "OnFailure" end
ensure_term_on_empty(manifest)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 21 def ensure_term_on_empty(manifest) manifest["spec"]["template"]["spec"] ||= {} manifest["spec"]["template"]["spec"]["containers"] ||= [] manifest["spec"]["template"]["spec"]["containers"].each do |container| container_term_on_empty(container) end end
update_job_name(manifest)
click to toggle source
# File lib/resque/kubernetes/manifest_conformance.rb, line 47 def update_job_name(manifest) manifest["metadata"]["name"] += "-#{DNSSafeRandom.random_chars}" end