Class: BerkeleyLibrary::Docker::Secret

Inherits:
Object
  • Object
show all
Extended by:
Logging
Defined in:
lib/berkeley_library/docker/secret.rb

Constant Summary collapse

PATH_OVERRIDE_ENVVAR =
'UCBLIB_SECRETS_PATTERN'
DEFAULT_SECRETS_PATTERN =
'/run/secrets/*'

Class Method Summary collapse

Methods included from Logging

logger

Class Method Details

.load_secrets!(glob = nil, reload = false) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/berkeley_library/docker/secret.rb', line 14

def load_secrets!(glob = nil, reload = false)
  glob = normalize_glob(glob)

  files_from(glob).each_with_object({}) do |path, new_secrets|
    secret_name = File.basename(path)
    secret_value = File.read(path).strip

    ENV[secret_name] = secret_value

    new_secrets[secret_name] = {
      name: secret_name,
      file: path,
      checksum: "sha256:#{Digest::SHA256.hexdigest(secret_value)}",
      glob: glob,
      timestamp: Time.now.to_i,
    }
  end
end