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  }