kubernetes/kops · error
error describing addresses: %v
Error message
error describing addresses: %v
What it means
ListVolumes calls ec2:DescribeAddresses to discover Elastic IPs associated with volumes, and wraps any DescribeAddresses failure in this error. It means the EC2 API rejected the address query entirely, so no volume listing can be produced. The underlying AWS error is embedded via %v.
Source
Thrown at pkg/resources/aws/aws.go:634
for _, tag := range volume.Tags {
name := aws.ToString(tag.Key)
ip := ""
if name == "kubernetes.io/master-ip" {
ip = aws.ToString(tag.Value)
}
if ip != "" {
elasticIPs[ip] = true
}
}
}
if len(elasticIPs) != 0 {
klog.V(2).Infof("Querying EC2 Elastic IPs")
request := &ec2.DescribeAddressesInput{}
response, err := c.EC2().DescribeAddresses(ctx, request)
if err != nil {
return nil, fmt.Errorf("error describing addresses: %v", err)
}
for _, address := range response.Addresses {
ip := aws.ToString(address.PublicIp)
if !elasticIPs[ip] {
continue
}
resourceTrackers = append(resourceTrackers, buildElasticIPResource(address, false, clusterName))
}
}
return resourceTrackers, nil
}
func DescribeVolumes(cloud fi.Cloud) ([]ec2types.Volume, error) {
ctx := context.TODO()
c := cloud.(awsup.AWSCloud)View on GitHub (pinned to 4c8573c808)
Solutions
- Verify AWS credentials and region (kops set-cluster, env vars, ~/.aws/credentials) are valid.
- Add ec2:DescribeAddresses to the caller's IAM policy.
- Retry with backoff if the error is RequestLimitExceeded/throttling.
- Check network/proxy connectivity to the EC2 endpoint for the configured region.
Defensive patterns
Strategy: try-catch
Validate before calling
creds, err := config.LoadDefaultConfig(ctx)
if err != nil { return fmt.Errorf("no valid AWS config: %w", err) }
_, err = creds.Credentials.Retrieve(ctx)
if err != nil { return fmt.Errorf("AWS credentials not resolvable: %w", err) } Type guard
func isAuthError(err error) bool { var ae smithy.APIError; return errors.As(err, &ae) && (ae.ErrorCode() == "AuthFailure" || ae.ErrorCode() == "UnauthorizedOperation") } Try / catch
if err != nil {
if isThrottling(err) { backoffRetry(op) }
if isAuthError(err) { return fmt.Errorf("check IAM ec2:DescribeAddresses: %w", err) }
return err
} Prevention
- Run `aws sts get-caller-identity` to validate credentials before kops operations.
- Keep ec2:DescribeAddresses in the kops instance/user IAM policy.
- Set explicit region instead of relying on defaults.
- Add jittered retries for EC2 read calls in automation loops.
When it happens
Trigger: ec2.DescribeAddresses returns any error: throttling (RequestLimitExceeded), AuthFailure/UnauthorizedOperation from IAM, invalid credentials, or a regional endpoint/network failure.
Common situations: Expired or missing AWS credentials (env vars/profile/instance role) during cluster listing; rate limiting when enumerating many clusters; IAM policy lacking ec2:DescribeAddresses; wrong region configuration.
Related errors
- error from DescribeAddresses: %v
- error listing ElasticIPs: %v
- describing instance for arn %q
- error terminating instances: %v
- error describing instances: %v
AI-assisted analysis of kubernetes/kops@4c8573c808 (2026-09-05).
Data as JSON: /api/errors/7984d87f4ee752b7.
Report an issue: GitHub.