Merge pull request #1136 from aidanharan/secrets-files-not-found-message

Updated secrets error message if secrets files do not exist
This commit is contained in:
Donal McBreen
2024-10-23 11:14:41 +01:00
committed by GitHub
2 changed files with 25 additions and 6 deletions

View File

@@ -1,13 +1,10 @@
require "dotenv"
class Kamal::Secrets
attr_reader :secrets_files
Kamal::Secrets::Dotenv::InlineCommandSubstitution.install!
def initialize(destination: nil)
@secrets_files = \
[ ".kamal/secrets-common", ".kamal/secrets#{(".#{destination}" if destination)}" ].select { |f| File.exist?(f) }
@destination = destination
@mutex = Mutex.new
end
@@ -17,10 +14,10 @@ class Kamal::Secrets
secrets.fetch(key)
end
rescue KeyError
if secrets_files
if secrets_files.present?
raise Kamal::ConfigurationError, "Secret '#{key}' not found in #{secrets_files.join(", ")}"
else
raise Kamal::ConfigurationError, "Secret '#{key}' not found, no secret files provided"
raise Kamal::ConfigurationError, "Secret '#{key}' not found, no secret files (#{secrets_filenames.join(", ")}) provided"
end
end
@@ -28,10 +25,18 @@ class Kamal::Secrets
secrets
end
def secrets_files
@secrets_files ||= secrets_filenames.select { |f| File.exist?(f) }
end
private
def secrets
@secrets ||= secrets_files.inject({}) do |secrets, secrets_file|
secrets.merge!(::Dotenv.parse(secrets_file))
end
end
def secrets_filenames
[ ".kamal/secrets-common", ".kamal/secrets#{(".#{@destination}" if @destination)}" ]
end
end