From c258d4df84089b08b9cbd37b1dee4b00576a2532 Mon Sep 17 00:00:00 2001 From: Davanum Srinivas Date: Thu, 4 Jan 2018 14:00:04 -0500 Subject: [PATCH] Fix ExternalAddress parsing problem under IPv6 `!strings.Contains(host, ":")` will fail miserably under ipv6 --- staging/src/k8s.io/apiserver/pkg/server/config.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/staging/src/k8s.io/apiserver/pkg/server/config.go b/staging/src/k8s.io/apiserver/pkg/server/config.go index fe912a94d24..35acaa8125e 100644 --- a/staging/src/k8s.io/apiserver/pkg/server/config.go +++ b/staging/src/k8s.io/apiserver/pkg/server/config.go @@ -342,10 +342,10 @@ func (c *Config) Complete(informers informers.SharedInformerFactory) CompletedCo if host == "" && c.PublicAddress != nil { host = c.PublicAddress.String() } - if !strings.Contains(host, ":") { - if c.ReadWritePort != 0 { - host = net.JoinHostPort(host, strconv.Itoa(c.ReadWritePort)) - } + + // if there is no port, and we have a ReadWritePort, use that + if _, _, err := net.SplitHostPort(host); err != nil && c.ReadWritePort != 0 { + host = net.JoinHostPort(host, strconv.Itoa(c.ReadWritePort)) } c.ExternalAddress = host