k3s/pkg/cli/cmds/server.go

144 lines
4.1 KiB
Go
Raw Normal View History

2019-01-09 16:54:15 +00:00
package cmds
import (
"github.com/urfave/cli"
)
type Server struct {
Log string
ClusterCIDR string
ClusterSecret string
ServiceCIDR string
ClusterDNS string
HTTPSPort int
HTTPPort int
DataDir string
DisableAgent bool
KubeConfigOutput string
KubeConfigMode string
KnownIPs cli.StringSlice
BindAddress string
ExtraAPIArgs cli.StringSlice
ExtraSchedulerArgs cli.StringSlice
ExtraControllerArgs cli.StringSlice
2019-03-08 22:47:44 +00:00
Rootless bool
2019-01-09 16:54:15 +00:00
}
var ServerConfig Server
func NewServerCommand(action func(*cli.Context) error) cli.Command {
return cli.Command{
Name: "server",
Usage: "Run management server",
UsageText: appName + " server [OPTIONS]",
Action: action,
Flags: []cli.Flag{
2019-03-31 00:10:23 +00:00
cli.StringFlag{
Name: "bind-address",
Usage: "k3s bind address",
Destination: &ServerConfig.BindAddress,
},
2019-01-09 16:54:15 +00:00
cli.IntFlag{
Name: "https-listen-port",
Usage: "HTTPS listen port",
Value: 6443,
Destination: &ServerConfig.HTTPSPort,
},
cli.IntFlag{
Name: "http-listen-port",
Usage: "HTTP listen port (for /healthz, HTTPS redirect, and port for TLS terminating LB)",
Value: 0,
Destination: &ServerConfig.HTTPPort,
},
cli.StringFlag{
Name: "data-dir,d",
Usage: "Folder to hold state default /var/lib/rancher/k3s or ${HOME}/.rancher/k3s if not root",
Destination: &ServerConfig.DataDir,
},
cli.BoolFlag{
Name: "disable-agent",
Usage: "Do not run a local agent and register a local kubelet",
Destination: &ServerConfig.DisableAgent,
},
cli.StringFlag{
Name: "log,l",
Usage: "Log to file",
Destination: &ServerConfig.Log,
},
cli.StringFlag{
Name: "cluster-cidr",
Usage: "Network CIDR to use for pod IPs",
Destination: &ServerConfig.ClusterCIDR,
Value: "10.42.0.0/16",
2019-01-09 16:54:15 +00:00
},
2019-01-22 21:14:58 +00:00
cli.StringFlag{
Name: "cluster-secret",
Usage: "Shared secret used to bootstrap a cluster",
Destination: &ServerConfig.ClusterSecret,
EnvVar: "K3S_CLUSTER_SECRET",
},
2019-03-06 10:37:03 +00:00
cli.StringFlag{
Name: "service-cidr",
Usage: "Network CIDR to use for services IPs",
Destination: &ServerConfig.ServiceCIDR,
Value: "10.43.0.0/16",
},
2019-03-06 11:16:04 +00:00
cli.StringFlag{
Name: "cluster-dns",
Usage: "Cluster IP for coredns service. Should be in your service-cidr range",
Destination: &ServerConfig.ClusterDNS,
Value: "",
2019-03-06 11:16:04 +00:00
},
2019-01-22 21:14:58 +00:00
cli.StringSliceFlag{
Name: "no-deploy",
2019-03-02 00:11:10 +00:00
Usage: "Do not deploy packaged components (valid items: coredns, servicelb, traefik)",
2019-01-22 21:14:58 +00:00
},
cli.StringFlag{
Name: "write-kubeconfig,o",
Usage: "Write kubeconfig for admin client to this file",
Destination: &ServerConfig.KubeConfigOutput,
EnvVar: "K3S_KUBECONFIG_OUTPUT",
},
cli.StringFlag{
Name: "write-kubeconfig-mode",
Usage: "Write kubeconfig with this mode",
Destination: &ServerConfig.KubeConfigMode,
EnvVar: "K3S_KUBECONFIG_MODE",
},
2019-03-23 17:34:55 +00:00
cli.StringSliceFlag{
2019-03-25 04:54:52 +00:00
Name: "tls-san",
Usage: "Add additional hostname or IP as a Subject Alternative Name in the TLS cert",
2019-03-23 17:34:55 +00:00
Value: &ServerConfig.KnownIPs,
},
cli.StringSliceFlag{
Name: "kube-apiserver-arg",
Usage: "Customized flag for kube-apiserver process",
Value: &ServerConfig.ExtraAPIArgs,
},
cli.StringSliceFlag{
Name: "kube-scheduler-arg",
Usage: "Customized flag for kube-scheduler process",
Value: &ServerConfig.ExtraSchedulerArgs,
},
cli.StringSliceFlag{
Name: "kube-controller-arg",
Usage: "Customized flag for kube-controller-manager process",
Value: &ServerConfig.ExtraControllerArgs,
},
2019-03-08 22:47:44 +00:00
cli.BoolFlag{
Name: "rootless",
Usage: "(experimental) Run rootless",
Destination: &ServerConfig.Rootless,
},
2019-01-09 16:54:15 +00:00
NodeIPFlag,
NodeNameFlag,
2019-03-02 00:10:18 +00:00
DockerFlag,
FlannelFlag,
2019-03-04 06:29:06 +00:00
CRIEndpointFlag,
ResolvConfFlag,
ExtraKubeletArgs,
ExtraKubeProxyArgs,
2019-01-09 16:54:15 +00:00
},
}
}