Sha256: d78798d14a282cbb682193afa1bd03fb048da2879d2b7aaa91240b9c08fa1c53

Contents?: true

Size: 1.22 KB

Versions: 10

Compression:

Stored size: 1.22 KB

Contents

module Kubes::Compiler::Shared::Helpers
  module SecretHelper
    # Meant to be used by plugins. IE:
    # google_secret_data and aws_secret_data
    def generic_secret_data(plugin_secret_method, name, options={})
      indent = options[:indent] || 2
      base64 = options[:base64].nil? ? true : options[:base64]

      text = send(plugin_secret_method, name, base64: false)
      path = create_generic_secret_data_temp_file(text)
      text = RenderMePretty.result(path, context: self)
      spacing = " " * indent
      lines = text.split("\n")
      new_lines = lines.map do |line|
        key, value = parse_env_like_line(line)
        value = encode64(value) if base64
        "#{spacing}#{key}: #{value}"
      end
      new_lines.join("\n")
    end

    def parse_env_like_line(line)
      key, *rest = line.split('=')
      value = rest.join('=')
      [key, value]
    end

    def encode64(v)
      Base64.strict_encode64(v.to_s).strip
    end
    alias_method :base64, :encode64

    def decode64(v)
      Base64.strict_decode64(v)
    end

  private
    def create_generic_secret_data_temp_file(text)
      path = "/tmp/kubes/text.erb"
      FileUtils.mkdir_p(File.dirname(path))
      IO.write(path, text)
      path
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
kubes-0.9.3 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.9.2 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.9.1 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.9.0 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.8.10 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.8.9 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.8.8 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.8.7 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.8.6 lib/kubes/compiler/shared/helpers/secret_helper.rb
kubes-0.8.5 lib/kubes/compiler/shared/helpers/secret_helper.rb