Skip to content

Commit

Permalink
IPv6: Bootstrap extracting of addresses
Browse files Browse the repository at this point in the history
For Pilot discovery, Zipkin, and statsd addresses, accept IPv6 values,
which will have square brackets.
  • Loading branch information
pmichali committed Mar 5, 2018
1 parent 0502713 commit e7e5d48
Showing 1 changed file with 16 additions and 7 deletions.
23 changes: 16 additions & 7 deletions pkg/bootstrap/bootstrap_config.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ package bootstrap
import (
"fmt"
"io/ioutil"
"net"
"os"
"path"
"strings"
"text/template"

meshconfig "istio.io/api/mesh/v1alpha1"
Expand Down Expand Up @@ -72,16 +72,25 @@ func WriteBootstrap(config *meshconfig.ProxyConfig, epoch int, pilotSAN []string
opts["refresh_delay"] = fmt.Sprintf("{\"seconds\": %d, \"nanos\": %d}", config.DiscoveryRefreshDelay.Seconds, config.DiscoveryRefreshDelay.Nanos)
opts["connect_timeout"] = fmt.Sprintf("{\"seconds\": %d, \"nanos\": %d}", config.ConnectTimeout.Seconds, config.ConnectTimeout.Nanos)

addPort := strings.Split(config.DiscoveryAddress, ":")
opts["pilot_address"] = fmt.Sprintf("{\"address\": \"%s\", \"port_value\": %s}", addPort[0], addPort[1])
h, p, err := net.SplitHostPort(config.DiscoveryAddress)
if err != nil {
return "", fmt.Errorf("PCM: Unable to parse Discovery address %q: %s", config.DiscoveryAddress, err.Error())
}
opts["pilot_address"] = fmt.Sprintf("{\"address\": \"%s\", \"port_value\": %s}", h, p)

if config.ZipkinAddress != "" {
addPort = strings.Split(config.ZipkinAddress, ":")
opts["zipkin"] = fmt.Sprintf("{\"address\": \"%s\", \"port_value\": %s}", addPort[0], addPort[1])
h, p, err := net.SplitHostPort(config.ZipkinAddress)
if err != nil {
return "", fmt.Errorf("PCM: Unable to parse Zipkin address %q: %s", config.ZipkinAddress, err.Error())
}
opts["zipkin"] = fmt.Sprintf("{\"address\": \"%s\", \"port_value\": %s}", h, p)
}
if config.StatsdUdpAddress != "" {
addPort = strings.Split(config.StatsdUdpAddress, ":")
opts["statsd"] = fmt.Sprintf("{\"address\": \"%s\", \"port_value\": %s}", addPort[0], addPort[1])
h, p, err := net.SplitHostPort(config.StatsdUdpAddress)
if err != nil {
return "", fmt.Errorf("PCM: Unable to parse StatsdUdp address %q: %s", config.StatsdUdpAddress, err.Error())
}
opts["statsd"] = fmt.Sprintf("{\"address\": \"%s\", \"port_value\": %s}", h, p)
}
fout, err := os.Create(fname)
if err != nil {
Expand Down

0 comments on commit e7e5d48

Please sign in to comment.