Sha256: 1b6a20d286c1a5406cc432e9837a18b91e42ebbf27bc1f0620d770d2d2d9d719

Contents?: true

Size: 1.83 KB

Versions: 17

Compression:

Stored size: 1.83 KB

Contents

require 'pry'
module Pfab
  class Yamls

    def initialize(apps:, application_yaml:, image_name:, env:, sha:, config:, application_yaml_hash:)
      @apps = apps
      namespace = application_yaml.dig(env.to_s, "namespace") || application_yaml["namespace"]
      raise "No namespace founds" unless namespace
      @base_data = {
        "env" => env.to_s,
        'image_name' => image_name,
        'sha' => sha,
        'container_repository' => config["container.repository"],
        'config' => config,
        'application' => application_yaml["name"],
        'application_yaml' => application_yaml,
        'namespace' => namespace,
        'application_yaml_hash' => application_yaml_hash
      }
    end

    def env_vars(app)
      template = Pfab::Templates::Base.new(data_for(app, @apps[app]))
      template.env_vars
    end

    def env_from(app)
      template = Pfab::Templates::Base.new(data_for(app, @apps[app]))
      template.env_from
    end

    def data_for(app, props)
      data = @base_data.clone
      data['props'] = props
      data['deployed_name'] = app
      data
    end

    def namespace
      @base_data['namespace']
    end

    def generate(keys)
      keys.each do |key|
        props = @apps[key]
        data = data_for(key, props)

        filename = ".application-k8s-#{data["env"]}-#{key}.yaml"
        File.open(filename, "w") do |f|
          case props[:deployable_type]
          when "web" then
            processed = Pfab::Templates::Web.new(data).write_to(f)
          when "job" then
            processed = Pfab::Templates::Job.new(data).write_to(f)
          when "daemon" then
            processed = Pfab::Templates::Daemon.new(data).write_to(f)
          when "cron" then
            processed = Pfab::Templates::Cron.new(data).write_to(f)
          end
        end
        filename
      end
    end
  end
end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
pfab-0.58.13 lib/pfab/yamls.rb
pfab-0.58.12 lib/pfab/yamls.rb
pfab-0.58.11 lib/pfab/yamls.rb
pfab-0.58.10 lib/pfab/yamls.rb
pfab-0.58.9 lib/pfab/yamls.rb
pfab-0.58.8 lib/pfab/yamls.rb
pfab-0.58.7 lib/pfab/yamls.rb
pfab-0.58.6 lib/pfab/yamls.rb
pfab-0.58.5 lib/pfab/yamls.rb
pfab-0.58.4 lib/pfab/yamls.rb
pfab-0.58.3 lib/pfab/yamls.rb
pfab-0.58.2 lib/pfab/yamls.rb
pfab-0.58.1 lib/pfab/yamls.rb
pfab-0.58.0 lib/pfab/yamls.rb
pfab-0.57.1 lib/pfab/yamls.rb
pfab-0.57.0 lib/pfab/yamls.rb
pfab-0.56.0 lib/pfab/yamls.rb