mirror of https://github.com/k3s-io/k3s
kubectl: remove internalclientset dependency
parent
688550b2d3
commit
a76b6ee56a
|
@ -6,13 +6,11 @@ go_library(
|
|||
importpath = "k8s.io/kubernetes/pkg/kubectl/describe/versioned",
|
||||
visibility = ["//visibility:public"],
|
||||
deps = [
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/kubectl/describe:go_default_library",
|
||||
"//pkg/printers:go_default_library",
|
||||
"//pkg/printers/internalversion:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/api/meta:go_default_library",
|
||||
"//staging/src/k8s.io/cli-runtime/pkg/genericclioptions:go_default_library",
|
||||
"//staging/src/k8s.io/client-go/dynamic:go_default_library",
|
||||
],
|
||||
)
|
||||
|
||||
|
|
|
@ -21,8 +21,6 @@ import (
|
|||
|
||||
"k8s.io/apimachinery/pkg/api/meta"
|
||||
"k8s.io/cli-runtime/pkg/genericclioptions"
|
||||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/kubernetes/pkg/kubectl/describe"
|
||||
"k8s.io/kubernetes/pkg/printers"
|
||||
printersinternal "k8s.io/kubernetes/pkg/printers/internalversion"
|
||||
|
@ -42,32 +40,9 @@ func Describer(restClientGetter genericclioptions.RESTClientGetter, mapping *met
|
|||
return describer, nil
|
||||
}
|
||||
// if this is a kind we don't have a describer for yet, go generic if possible
|
||||
if genericDescriber, genericErr := genericDescriber(restClientGetter, mapping); genericErr == nil {
|
||||
if genericDescriber, ok := printersinternal.GenericDescriberFor(mapping, clientConfig); ok {
|
||||
return genericDescriber, nil
|
||||
}
|
||||
// otherwise return an unregistered error
|
||||
return nil, fmt.Errorf("no description has been implemented for %s", mapping.GroupVersionKind.String())
|
||||
}
|
||||
|
||||
// helper function to make a generic describer, or return an error
|
||||
func genericDescriber(restClientGetter genericclioptions.RESTClientGetter, mapping *meta.RESTMapping) (printers.Describer, error) {
|
||||
clientConfig, err := restClientGetter.ToRESTConfig()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// used to fetch the resource
|
||||
dynamicClient, err := dynamic.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
// used to get events for the resource
|
||||
clientSet, err := internalclientset.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
eventsClient := clientSet.Core()
|
||||
return printersinternal.GenericDescriberFor(mapping, dynamicClient, eventsClient), nil
|
||||
}
|
||||
|
|
|
@ -195,8 +195,21 @@ func DescriberFor(kind schema.GroupKind, clientConfig *rest.Config) (printers.De
|
|||
|
||||
// GenericDescriberFor returns a generic describer for the specified mapping
|
||||
// that uses only information available from runtime.Unstructured
|
||||
func GenericDescriberFor(mapping *meta.RESTMapping, dynamic dynamic.Interface, events coreclient.EventsGetter) printers.Describer {
|
||||
return &genericDescriber{mapping, dynamic, events}
|
||||
func GenericDescriberFor(mapping *meta.RESTMapping, clientConfig *rest.Config) (printers.Describer, bool) {
|
||||
// used to fetch the resource
|
||||
dynamicClient, err := dynamic.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return nil, false
|
||||
}
|
||||
|
||||
// used to get events for the resource
|
||||
clientSet, err := clientset.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return nil, false
|
||||
}
|
||||
eventsClient := clientSet.Core()
|
||||
|
||||
return &genericDescriber{mapping, dynamicClient, eventsClient}, true
|
||||
}
|
||||
|
||||
type genericDescriber struct {
|
||||
|
|
Loading…
Reference in New Issue