class KubeQueue::ManifestBuilder

Attributes

job[R]

Public Class Methods

new(job) click to toggle source
# File lib/kube_queue/manifest_builder.rb, line 8
def initialize(job)
  @job = job
end

Public Instance Methods

build_cron_job(cron) click to toggle source
# File lib/kube_queue/manifest_builder.rb, line 24
def build_cron_job(cron)
  template = YAML.safe_load(ERB.new(job.read_template, nil, "-").result(binding))

  {
    apiVersion: "batch/v1beta1",
    kind: "CronJob",
    metadata: template["metadata"],
    spec: {
      startingDeadlineSeconds: job.job_spec.starting_deadline_seconds,
      concurrentPolicy: job.job_spec.concurrent_policy,
      schedule: cron,
      jobTemplate: {
        spec: template["spec"]
      }
    }
  }
end
build_job() click to toggle source
# File lib/kube_queue/manifest_builder.rb, line 20
def build_job
  YAML.safe_load(ERB.new(job.read_template, nil, "-").result(binding))
end
payload() click to toggle source
# File lib/kube_queue/manifest_builder.rb, line 16
def payload
  JSON.generate(job.serialized_payload, quirks_mode: true)
end
spec() click to toggle source
# File lib/kube_queue/manifest_builder.rb, line 12
def spec
  job.job_spec
end