validate backup name format before contacting the API server

Signed-off-by: samay43 <samayrbhat43@gmail.com>
This commit is contained in:
samay43
2026-08-05 14:03:42 +05:30
parent 02bff1e771
commit 12c1ef4ff2
+7 -4
View File
@@ -26,6 +26,7 @@ import (
"github.com/spf13/pflag"
kubeerrs "k8s.io/apimachinery/pkg/util/errors"
"k8s.io/client-go/tools/cache"
"k8s.io/apimachinery/pkg/util/validation"
kbclient "sigs.k8s.io/controller-runtime/pkg/client"
velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
@@ -186,10 +187,12 @@ func (o *CreateOptions) Validate(c *cobra.Command, args []string, f client.Facto
return err
}
// Ensure that unless FromSchedule is set, args contains a backup name
if o.FromSchedule == "" && len(args) != 1 {
return fmt.Errorf("a backup name is required, unless you are creating based on a schedule")
}
// Ensure the backup name is a valid Kubernetes resource name
if o.FromSchedule == "" {
if errs := validation.IsDNS1123Subdomain(o.Name); len(errs) > 0 {
return fmt.Errorf("invalid backup name %q: %s", o.Name, strings.Join(errs, "; "))
}
}
errs := collections.ValidateNamespaceIncludesExcludes(o.IncludeNamespaces, o.ExcludeNamespaces)
if len(errs) > 0 {