Add advertise-address flag

In NAT or LB environment,
we need not just the certs for local ip, but also additional ips.
advertise-address flag enables to add optional ips.
This commit is contained in:
Takeaki Matsumoto 2019-03-18 08:21:55 +00:00
parent 697c6e1580
commit 9551e1db21
2 changed files with 14 additions and 2 deletions

View File

@ -16,6 +16,7 @@ type Server struct {
DisableAgent bool
KubeConfigOutput string
KubeConfigMode string
AdvertiseAddress string
}
var ServerConfig Server
@ -94,6 +95,12 @@ func NewServerCommand(action func(*cli.Context) error) cli.Command {
Destination: &ServerConfig.KubeConfigMode,
EnvVar: "K3S_KUBECONFIG_MODE",
},
cli.StringFlag{
Name: "advertise-address",
Usage: "Advertise address for k3s server",
Destination: &ServerConfig.AdvertiseAddress,
Value: "",
},
NodeIPFlag,
NodeNameFlag,
DockerFlag,

View File

@ -77,7 +77,7 @@ func run(app *cli.Context, cfg *cmds.Server) error {
serverConfig.ControlConfig.KubeConfigMode = cfg.KubeConfigMode
serverConfig.TLSConfig.HTTPSPort = cfg.HTTPSPort
serverConfig.TLSConfig.HTTPPort = cfg.HTTPPort
serverConfig.TLSConfig.KnownIPs = knownIPs()
serverConfig.TLSConfig.KnownIPs = knownIPs(cfg.AdvertiseAddress)
_, serverConfig.ControlConfig.ClusterIPRange, err = net2.ParseCIDR(cfg.ClusterCIDR)
if err != nil {
@ -146,7 +146,7 @@ func run(app *cli.Context, cfg *cmds.Server) error {
return agent.Run(ctx, agentConfig)
}
func knownIPs() []string {
func knownIPs(hosts string) []string {
ips := []string{
"127.0.0.1",
}
@ -154,5 +154,10 @@ func knownIPs() []string {
if err == nil {
ips = append(ips, ip.String())
}
for _, host := range strings.Split(hosts, ",") {
if host != "" {
ips = append(ips, host)
}
}
return ips
}