code: func (m *metadata) NodeAddresses(ctx context.Context, name types.NodeName) ([]v1.NodeAddress, error) {
  	externalIP, err := m.get(metadataTypeExternalIP)
  	if err != nil {
  		return nil, fmt.Errorf("could not get external IP: %v", err)
  	}
  
  	internalIP, err := m.get(metadataTypeInternalIP)
  	if err != nil {
  		return nil, fmt.Errorf("could not get internal IP: %v", err)
  	}
  
  	addresses := []v1.NodeAddress{
  		{Type: v1.NodeExternalIP, Address: externalIP},
  		{Type: v1.NodeInternalIP, Address: internalIP},
  	}
  
  	hostname, err := m.get(metadataTypeHostname)
  	if err != nil {
  		return nil, fmt.Errorf("could not get hostname: %v", err)
  	}
  	if hostname != "" {
  		addresses = append(addresses, v1.NodeAddress{Type: v1.NodeHostName, Address: hostname})
  	}
  
  	return addresses, nil
  }
docs: // NodeAddresses returns the addresses of the specified instance.