github.com/kubeshop/testkube@v1.17.23/cmd/kubectl-testkube/commands/templates/update.go (about) 1 package templates 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 UpdateTemplateCmd() *cobra.Command { 11 var ( 12 name string 13 templateType string 14 labels map[string]string 15 body string 16 ) 17 18 cmd := &cobra.Command{ 19 Use: "template", 20 Aliases: []string{"templates", "tp"}, 21 Short: "Update Template", 22 Long: `Update Template Custom Resource.`, 23 Run: func(cmd *cobra.Command, args []string) { 24 if name == "" { 25 ui.Failf("pass valid name (in '--name' flag)") 26 } 27 28 client, namespace, err := common.GetClient(cmd) 29 ui.ExitOnError("getting client", err) 30 31 template, _ := client.GetTemplate(name) 32 if name != template.Name { 33 ui.Failf("Template with name '%s' not exists in namespace %s", name, namespace) 34 } 35 36 options, err := NewUpdateTemplateOptionsFromFlags(cmd) 37 ui.ExitOnError("getting template options", err) 38 39 _, err = client.UpdateTemplate(options) 40 ui.ExitOnError("updating template "+name+" in namespace "+namespace, err) 41 42 ui.Success("Template updated", name) 43 }, 44 } 45 46 cmd.Flags().StringVarP(&name, "name", "n", "", "unique template name - mandatory") 47 cmd.Flags().StringVarP(&templateType, "template-type", "", "", "template type one of job|container|cronjob|scraper|pvc|webhook") 48 cmd.Flags().StringToStringVarP(&labels, "label", "l", nil, "label key value pair: --label key1=value1") 49 cmd.Flags().StringVarP(&body, "body", "", "", "a path to template file to use as template body") 50 51 return cmd 52 }