mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-25 12:43:23 +00:00
Merge pull request #70805 from danwinship/cloud-node-ip
Fix a CloudProvider-vs-nodeIP edge case
This commit is contained in:
commit
56e88f5b47
@ -91,17 +91,16 @@ func NodeAddress(nodeIP net.IP, // typically Kubelet.nodeIP
|
|||||||
if nodeIP != nil {
|
if nodeIP != nil {
|
||||||
enforcedNodeAddresses := []v1.NodeAddress{}
|
enforcedNodeAddresses := []v1.NodeAddress{}
|
||||||
|
|
||||||
var nodeIPType v1.NodeAddressType
|
nodeIPTypes := make(map[v1.NodeAddressType]bool)
|
||||||
for _, nodeAddress := range nodeAddresses {
|
for _, nodeAddress := range nodeAddresses {
|
||||||
if nodeAddress.Address == nodeIP.String() {
|
if nodeAddress.Address == nodeIP.String() {
|
||||||
enforcedNodeAddresses = append(enforcedNodeAddresses, v1.NodeAddress{Type: nodeAddress.Type, Address: nodeAddress.Address})
|
enforcedNodeAddresses = append(enforcedNodeAddresses, v1.NodeAddress{Type: nodeAddress.Type, Address: nodeAddress.Address})
|
||||||
nodeIPType = nodeAddress.Type
|
nodeIPTypes[nodeAddress.Type] = true
|
||||||
break
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if len(enforcedNodeAddresses) > 0 {
|
if len(enforcedNodeAddresses) > 0 {
|
||||||
for _, nodeAddress := range nodeAddresses {
|
for _, nodeAddress := range nodeAddresses {
|
||||||
if nodeAddress.Type != nodeIPType && nodeAddress.Type != v1.NodeHostName {
|
if !nodeIPTypes[nodeAddress.Type] && nodeAddress.Type != v1.NodeHostName {
|
||||||
enforcedNodeAddresses = append(enforcedNodeAddresses, v1.NodeAddress{Type: nodeAddress.Type, Address: nodeAddress.Address})
|
enforcedNodeAddresses = append(enforcedNodeAddresses, v1.NodeAddress{Type: nodeAddress.Type, Address: nodeAddress.Address})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -95,6 +95,8 @@ func TestNodeAddress(t *testing.T) {
|
|||||||
name: "InternalIP and ExternalIP are the same",
|
name: "InternalIP and ExternalIP are the same",
|
||||||
nodeIP: net.ParseIP("55.55.55.55"),
|
nodeIP: net.ParseIP("55.55.55.55"),
|
||||||
nodeAddresses: []v1.NodeAddress{
|
nodeAddresses: []v1.NodeAddress{
|
||||||
|
{Type: v1.NodeInternalIP, Address: "44.44.44.44"},
|
||||||
|
{Type: v1.NodeExternalIP, Address: "44.44.44.44"},
|
||||||
{Type: v1.NodeInternalIP, Address: "55.55.55.55"},
|
{Type: v1.NodeInternalIP, Address: "55.55.55.55"},
|
||||||
{Type: v1.NodeExternalIP, Address: "55.55.55.55"},
|
{Type: v1.NodeExternalIP, Address: "55.55.55.55"},
|
||||||
{Type: v1.NodeHostName, Address: testKubeletHostname},
|
{Type: v1.NodeHostName, Address: testKubeletHostname},
|
||||||
|
Loading…
Reference in New Issue
Block a user