diff --git a/pkg/kubectl/cmd/apiresources/BUILD b/pkg/kubectl/cmd/apiresources/BUILD index b44343d2fe..1e7ab15cf5 100644 --- a/pkg/kubectl/cmd/apiresources/BUILD +++ b/pkg/kubectl/cmd/apiresources/BUILD @@ -15,6 +15,7 @@ go_library( "//pkg/kubectl/util/templates:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/util/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/util/sets:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", "//staging/src/k8s.io/client-go/discovery:go_default_library", diff --git a/pkg/kubectl/cmd/apiresources/apiresources.go b/pkg/kubectl/cmd/apiresources/apiresources.go index 54da3c981b..e5b3eeafe5 100644 --- a/pkg/kubectl/cmd/apiresources/apiresources.go +++ b/pkg/kubectl/cmd/apiresources/apiresources.go @@ -26,6 +26,7 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" "k8s.io/apimachinery/pkg/runtime/schema" + "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/cli-runtime/pkg/genericclioptions" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" @@ -136,9 +137,10 @@ func (o *APIResourceOptions) RunAPIResources(cmd *cobra.Command, f cmdutil.Facto discoveryclient.Invalidate() } + errs := []error{} lists, err := discoveryclient.ServerPreferredResources() if err != nil { - return err + errs = append(errs, err) } resources := []groupResource{} @@ -192,7 +194,7 @@ func (o *APIResourceOptions) RunAPIResources(cmd *cobra.Command, f cmdutil.Facto name += "." + r.APIGroup } if _, err := fmt.Fprintf(w, "%s\n", name); err != nil { - return err + errs = append(errs, err) } case "wide": if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%v\t%s\t%v\n", @@ -202,7 +204,7 @@ func (o *APIResourceOptions) RunAPIResources(cmd *cobra.Command, f cmdutil.Facto r.APIResource.Namespaced, r.APIResource.Kind, r.APIResource.Verbs); err != nil { - return err + errs = append(errs, err) } case "": if _, err := fmt.Fprintf(w, "%s\t%s\t%s\t%v\t%s\n", @@ -211,10 +213,14 @@ func (o *APIResourceOptions) RunAPIResources(cmd *cobra.Command, f cmdutil.Facto r.APIGroup, r.APIResource.Namespaced, r.APIResource.Kind); err != nil { - return err + errs = append(errs, err) } } } + + if len(errs) > 0 { + return errors.NewAggregate(errs) + } return nil }