diff --git a/staging/src/k8s.io/kubectl/pkg/cmd/annotate/annotate.go b/staging/src/k8s.io/kubectl/pkg/cmd/annotate/annotate.go index 3db68106be3..604659283d7 100644 --- a/staging/src/k8s.io/kubectl/pkg/cmd/annotate/annotate.go +++ b/staging/src/k8s.io/kubectl/pkg/cmd/annotate/annotate.go @@ -207,8 +207,17 @@ func (o AnnotateOptions) Validate() error { if o.all && len(o.fieldSelector) > 0 { return fmt.Errorf("cannot set --all and --field-selector at the same time") } - if len(o.resources) < 1 && cmdutil.IsFilenameSliceEmpty(o.Filenames, o.Kustomize) { - return fmt.Errorf("one or more resources must be specified as or /") + if !o.local { + if len(o.resources) < 1 && cmdutil.IsFilenameSliceEmpty(o.Filenames, o.Kustomize) { + return fmt.Errorf("one or more resources must be specified as or /") + } + } else { + if len(o.resources) > 0 { + return fmt.Errorf("can only use local files by -f rsrc.yaml or --filename=rsrc.json when --local=true is set") + } + if cmdutil.IsFilenameSliceEmpty(o.Filenames, o.Kustomize) { + return fmt.Errorf("one or more files must be specified as -f rsrc.yaml or --filename=rsrc.json") + } } if len(o.newAnnotations) < 1 && len(o.removeAnnotations) < 1 { return fmt.Errorf("at least one annotation update is required")