diff --git a/pkg/cli/server/server.go b/pkg/cli/server/server.go index 501b04e1ed..2d80ca222f 100644 --- a/pkg/cli/server/server.go +++ b/pkg/cli/server/server.go @@ -130,7 +130,9 @@ func run(app *cli.Context, cfg *cmds.Server) error { if cmds.AgentConfig.FlannelIface != "" && cmds.AgentConfig.NodeIP == "" { cmds.AgentConfig.NodeIP = netutil.GetIPFromInterface(cmds.AgentConfig.FlannelIface) } - + if serverConfig.ControlConfig.PrivateIP == "" && cmds.AgentConfig.NodeIP != "" { + serverConfig.ControlConfig.PrivateIP = cmds.AgentConfig.NodeIP + } if serverConfig.ControlConfig.AdvertiseIP == "" && cmds.AgentConfig.NodeExternalIP != "" { serverConfig.ControlConfig.AdvertiseIP = cmds.AgentConfig.NodeExternalIP } diff --git a/pkg/daemons/config/types.go b/pkg/daemons/config/types.go index 16913ca8d0..62f52145f7 100644 --- a/pkg/daemons/config/types.go +++ b/pkg/daemons/config/types.go @@ -137,8 +137,8 @@ type Control struct { BindAddress string SANs []string - - Runtime *ControlRuntime `json:"-"` + PrivateIP string + Runtime *ControlRuntime `json:"-"` } type ControlRuntimeBootstrap struct { diff --git a/pkg/etcd/etcd.go b/pkg/etcd/etcd.go index 69386c6d0a..4ddf162b76 100644 --- a/pkg/etcd/etcd.go +++ b/pkg/etcd/etcd.go @@ -309,12 +309,11 @@ func (e *ETCD) Register(ctx context.Context, config *config.Control, handler htt } e.client = client - address, err := getAdvertiseAddress(config.AdvertiseIP) + address, err := getAdvertiseAddress(config.PrivateIP) if err != nil { return nil, err } e.address = address - e.config.Datastore.Endpoint = endpoint e.config.Datastore.Config.CAFile = e.runtime.ETCDServerCA e.config.Datastore.Config.CertFile = e.runtime.ClientETCDCert