in pkg/providers/v1/aws.go [1509:1555]
func (c *Cloud) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error) {
addresses := []v1.NodeAddress{}
for _, family := range c.cfg.Global.NodeIPFamilies {
switch family {
case "ipv4":
if c.selfAWSInstance.nodeName == name || len(name) == 0 {
addrs, err := c.ipv4AddressesFromMetadata()
if err != nil {
return nil, err
}
addresses = append(addresses, addrs...)
} else {
instance, err := c.getInstanceByNodeName(name)
if err != nil {
return nil, fmt.Errorf("getInstanceByNodeName failed for %q with %q", name, err)
}
addrs, err := extractIPv4NodeAddresses(instance)
if err != nil {
return nil, fmt.Errorf("getInstanceByNodeName failed for %q with %q", name, err)
}
addresses = append(addresses, addrs...)
}
case "ipv6":
if c.selfAWSInstance.nodeName == name || len(name) == 0 {
addrs, err := c.ipv6AddressesFromMetadata()
if err != nil {
return nil, err
}
addresses = append(addresses, addrs...)
} else {
instance, err := c.getInstanceByNodeName(name)
if err != nil {
return nil, fmt.Errorf("getInstanceByNodeName failed for %q with %q", name, err)
}
addrs, err := extractIPv6NodeAddresses(instance)
if err != nil {
return nil, fmt.Errorf("getInstanceByNodeName failed for %q with %q", name, err)
}
addresses = append(addresses, addrs...)
}
}
}
return addresses, nil
}