module ChefConfig::Mixin::TrainTransport

def credentials_file_path


4) user configuration ($HOME/.chef/target_credentials)
3) /etc/chef/TARGET_MODE_HOST/credentials
2) target_mode.credentials_file
1) environment variable CHEF_CREDENTIALS_FILE

Credentials file preference:

overriding it here.
ChefConfig::Mixin::Credentials.credentials_file_path is designed around knife,
def credentials_file_path
  tm_config = config.target_mode
  profile = tm_config.host
  env_file = ENV["CHEF_CREDENTIALS_FILE"]
  credentials_file =
    if env_file && File.exist?(env_file)
      env_file
    elsif tm_config.credentials_file && File.exist?(tm_config.credentials_file)
      tm_config.credentials_file
    elsif File.exist?(config.platform_specific_path("#{ChefConfig::Config.etc_chef_dir}/#{profile}/credentials"))
      config.platform_specific_path("#{ChefConfig::Config.etc_chef_dir}/#{profile}/credentials")
    else
      PathHelper.home(ChefUtils::Dist::Infra::USER_CONF_DIR, "target_credentials").freeze
    end
  raise ArgumentError, "No credentials file found for target '#{profile}'" unless credentials_file
  raise ArgumentError, "Credentials file specified for target mode does not exist: '#{credentials_file}'" unless File.exist?(credentials_file)
  logger.debug("Loading credentials file '#{credentials_file}' for target '#{profile}'")
  credentials_file
end