Sha256: 76045e6cac7ae0045d49990d8589534d85aa1ed15e4a3d94ee506e81fe0233ee

Contents?: true

Size: 650 Bytes

Versions: 17

Compression:

Stored size: 650 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

      # scope Kind so Secret and ConfigMap can have 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

17 entries across 17 versions & 1 rubygems

Version Path
kubes-0.9.3 lib/kubes/compiler/decorator/hashable.rb
kubes-0.9.2 lib/kubes/compiler/decorator/hashable.rb
kubes-0.9.1 lib/kubes/compiler/decorator/hashable.rb
kubes-0.9.0 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.10 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.9 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.8 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.7 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.6 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.5 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.4 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.3 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.2 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.1 lib/kubes/compiler/decorator/hashable.rb
kubes-0.8.0 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.10 lib/kubes/compiler/decorator/hashable.rb
kubes-0.7.9 lib/kubes/compiler/decorator/hashable.rb