Sha256: 3d03133cd0b51ff1b50348fae8de8b9e44553abe08f2f405f4f4f8bfa870dfb6

Contents?: true

Size: 1.4 KB

Versions: 25

Compression:

Stored size: 1.4 KB

Contents

require 'pry'
module Pfab
  class Yamls

    def initialize(apps:, application_yaml:, image_name:, env:, sha:, config:)
      @apps = apps
      @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
      }
    end

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

    def data_for(app, props)
      data = @base_data.clone
      data['props'] = props
      data['deployed_name'] = app
      data
    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

25 entries across 25 versions & 1 rubygems

Version Path
pfab-0.38.0 lib/pfab/yamls.rb
pfab-0.37.0 lib/pfab/yamls.rb
pfab-0.36.0 lib/pfab/yamls.rb
pfab-0.35.0 lib/pfab/yamls.rb
pfab-0.34.0 lib/pfab/yamls.rb
pfab-0.33.0 lib/pfab/yamls.rb
pfab-0.32.0 lib/pfab/yamls.rb
pfab-0.31.0 lib/pfab/yamls.rb
pfab-0.30.0 lib/pfab/yamls.rb
pfab-0.29.0 lib/pfab/yamls.rb
pfab-0.28.0 lib/pfab/yamls.rb
pfab-0.27.0 lib/pfab/yamls.rb
pfab-0.26.0 lib/pfab/yamls.rb
pfab-0.25.0 lib/pfab/yamls.rb
pfab-0.24.0 lib/pfab/yamls.rb
pfab-0.23.0 lib/pfab/yamls.rb
pfab-0.22.0 lib/pfab/yamls.rb
pfab-0.21.0 lib/pfab/yamls.rb
pfab-0.20.0 lib/pfab/yamls.rb
pfab-0.19.0 lib/pfab/yamls.rb