Sha256: 57b956783e5bf7e067f638b98a1d17a9c8c702aa05ebb44afce43e79c0d302dc

Contents?: true

Size: 685 Bytes

Versions: 28

Compression:

Stored size: 685 Bytes

Contents

require 'digest'

module Kubes::Compiler::Decorator
  class Hashable < Base
    include Kubes::Compiler::Util::YamlDump

    def store
      # even though name is required, will allow logic to get the kubectl apply and kubectl to surface the required name error
      name = @data.dig('metadata','name')
      return @data unless name

      # puts "name #{name}" # TODO: scope Kind so Secret and ConfigMap can have the same name...
      md5 = md5(@data)
      @data['metadata']['name'] = "#{name}-#{md5}"
      Storage.store(@data['kind'], name, md5)
      @data
    end

    def md5(data)
      content = yaml_dump(data)
      Digest::MD5.hexdigest(content)[0..9]
    end
  end
end

Version data entries

28 entries across 28 versions & 1 rubygems

Version Path
kubes-0.7.8 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.7 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.6 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.5 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.4 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.3 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.2 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.1 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.0 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.8 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.7 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.6 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.5 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.4 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.3 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.2 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.1 lib/kubes/compiler/decorator/hashable.rb
kubes-0.6.0 lib/kubes/compiler/decorator/hashable.rb
kubes-0.5.1 lib/kubes/compiler/decorator/hashable.rb
kubes-0.5.0 lib/kubes/compiler/decorator/hashable.rb