mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-28 05:57:25 +00:00
Merge pull request #11892 from wingedkiwi/master
SSH tunnels fallback to LegacyHostIP
This commit is contained in:
commit
ff18190ac5
@ -758,12 +758,20 @@ func (m *Master) api_v1() *apiserver.APIGroupVersion {
|
|||||||
return version
|
return version
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// findExternalAddress returns ExternalIP of provided node with fallback to LegacyHostIP.
|
||||||
func findExternalAddress(node *api.Node) (string, error) {
|
func findExternalAddress(node *api.Node) (string, error) {
|
||||||
|
var fallback string
|
||||||
for ix := range node.Status.Addresses {
|
for ix := range node.Status.Addresses {
|
||||||
addr := &node.Status.Addresses[ix]
|
addr := &node.Status.Addresses[ix]
|
||||||
if addr.Type == api.NodeExternalIP {
|
if addr.Type == api.NodeExternalIP {
|
||||||
return addr.Address, nil
|
return addr.Address, nil
|
||||||
}
|
}
|
||||||
|
if fallback == "" && addr.Type == api.NodeLegacyHostIP {
|
||||||
|
fallback = addr.Address
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if fallback != "" {
|
||||||
|
return fallback, nil
|
||||||
}
|
}
|
||||||
return "", fmt.Errorf("Couldn't find external address: %v", node)
|
return "", fmt.Errorf("Couldn't find external address: %v", node)
|
||||||
}
|
}
|
||||||
|
@ -46,3 +46,27 @@ func TestGetServersToValidate(t *testing.T) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestFindExternalAddress(t *testing.T) {
|
||||||
|
expectedIP := "172.0.0.1"
|
||||||
|
|
||||||
|
nodes := []*api.Node{new(api.Node), new(api.Node), new(api.Node)}
|
||||||
|
nodes[0].Status.Addresses = []api.NodeAddress{{"ExternalIP", expectedIP}}
|
||||||
|
nodes[1].Status.Addresses = []api.NodeAddress{{"LegacyHostIP", expectedIP}}
|
||||||
|
nodes[2].Status.Addresses = []api.NodeAddress{{"ExternalIP", expectedIP}, {"LegacyHostIP", "172.0.0.2"}}
|
||||||
|
|
||||||
|
for _, node := range nodes {
|
||||||
|
ip, err := findExternalAddress(node)
|
||||||
|
if err != nil {
|
||||||
|
t.Errorf("error getting node external address: %s", err)
|
||||||
|
}
|
||||||
|
if ip != expectedIP {
|
||||||
|
t.Errorf("expected ip to be %s, but was %s", expectedIP, ip)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_, err := findExternalAddress(new(api.Node))
|
||||||
|
if err == nil {
|
||||||
|
t.Errorf("expected findExternalAddress to fail on a node with missing ip information")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user