Unverified Commit b23955e8 authored by Malte Starostik's avatar Malte Starostik Committed by GitHub

Fix URL pruning when joining an etcd member (#3832)

* Fix URL pruning when joining an etcd member Problem: Existing member clientURLs were checked if they contain the joining node's IP. In some edge cases this would prune valid URLs when the joining IP is a substring match of the only existing member's IP. Because of this, it was impossible to e.g. join 10.0.0.2 to an existing node that has an IP of 10.0.0.2X or 10.0.0.2XX: level=fatal msg="starting kubernetes: preparing server: start managed database: joining etcd cluster: etcdclient: no available endpoints" Solution: Fixed by properly parsing the URLs and comparing the IPs for equality instead of substring match. Signed-off-by: 's avatarMalte Starostik <info@stellaware.de>
parent e87204c0
......@@ -750,8 +750,12 @@ members:
if member.IsLearner {
continue
}
for _, url := range member.ClientURLs {
if strings.Contains(url, ip) {
for _, clientURL := range member.ClientURLs {
u, err := url.Parse(clientURL)
if err != nil {
continue
}
if u.Hostname() == ip {
continue members
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment