class ContainerConfig::Provider::SecretVolume

Secret volume mount config value provider

Constants

DEFAULT_SECRET_PATH

Default secret volume mount path used when globbing secret files

Attributes

default_directory[RW]
directory[RW]

Public Class Methods

new() click to toggle source

Initializes a new ContainerConfig::Provider::SecretVolume

Calls superclass method
# File lib/container_config/provider/secret_volume.rb, line 22
def initialize
  super
  @default_directory = DEFAULT_SECRET_PATH
  @directory = nil
end

Public Instance Methods

load(key, *dig_keys, **options) click to toggle source

Loads a secret volume mount configuration setting

@param [String] key Configuration key to load @param [Array] dig_keys Variable keys to use to load from providers that accept a dig structure

defaults to the lowercase key split by underscores
"MY_PASSWORD" => ["my", "password"]

@param [Hash] options Options Hash @option options [String] :secret_mount_directory directory where secret files are mounted

@return [Object] configuration setting value

Calls superclass method ContainerConfig::Provider::Base#load
# File lib/container_config/provider/secret_volume.rb, line 40
def load(key, *dig_keys, **options)
  super
  secret_file = Dir.glob(File.join(secret_mount_directory(**options), "**", key)).first
  return if secret_file.nil? || !File.exist?(secret_file)

  File.read(secret_file)
end
name() click to toggle source

@see ContainerConfig::Provider::Base#name

# File lib/container_config/provider/secret_volume.rb, line 15
def name
  "Secret Volume"
end

Private Instance Methods

secret_mount_directory(options) click to toggle source
# File lib/container_config/provider/secret_volume.rb, line 50
def secret_mount_directory(options)
  options[:secret_mount_directory] ||
    directory ||
    ENV["SECRET_MOUNT_DIRECTORY"] ||
    default_directory
end