github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/testsuites/update.go (about) 1 package testsuites 2 3 import ( 4 "github.com/spf13/cobra" 5 6 "github.com/kubeshop/testkube/cmd/kubectl-testkube/commands/common" 7 "github.com/kubeshop/testkube/pkg/ui" 8 ) 9 10 func UpdateTestSuitesCmd() *cobra.Command { 11 12 var ( 13 file string 14 name string 15 labels map[string]string 16 schedule string 17 executionName string 18 variables []string 19 secretVariables []string 20 httpProxy, httpsProxy string 21 secretVariableReferences map[string]string 22 timeout int32 23 jobTemplate string 24 cronJobTemplate string 25 scraperTemplate string 26 pvcTemplate string 27 jobTemplateReference string 28 cronJobTemplateReference string 29 scraperTemplateReference string 30 pvcTemplateReference string 31 ) 32 33 cmd := &cobra.Command{ 34 Use: "testsuite", 35 Short: "Update Test Suite", 36 Long: `Update Test Custom Resource Definitions, `, 37 Run: func(cmd *cobra.Command, args []string) { 38 options, err := NewTestSuiteUpdateOptionsFromFlags(cmd) 39 ui.ExitOnError("getting test suite options", err) 40 41 testSuiteName := "" 42 if options.Name != nil { 43 testSuiteName = *options.Name 44 } 45 46 if testSuiteName == "" { 47 ui.Failf("pass valid test suite name (in '--name' flag)") 48 } 49 50 client, namespace, err := common.GetClient(cmd) 51 ui.ExitOnError("getting client", err) 52 53 testSuite, _ := client.GetTestSuite(testSuiteName) 54 if testSuiteName != testSuite.Name { 55 ui.Failf("TestSuite with name '%s' not exists in namespace %s", testSuiteName, namespace) 56 } 57 58 testSuite, err = client.UpdateTestSuite(options) 59 ui.ExitOnError("updating TestSuite "+testSuiteName+" in namespace "+namespace, err) 60 ui.Success("TestSuite updated", testSuiteName) 61 }, 62 } 63 64 cmd.Flags().StringVarP(&file, "file", "f", "", "JSON test file - will be read from stdin if not specified, look at testkube.TestUpsertRequest") 65 cmd.Flags().StringVar(&name, "name", "", "Set/Override test suite name") 66 cmd.Flags().StringToStringVarP(&labels, "label", "l", nil, "label key value pair: --label key1=value1") 67 cmd.Flags().StringArrayVarP(&variables, "variable", "v", nil, "param key value pair: --variable key1=value1") 68 cmd.Flags().StringArrayVarP(&secretVariables, "secret-variable", "s", nil, "secret variable key value pair: --secret-variable key1=value1") 69 cmd.Flags().StringVarP(&schedule, "schedule", "", "", "test suite schedule in a cron job form: * * * * *") 70 cmd.Flags().StringVarP(&executionName, "execution-name", "", "", "execution name, if empty will be autogenerated") 71 cmd.Flags().StringVar(&httpProxy, "http-proxy", "", "http proxy for executor containers") 72 cmd.Flags().StringVar(&httpsProxy, "https-proxy", "", "https proxy for executor containers") 73 cmd.Flags().StringToStringVarP(&secretVariableReferences, "secret-variable-reference", "", nil, "secret variable references in a form name1=secret_name1=secret_key1") 74 cmd.Flags().Int32Var(&timeout, "timeout", 0, "duration in seconds for test suite to timeout. 0 disables timeout.") 75 cmd.Flags().StringVar(&jobTemplate, "job-template", "", "job template file path for extensions to job template") 76 cmd.Flags().StringVar(&cronJobTemplate, "cronjob-template", "", "cron job template file path for extensions to cron job template") 77 cmd.Flags().StringVar(&scraperTemplate, "scraper-template", "", "scraper template file path for extensions to scraper template") 78 cmd.Flags().StringVar(&pvcTemplate, "pvc-template", "", "pvc template file path for extensions to pvc template") 79 cmd.Flags().StringVar(&jobTemplateReference, "job-template-reference", "", "reference to job template to use for the test") 80 cmd.Flags().StringVar(&cronJobTemplateReference, "cronjob-template-reference", "", "reference to cron job template to use for the test") 81 cmd.Flags().StringVar(&scraperTemplateReference, "scraper-template-reference", "", "reference to scraper template to use for the test") 82 cmd.Flags().StringVar(&pvcTemplateReference, "pvc-template-reference", "", "reference to pvc template to use for the test") 83 84 return cmd 85 }