Sha256: e52a3f15e802bccfd42fa6b4ce3b9d03896310db5e80588ff0f937271826a4e8

Contents?: true

Size: 1.17 KB

Versions: 4

Compression:

Stored size: 1.17 KB

Contents

class Kubes::Compiler
  module Layering
    def pre_layers
      return [] if Kubes.kustomize?

      ext = File.extname(@path)
      kind = File.basename(@path).sub(ext,'') # IE: deployment
      kind = kind.pluralize if @block_form
      role = @path.split('/')[-2] # .kubes/resources/web/deployment.yaml
      layers = [
        "base/all",
        "base/all/#{Kubes.env}",
        "base/#{kind}",
        "base/#{kind}/#{Kubes.env}",
        "#{role}/all",
      ]
      layers = add_exts(layers)
      layers.map! do |layer|
        "#{Kubes.root}/.kubes/resources/#{layer}"
      end
      layers.select { |layer| File.exist?(layer) }
    end

    def post_layers
      return [] if Kubes.kustomize?

      ext = File.extname(@path)
      kind_path = @path.sub(ext,'')

      layers = [
        "base",
        Kubes.env.to_s
      ]
      layers = add_exts(layers)
      layers.map! do |layer|
        "#{kind_path}/#{layer}"
      end
      layers.select { |layer| File.exist?(layer) }
    end

    def add_exts(*layers)
      layers.flatten.map do |layer|
        [
          "#{layer}.rb",
          "#{layer}.yaml",
          "#{layer}.yml",
        ]
      end.flatten
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
kubes-0.7.10 lib/kubes/compiler/layering.rb
kubes-0.7.9 lib/kubes/compiler/layering.rb
kubes-0.7.8 lib/kubes/compiler/layering.rb
kubes-0.7.7 lib/kubes/compiler/layering.rb