def METHOD_NAME():
    """Load the esgf-pyclient configuration."""
    cfg = {
        # Arguments to
        # https://esgf-pyclient.readthedocs.io/en/latest/api.html#pyesgf.logon.LogonManager.logon
        'logon': {
            'interactive': False,
            'bootstrap': True,
        },
        # Arguments to
        # https://esgf-pyclient.readthedocs.io/en/latest/api.html#pyesgf.search.connection.SearchConnection
        'search_connection': {
            # List of available index nodes: https://esgf.llnl.gov/nodes.html
            # Be careful about the url, not all search urls have CMIP3 data?
            'urls': [
                'https://esgf.ceda.ac.uk/esg-search',
                'https://esgf-node.llnl.gov/esg-search',
                'https://esgf-data.dkrz.de/esg-search',
                'https://esgf-node.ipsl.upmc.fr/esg-search',
                'https://esg-dn1.nsc.liu.se/esg-search',
                'https://esgf.nci.org.au/esg-search',
                'https://esgf.nccs.nasa.gov/esg-search',
                'https://esgdata.gfdl.noaa.gov/esg-search',
            ],
            'distrib': True,
            'timeout': 120,
            'cache': '~/.esmvaltool/cache/pyesgf-search-results',
            'expire_after': 86400,  # cache expires after 1 day
        },
    }
    keyring_cfg = get_keyring_credentials()
    cfg['logon'].update(keyring_cfg)
    file_cfg = read_config_file()
    for section in ['logon', 'search_connection']:
        cfg[section].update(file_cfg.get(section, {}))
    if 'cache' in cfg['search_connection']:
        cache_file = Path(os.path.expandvars(
            cfg['search_connection']['cache'])).expanduser().absolute()
        cfg['search_connection']['cache'] = cache_file
        Path(cache_file).parent.mkdir(parents=True, exist_ok=True)
    missing_credentials = []
    for key in ['hostname', 'username', 'password']:
        if key not in cfg['logon']:
            missing_credentials.append(key)
    if missing_credentials and not cfg['logon'].get('interactive'):
        logger.warning(INSTRUCTIONS)
    return cfg