From 54a73630f1f39802ad7c55938cf414ca16c705c0 Mon Sep 17 00:00:00 2001 From: Sean Sullivan Date: Wed, 3 Oct 2018 16:17:16 -0700 Subject: [PATCH] kubectl factory client access: Moves remaining internal references into callers --- pkg/kubectl/cmd/convert/BUILD | 1 + pkg/kubectl/cmd/convert/convert.go | 5 ++++- pkg/kubectl/cmd/get/get.go | 2 +- pkg/kubectl/cmd/util/BUILD | 3 +-- pkg/kubectl/cmd/util/factory_client_access.go | 19 +++---------------- 5 files changed, 10 insertions(+), 20 deletions(-) diff --git a/pkg/kubectl/cmd/convert/BUILD b/pkg/kubectl/cmd/convert/BUILD index 0a813bc572..af9795c11f 100644 --- a/pkg/kubectl/cmd/convert/BUILD +++ b/pkg/kubectl/cmd/convert/BUILD @@ -12,6 +12,7 @@ go_library( "//pkg/kubectl/cmd/util:go_default_library", "//pkg/kubectl/util/i18n:go_default_library", "//pkg/kubectl/validation:go_default_library", + "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime/schema:go_default_library", "//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library", diff --git a/pkg/kubectl/cmd/convert/convert.go b/pkg/kubectl/cmd/convert/convert.go index cf6c266d92..1e29060f45 100644 --- a/pkg/kubectl/cmd/convert/convert.go +++ b/pkg/kubectl/cmd/convert/convert.go @@ -22,6 +22,7 @@ import ( "github.com/golang/glog" "github.com/spf13/cobra" + "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/cli-runtime/pkg/genericclioptions" @@ -173,7 +174,9 @@ func (o *ConvertOptions) RunConvert() error { } } - objects, err := asVersionedObject(infos, !singleItemImplied, specifiedOutputVersion, cmdutil.InternalVersionJSONEncoder()) + internalEncoder := scheme.Codecs.LegacyCodec(scheme.Scheme.PrioritizedVersionsAllGroups()...) + internalVersionJSONEncoder := unstructured.JSONFallbackEncoder{Encoder: internalEncoder} + objects, err := asVersionedObject(infos, !singleItemImplied, specifiedOutputVersion, internalVersionJSONEncoder) if err != nil { return err } diff --git a/pkg/kubectl/cmd/get/get.go b/pkg/kubectl/cmd/get/get.go index 3681e62901..ee32152755 100644 --- a/pkg/kubectl/cmd/get/get.go +++ b/pkg/kubectl/cmd/get/get.go @@ -381,7 +381,7 @@ func NewRuntimeSorter(objects []runtime.Object, sortBy string) *RuntimeSorter { return &RuntimeSorter{ field: parsedField, - decoder: cmdutil.InternalVersionDecoder(), + decoder: legacyscheme.Codecs.UniversalDecoder(), objects: objects, } } diff --git a/pkg/kubectl/cmd/util/BUILD b/pkg/kubectl/cmd/util/BUILD index b1e5ba94ef..124d14148a 100644 --- a/pkg/kubectl/cmd/util/BUILD +++ b/pkg/kubectl/cmd/util/BUILD @@ -15,7 +15,6 @@ go_library( visibility = ["//build/visible_to:pkg_kubectl_cmd_util_CONSUMERS"], deps = [ "//pkg/api/legacyscheme:go_default_library", - "//pkg/apis/core:go_default_library", "//pkg/client/clientset_generated/internalclientset:go_default_library", "//pkg/kubectl:go_default_library", "//pkg/kubectl/cmd/templates:go_default_library", @@ -30,11 +29,11 @@ go_library( "//staging/src/k8s.io/api/batch/v1:go_default_library", "//staging/src/k8s.io/api/batch/v1beta1:go_default_library", "//staging/src/k8s.io/api/batch/v2alpha1:go_default_library", + "//staging/src/k8s.io/api/core/v1:go_default_library", "//staging/src/k8s.io/api/extensions/v1beta1:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1:go_default_library", - "//staging/src/k8s.io/apimachinery/pkg/apis/meta/v1/unstructured:go_default_library", "//staging/src/k8s.io/apimachinery/pkg/runtime: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", diff --git a/pkg/kubectl/cmd/util/factory_client_access.go b/pkg/kubectl/cmd/util/factory_client_access.go index 14368758ef..b923a4b149 100644 --- a/pkg/kubectl/cmd/util/factory_client_access.go +++ b/pkg/kubectl/cmd/util/factory_client_access.go @@ -21,9 +21,8 @@ package util import ( "sync" + corev1 "k8s.io/api/core/v1" "k8s.io/apimachinery/pkg/api/meta" - "k8s.io/apimachinery/pkg/apis/meta/v1/unstructured" - "k8s.io/apimachinery/pkg/runtime" "k8s.io/cli-runtime/pkg/genericclioptions" "k8s.io/cli-runtime/pkg/genericclioptions/resource" "k8s.io/client-go/discovery" @@ -31,8 +30,6 @@ import ( "k8s.io/client-go/kubernetes" restclient "k8s.io/client-go/rest" "k8s.io/client-go/tools/clientcmd" - "k8s.io/kubernetes/pkg/api/legacyscheme" - api "k8s.io/kubernetes/pkg/apis/core" "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi" openapivalidation "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation" "k8s.io/kubernetes/pkg/kubectl/validation" @@ -118,7 +115,7 @@ func (f *factoryImpl) ClientForMapping(mapping *meta.RESTMapping) (resource.REST } gvk := mapping.GroupVersionKind switch gvk.Group { - case api.GroupName: + case corev1.GroupName: cfg.APIPath = "/api" default: cfg.APIPath = "/apis" @@ -137,7 +134,7 @@ func (f *factoryImpl) UnstructuredClientForMapping(mapping *meta.RESTMapping) (r return nil, err } cfg.APIPath = "/apis" - if mapping.GroupVersionKind.Group == api.GroupName { + if mapping.GroupVersionKind.Group == corev1.GroupName { cfg.APIPath = "/api" } gv := mapping.GroupVersionKind.GroupVersion() @@ -178,13 +175,3 @@ func (f *factoryImpl) OpenAPISchema() (openapi.Resources, error) { // Delegate to the OpenAPIGetter return f.openAPIGetter.getter.Get() } - -// this method exists to help us find the points still relying on internal types. -func InternalVersionDecoder() runtime.Decoder { - return legacyscheme.Codecs.UniversalDecoder() -} - -func InternalVersionJSONEncoder() runtime.Encoder { - encoder := legacyscheme.Codecs.LegacyCodec(legacyscheme.Scheme.PrioritizedVersionsAllGroups()...) - return unstructured.JSONFallbackEncoder{Encoder: encoder} -}