Sha256: 798d176072b9129fb88b25eb6191b093e5b6ec13a890890e0ea1f63cae76eb0e

Contents?: true

Size: 1.85 KB

Versions: 3

Compression:

Stored size: 1.85 KB

Contents

module Pfab
  module Templates
    class Cron < Base
      def write_to(f)
        f << YAML.dump(job.deep_stringify_keys)
      end

      def job
        {
          apiVersion: "batch/v1beta1",
          kind: "CronJob",
          metadata: {
            name: "#{@data['deployed_name']}-#{@data['sha']}",
            namespace: @data['env'],
            labels: {
              application: @data['application'],
              "deployed-name" => @data['deployed_name'],
              "application-type" => "job",
            }
          },
          spec: {
            schedule: get("schedule"),
            jobTemplate: {
              metadata: {
                name: "#{@data['deployed_name']}-#{@data['sha']}",
                namespace: @data['env'],
                labels: {
                  application: @data['application'],
                  "deployed-name" => @data['deployed_name'],
                  "application-type" => "cron",
                },
              },
              spec: {
                template: {
                  metadata: {
                    labels: {
                      application: @data['application'],
                      "deployed-name" => @data['deployed_name'],
                      "application-type" => "cron",
                    },
                  },
                  spec: {

                    containers: [
                      {
                        image: image_name,
                        name: @data['deployed_name'],
                        command: app_vars["command"].split(" "),
                        env: env_vars,
                        resources: resources,
                      },
                    ],
                    restartPolicy: "Never",
                  },
                },
                backoffLimit: 2,
              },
            },
          },
        }
      end
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
pfab-0.8.0 lib/pfab/templates/cron.rb
pfab-0.7.0 lib/pfab/templates/cron.rb
pfab-0.6.0 lib/pfab/templates/cron.rb