github.com/caos/orbos@v1.5.14-0.20221103111702-e6cd0cea7ad4/cmd/orbctl/takeoff.go (about)

     1  package main
     2  
     3  import (
     4  	_ "net/http/pprof"
     5  
     6  	"github.com/caos/orbos/cmd/orbctl/cmds"
     7  	"github.com/spf13/cobra"
     8  	_ "k8s.io/client-go/plugin/pkg/client/auth/gcp"
     9  )
    10  
    11  func TakeoffCommand(getRv GetRootValues) *cobra.Command {
    12  	var (
    13  		verbose bool
    14  		recur   bool
    15  		deploy  bool
    16  		cmd     = &cobra.Command{
    17  			Use:   "takeoff",
    18  			Short: "Launch an operator",
    19  			Long:  `For launching specific operators only, pass one or many of "orbiter", "boom" or "networking"`,
    20  			Args:  cobra.MaximumNArgs(3),
    21  		}
    22  	)
    23  
    24  	flags := cmd.Flags()
    25  	flags.BoolVar(&recur, "recur", false, "Ensure the desired state continously")
    26  	flags.BoolVar(&deploy, "deploy", true, "Ensure Orbiter and Boom deployments continously")
    27  
    28  	cmd.RunE = func(cmd *cobra.Command, args []string) (err error) {
    29  
    30  		rv := getRv("takeoff", "", map[string]interface{}{"recur": recur, "deploy": deploy, "args": args})
    31  		defer rv.ErrFunc(err)
    32  
    33  		return cmds.Takeoff(
    34  			monitor,
    35  			rv.Ctx,
    36  			rv.OrbConfig,
    37  			rv.GitClient,
    38  			recur,
    39  			deploy,
    40  			verbose,
    41  			version,
    42  			gitCommit,
    43  			rv.Kubeconfig,
    44  			rv.Gitops,
    45  			args,
    46  		)
    47  	}
    48  	return cmd
    49  }