diff --git a/Procfile b/Procfile index 32b92a8e0..b75fd1a55 100644 --- a/Procfile +++ b/Procfile @@ -2,4 +2,4 @@ etcd1: bin/etcd -name infra1 -listen-client-urls http://localhost:4001 -advertise-client-urls http://localhost:4001 -listen-peer-urls http://localhost:7001 -initial-advertise-peer-urls http://localhost:7001 -initial-cluster-token etcd-cluster-1 -initial-cluster 'infra1=http://localhost:7001,infra2=http://localhost:7002,infra3=http://localhost:7003' -initial-cluster-state new etcd2: bin/etcd -name infra2 -listen-client-urls http://localhost:4002 -advertise-client-urls http://localhost:4002 -listen-peer-urls http://localhost:7002 -initial-advertise-peer-urls http://localhost:7002 -initial-cluster-token etcd-cluster-1 -initial-cluster 'infra1=http://localhost:7001,infra2=http://localhost:7002,infra3=http://localhost:7003' -initial-cluster-state new etcd3: bin/etcd -name infra3 -listen-client-urls http://localhost:4003 -advertise-client-urls http://localhost:4003 -listen-peer-urls http://localhost:7003 -initial-advertise-peer-urls http://localhost:7003 -initial-cluster-token etcd-cluster-1 -initial-cluster 'infra1=http://localhost:7001,infra2=http://localhost:7002,infra3=http://localhost:7003' -initial-cluster-state new -proxy: bin/etcd -name proxy1 -proxy=on -bind-addr 127.0.0.1:8080 -initial-cluster 'infra1=http://localhost:7001,infra2=http://localhost:7002,infra3=http://localhost:7003' +proxy: bin/etcd -name proxy1 -proxy=on -listen-client-urls http://localhost:8080 -initial-cluster 'infra1=http://localhost:7001,infra2=http://localhost:7002,infra3=http://localhost:7003' diff --git a/etcdmain/config.go b/etcdmain/config.go index c18023f36..e09a140b0 100644 --- a/etcdmain/config.go +++ b/etcdmain/config.go @@ -269,8 +269,12 @@ func (cfg *config) Parse(arguments []string) error { if err != nil { return err } - if flags.IsSet(cfg.FlagSet, "listen-client-urls") && !flags.IsSet(cfg.FlagSet, "advertise-client-urls") { - return errUnsetAdvertiseClientURLsFlag + + // when etcd runs in member mode user needs to set -advertise-client-urls if -listen-client-urls is set. + if cfg.proxy.String() != proxyFlagOn { + if flags.IsSet(cfg.FlagSet, "listen-client-urls") && !flags.IsSet(cfg.FlagSet, "advertise-client-urls") { + return errUnsetAdvertiseClientURLsFlag + } } if 5*cfg.TickMs > cfg.ElectionMs {