mirror of https://github.com/k3s-io/k3s
Don't allow duplicate values in NodeAddresses
parent
e8ee20afff
commit
bf031fb082
|
@ -1405,3 +1405,19 @@ const (
|
|||
|
||||
PortHeader = "port"
|
||||
)
|
||||
|
||||
// Appends the NodeAddresses to the passed-by-pointer slice, only if they do not already exist
|
||||
func AddToNodeAddresses(addresses *[]NodeAddress, addAddresses ...NodeAddress) {
|
||||
for _, add := range addAddresses {
|
||||
exists := false
|
||||
for _, existing := range *addresses {
|
||||
if existing.Address == add.Address && existing.Type == add.Type {
|
||||
exists = true
|
||||
break
|
||||
}
|
||||
}
|
||||
if !exists {
|
||||
*addresses = append(*addresses, add)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -730,7 +730,7 @@ func init() {
|
|||
}
|
||||
|
||||
if in.HostIP != "" {
|
||||
out.Status.Addresses = append(out.Status.Addresses,
|
||||
newer.AddToNodeAddresses(&out.Status.Addresses,
|
||||
newer.NodeAddress{Type: newer.NodeLegacyHostIP, Address: in.HostIP})
|
||||
}
|
||||
out.Spec.PodCIDR = in.PodCIDR
|
||||
|
|
|
@ -650,7 +650,7 @@ func init() {
|
|||
}
|
||||
|
||||
if in.HostIP != "" {
|
||||
out.Status.Addresses = append(out.Status.Addresses,
|
||||
newer.AddToNodeAddresses(&out.Status.Addresses,
|
||||
newer.NodeAddress{Type: newer.NodeLegacyHostIP, Address: in.HostIP})
|
||||
}
|
||||
out.Spec.PodCIDR = in.PodCIDR
|
||||
|
|
|
@ -278,7 +278,7 @@ func (s *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList,
|
|||
glog.Errorf("error getting instance ip address for %s: %v", node.Name, err)
|
||||
} else {
|
||||
address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: hostIP.String()}
|
||||
node.Status.Addresses = append(node.Status.Addresses, address)
|
||||
api.AddToNodeAddresses(&node.Status.Addresses, address)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -287,7 +287,7 @@ func (s *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList,
|
|||
addr := net.ParseIP(node.Name)
|
||||
if addr != nil {
|
||||
address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: addr.String()}
|
||||
node.Status.Addresses = append(node.Status.Addresses, address)
|
||||
api.AddToNodeAddresses(&node.Status.Addresses, address)
|
||||
} else {
|
||||
addrs, err := lookupIP(node.Name)
|
||||
if err != nil {
|
||||
|
@ -296,7 +296,7 @@ func (s *NodeController) PopulateAddresses(nodes *api.NodeList) (*api.NodeList,
|
|||
glog.Errorf("No ip address for node %v", node.Name)
|
||||
} else {
|
||||
address := api.NodeAddress{Type: api.NodeLegacyHostIP, Address: addrs[0].String()}
|
||||
node.Status.Addresses = append(node.Status.Addresses, address)
|
||||
api.AddToNodeAddresses(&node.Status.Addresses, address)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue