mirror of
				https://github.com/k3s-io/kubernetes.git
				synced 2025-11-03 23:40:03 +00:00 
			
		
		
		
	kubectl: remove internalclientset dependency
This commit is contained in:
		@@ -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 {
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user