func()

in credential_provider/pod_identity_credential_provider.go [130:160]


func (p *PodIdentityCredentialProvider) GetAWSConfig() (*aws.Config, error) {
	// Get token for Pod Identity
	token, tokenErr := p.fetcher.FetchToken(context.Background())
	if tokenErr != nil {
		return nil, fmt.Errorf("failed to fetch token: %+v", tokenErr)
	}

	var config *aws.Config
	var configErr error
	if p.preferredEndpoint == preferenceIPv4 || p.preferredEndpoint == preferenceAuto {
		config, configErr = p.getAWSConfigFromPodIdentityAgent(token, podIdentityAgentEndpointIPv4)
		if configErr != nil {
			klog.Warningf("IPv4 endpoint attempt failed: %+v.", configErr)
		} else {
			return config, nil
		}
	}

	if p.preferredEndpoint == preferenceIPv6 || p.preferredEndpoint == preferenceAuto {
		config, configErr = p.getAWSConfigFromPodIdentityAgent(token, podIdentityAgentEndpointIPv6)
		if configErr != nil {
			klog.Warningf("IPv6 endpoint attempt failed: %+v.", configErr)
		}
	}

	if configErr != nil {
		return nil, fmt.Errorf("failed to get AWS config from pod identity agent: %+v", configErr)
	}

	return config, nil
}