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
}