type NodePortAddresses … var ipv4LoopbackStart … // NewNodePortAddresses takes an IP family and the `--nodeport-addresses` value (which is // assumed to contain only valid CIDRs, potentially of both IP families) and returns a // NodePortAddresses object for the given family. If there are no CIDRs of the given // family then the CIDR "0.0.0.0/0" or "::/0" will be added (even if there are CIDRs of // the other family). func NewNodePortAddresses(family v1.IPFamily, cidrStrings []string) *NodePortAddresses { … } func (npa *NodePortAddresses) String() string { … } // MatchAll returns true if npa matches all node IPs (of npa's given family) func (npa *NodePortAddresses) MatchAll() bool { … } // GetNodeIPs return all matched node IP addresses for npa's CIDRs. If no matching // IPs are found, it returns an empty list. // NetworkInterfacer is injected for test purpose. func (npa *NodePortAddresses) GetNodeIPs(nw NetworkInterfacer) ([]net.IP, error) { … } // ContainsIPv4Loopback returns true if npa's CIDRs contain an IPv4 loopback address. func (npa *NodePortAddresses) ContainsIPv4Loopback() bool { … }