k3s/pkg/cli/cmds/server.go

190 lines
5.6 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
2019-04-12 06:06:35 +00:00
ClusterDomain 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-06-11 22:48:47 +00:00
StorageBackend string
2019-05-15 23:05:24 +00:00
StorageEndpoint string
2019-06-11 22:48:47 +00:00
StorageCAFile string
StorageCertFile string
StorageKeyFile string
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",
2019-04-12 00:30:49 +00:00
Usage: "k3s bind address (default: localhost)",
2019-03-31 00:10:23 +00:00
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-04-12 06:06:35 +00:00
cli.StringFlag{
Name: "cluster-domain",
Usage: "Cluster Domain",
Destination: &ServerConfig.ClusterDomain,
Value: "cluster.local",
},
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-06-11 22:48:47 +00:00
cli.StringFlag{
Name: "storage-backend",
Usage: "Specify storage type etcd3 or kvsql",
Destination: &ServerConfig.StorageBackend,
EnvVar: "K3S_STORAGE_BACKEND",
},
2019-05-15 23:05:24 +00:00
cli.StringFlag{
Name: "storage-endpoint",
2019-06-11 22:48:47 +00:00
Usage: "Specify etcd, Mysql, Postgres, or Sqlite (default) data source name",
2019-05-15 23:05:24 +00:00
Destination: &ServerConfig.StorageEndpoint,
EnvVar: "K3S_STORAGE_ENDPOINT",
},
2019-06-11 22:48:47 +00:00
cli.StringFlag{
Name: "storage-cafile",
Usage: "SSL Certificate Authority file used to secure storage backend communication",
Destination: &ServerConfig.StorageCAFile,
EnvVar: "K3S_STORAGE_CAFILE",
},
cli.StringFlag{
Name: "storage-certfile",
Usage: "SSL certification file used to secure storage backend communication",
Destination: &ServerConfig.StorageCertFile,
EnvVar: "K3S_STORAGE_CERTFILE",
},
cli.StringFlag{
Name: "storage-keyfile",
Usage: "SSL key file used to secure storage backend communication",
Destination: &ServerConfig.StorageKeyFile,
EnvVar: "K3S_STORAGE_KEYFILE",
},
2019-01-09 16:54:15 +00:00
NodeIPFlag,
NodeNameFlag,
2019-03-02 00:10:18 +00:00
DockerFlag,
FlannelFlag,
FlannelIfaceFlag,
2019-03-04 06:29:06 +00:00
CRIEndpointFlag,
2019-05-03 17:36:12 +00:00
PauseImageFlag,
ResolvConfFlag,
ExtraKubeletArgs,
ExtraKubeProxyArgs,
NodeLabels,
NodeTaints,
2019-01-09 16:54:15 +00:00
},
}
}