github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/create.go (about) 1 package commands 2 3 import ( 4 "github.com/spf13/cobra" 5 6 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common" 7 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common/validator" 8 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/executors" 9 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/templates" 10 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/tests" 11 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testsources" 12 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testsuites" 13 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testworkflows" 14 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/testworkflowtemplates" 15 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/webhooks" 16 "github.com/kubeshop/testkube/cmd/kubectl-testkube/config" 17 "github.com/kubeshop/testkube/pkg/ui" 18 ) 19 20 func NewCreateCmd() *cobra.Command { 21 var crdOnly bool 22 23 cmd := &cobra.Command{ 24 Use: "create <resourceName>", 25 Aliases: []string{"c"}, 26 Short: "Create resource", 27 Annotations: map[string]string{cmdGroupAnnotation: cmdGroupCommands}, 28 Run: func(cmd *cobra.Command, args []string) { 29 err := cmd.Help() 30 ui.PrintOnError("Displaying help", err) 31 }, 32 PersistentPreRun: func(cmd *cobra.Command, args []string) { 33 cfg, err := config.Load() 34 ui.ExitOnError("loading config", err) 35 common.UiContextHeader(cmd, cfg) 36 37 if !crdOnly { 38 validator.PersistentPreRunVersionCheck(cmd, common.Version) 39 } 40 }} 41 42 cmd.AddCommand(tests.NewCreateTestsCmd()) 43 cmd.AddCommand(testsuites.NewCreateTestSuitesCmd()) 44 cmd.AddCommand(webhooks.NewCreateWebhookCmd()) 45 cmd.AddCommand(executors.NewCreateExecutorCmd()) 46 cmd.AddCommand(testsources.NewCreateTestSourceCmd()) 47 cmd.AddCommand(templates.NewCreateTemplateCmd()) 48 cmd.AddCommand(testworkflows.NewCreateTestWorkflowCmd()) 49 cmd.AddCommand(testworkflowtemplates.NewCreateTestWorkflowTemplateCmd()) 50 51 cmd.PersistentFlags().BoolVar(&crdOnly, "crd-only", false, "generate only crd") 52 53 return cmd 54 }