github.com/argoproj/argo-events@v1.9.1/cmd/commands/controller.go (about) 1 package commands 2 3 import ( 4 "github.com/spf13/cobra" 5 6 "github.com/argoproj/argo-events/common" 7 "github.com/argoproj/argo-events/common/logging" 8 controllercmd "github.com/argoproj/argo-events/controllers/cmd" 9 envpkg "github.com/argoproj/pkg/env" 10 ) 11 12 func NewControllerCommand() *cobra.Command { 13 var ( 14 leaderElection bool 15 namespaced bool 16 managedNamespace string 17 metricsPort int32 18 healthPort int32 19 klogLevel int 20 ) 21 22 command := &cobra.Command{ 23 Use: "controller", 24 Short: "Start the controller", 25 Run: func(cmd *cobra.Command, args []string) { 26 logging.SetKlogLevel(klogLevel) 27 eventOpts := controllercmd.ArgoEventsControllerOpts{ 28 LeaderElection: leaderElection, 29 ManagedNamespace: managedNamespace, 30 Namespaced: namespaced, 31 MetricsPort: metricsPort, 32 HealthPort: healthPort, 33 } 34 controllercmd.Start(eventOpts) 35 }, 36 } 37 command.Flags().BoolVar(&namespaced, "namespaced", false, "Whether to run in namespaced scope, defaults to false.") 38 command.Flags().StringVar(&managedNamespace, "managed-namespace", envpkg.LookupEnvStringOr("NAMESPACE", "argo-events"), "The namespace that the controller watches when \"--namespaced\" is \"true\".") 39 command.Flags().BoolVar(&leaderElection, "leader-election", true, "Enable leader election") 40 command.Flags().Int32Var(&metricsPort, "metrics-port", common.ControllerMetricsPort, "Metrics port") 41 command.Flags().Int32Var(&healthPort, "health-port", common.ControllerHealthPort, "Health port") 42 command.Flags().IntVar(&klogLevel, "kloglevel", 0, "klog level") 43 return command 44 }