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