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  }