diff --git a/pkg/kubectl/cmd/util/factory.go b/pkg/kubectl/cmd/util/factory.go index 1a12d0711e0..4aa8618ad8f 100644 --- a/pkg/kubectl/cmd/util/factory.go +++ b/pkg/kubectl/cmd/util/factory.go @@ -154,16 +154,12 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory { return clients.ClientConfigForVersion(nil) }, RESTClient: func(mapping *meta.RESTMapping) (resource.RESTClient, error) { - gvk, err := api.RESTMapper.KindFor(mapping.Resource) - if err != nil { - return nil, err - } mappingVersion := mapping.GroupVersionKind.GroupVersion() client, err := clients.ClientForVersion(&mappingVersion) if err != nil { return nil, err } - switch gvk.Group { + switch mapping.GroupVersionKind.Group { case api.GroupName: return client.RESTClient, nil case extensions.GroupName: diff --git a/pkg/kubectl/resource/builder.go b/pkg/kubectl/resource/builder.go index 7c8b20b8694..d167282fbf6 100644 --- a/pkg/kubectl/resource/builder.go +++ b/pkg/kubectl/resource/builder.go @@ -533,7 +533,7 @@ func (b *Builder) visitorResult() *Result { } clients := make(map[string]RESTClient) for _, mapping := range mappings { - s := fmt.Sprintf("%s/%s", mapping.APIVersion, mapping.Resource) + s := fmt.Sprintf("%s/%s", mapping.GroupVersionKind.GroupVersion().String(), mapping.Resource) if _, ok := clients[s]; ok { continue } @@ -550,7 +550,7 @@ func (b *Builder) visitorResult() *Result { if !ok { return &Result{singular: isSingular, err: fmt.Errorf("resource %q is not recognized: %v", tuple.Resource, mappings)} } - s := fmt.Sprintf("%s/%s", mapping.APIVersion, mapping.Resource) + s := fmt.Sprintf("%s/%s", mapping.GroupVersionKind.GroupVersion().String(), mapping.Resource) client, ok := clients[s] if !ok { return &Result{singular: isSingular, err: fmt.Errorf("could not find a client for resource %q", tuple.Resource)}