mirror of
https://github.com/cloudnativelabs/kube-router.git
synced 2025-10-08 00:11:07 +02:00
options, app: - Handle more config errors
- Add --help/-h for usage information
This commit is contained in:
parent
cb661f871c
commit
7dedc3fa00
@ -7,6 +7,7 @@ import (
|
||||
)
|
||||
|
||||
type KubeRouterConfig struct {
|
||||
HelpRequested bool
|
||||
Kubeconfig string
|
||||
Master string
|
||||
ConfigSyncPeriod time.Duration
|
||||
@ -41,6 +42,7 @@ func NewKubeRouterConfig() *KubeRouterConfig {
|
||||
}
|
||||
|
||||
func (s *KubeRouterConfig) AddFlags(fs *pflag.FlagSet) {
|
||||
fs.BoolVarP(&s.HelpRequested, "help", "h", false, "Print usage information.")
|
||||
fs.BoolVar(&s.RunServiceProxy, "run-service-proxy", s.RunServiceProxy, "If false, kube-router wont setup IPVS for services proxy. True by default.")
|
||||
fs.BoolVar(&s.RunFirewall, "run-firewall", s.RunFirewall, "If false, kube-router wont setup iptables to provide ingress firewall for pods. True by default.")
|
||||
fs.BoolVar(&s.RunRouter, "run-router", s.RunRouter, "If true each node advertise routes the rest of the nodes and learn the routes for the pods. True by default.")
|
||||
|
@ -24,19 +24,19 @@ func NewKubeRouterDefault(config *options.KubeRouterConfig) (*KubeRouter, error)
|
||||
|
||||
if len(config.Master) == 0 && len(config.Kubeconfig) == 0 {
|
||||
if _, err := os.Stat("/var/lib/kube-router/kubeconfig"); os.IsNotExist(err) {
|
||||
panic("Either one of --master or --kubeconfig must be specified. Or valid kubeconfig file must exist as /var/lib/kube-router/kubeconfig")
|
||||
return nil, errors.New("Either one of --master or --kubeconfig must be specified. Or valid kubeconfig file must exist as /var/lib/kube-router/kubeconfig")
|
||||
}
|
||||
config.Kubeconfig = "/var/lib/kube-router/kubeconfig"
|
||||
}
|
||||
|
||||
clientconfig, err := clientcmd.BuildConfigFromFlags(config.Master, config.Kubeconfig)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
return nil, errors.New("Failed to build configuration from CLI: " + err.Error())
|
||||
}
|
||||
|
||||
clientset, err := kubernetes.NewForConfig(clientconfig)
|
||||
if err != nil {
|
||||
panic(err.Error())
|
||||
return nil, errors.New("Failed to create Kubernetes client: " + err.Error())
|
||||
}
|
||||
|
||||
return &KubeRouter{Client: clientset, Config: config}, nil
|
||||
@ -108,7 +108,7 @@ func (kr *KubeRouter) Run() error {
|
||||
|
||||
err = kr.startApiWatchers()
|
||||
if err != nil {
|
||||
panic("Failed to start API watchers: " + err.Error())
|
||||
return errors.New("Failed to start API watchers: " + err.Error())
|
||||
}
|
||||
|
||||
if !(kr.Config.RunFirewall || kr.Config.RunServiceProxy || kr.Config.RunRouter) {
|
||||
@ -119,7 +119,7 @@ func (kr *KubeRouter) Run() error {
|
||||
if kr.Config.RunFirewall {
|
||||
npc, err := controllers.NewNetworkPolicyController(kr.Client, kr.Config)
|
||||
if err != nil {
|
||||
panic("Failed to create network policy controller: " + err.Error())
|
||||
return errors.New("Failed to create network policy controller: " + err.Error())
|
||||
}
|
||||
npcStopCh = make(chan struct{})
|
||||
wg.Add(1)
|
||||
@ -129,7 +129,7 @@ func (kr *KubeRouter) Run() error {
|
||||
if kr.Config.RunRouter {
|
||||
nrc, err := controllers.NewNetworkRoutingController(kr.Client, kr.Config)
|
||||
if err != nil {
|
||||
panic("Failed to create network routing controller: " + err.Error())
|
||||
return errors.New("Failed to create network routing controller: " + err.Error())
|
||||
}
|
||||
nrcStopCh = make(chan struct{})
|
||||
wg.Add(1)
|
||||
@ -139,7 +139,7 @@ func (kr *KubeRouter) Run() error {
|
||||
if kr.Config.RunServiceProxy {
|
||||
nsc, err := controllers.NewNetworkServicesController(kr.Client, kr.Config)
|
||||
if err != nil {
|
||||
panic("Failed to create network services controller: " + err.Error())
|
||||
return errors.New("Failed to create network services controller: " + err.Error())
|
||||
}
|
||||
nscStopCh = make(chan struct{})
|
||||
wg.Add(1)
|
||||
|
@ -18,8 +18,13 @@ func main() {
|
||||
|
||||
flag.Set("logtostderr", "true")
|
||||
|
||||
if config.HelpRequested {
|
||||
pflag.Usage()
|
||||
os.Exit(0)
|
||||
}
|
||||
|
||||
if os.Geteuid() != 0 {
|
||||
fmt.Fprintf(os.Stderr, "kube-router need to be run by user with previlages to execute iptables, ipset and configure ipvs\n")
|
||||
fmt.Fprintf(os.Stderr, "kube-router needs to be run with privileges to execute iptables, ipset and configure ipvs\n")
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
@ -34,7 +39,8 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if err = kubeRouter.Run(); err != nil {
|
||||
err = kubeRouter.Run()
|
||||
if err != nil {
|
||||
fmt.Fprintf(os.Stderr, "Failed to run kube-router: %v\n", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user