From b20a8c6b0493b720aaff47375562e667eff59eb0 Mon Sep 17 00:00:00 2001 From: juanvallejo Date: Thu, 17 Jan 2019 13:58:45 -0500 Subject: [PATCH] make api-resource discovery errors non-fatal --- pkg/kubectl/cmd/apiresources/apiresources.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/kubectl/cmd/apiresources/apiresources.go b/pkg/kubectl/cmd/apiresources/apiresources.go index 54da3c981b5..e5b3eeafe59 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 }