25 lines
596 B
Go
25 lines
596 B
Go
|
package tool
|
||
|
|
||
|
import (
|
||
|
"k8s.io/apimachinery/pkg/runtime/schema"
|
||
|
"k8s.io/client-go/kubernetes"
|
||
|
"k8s.io/client-go/restmapper"
|
||
|
)
|
||
|
|
||
|
// GetGVR 获取GVR
|
||
|
func GetGVR(clientSet *kubernetes.Clientset, gvk schema.GroupVersionKind) (schema.GroupVersionResource, error) {
|
||
|
gr, err := restmapper.GetAPIGroupResources(clientSet)
|
||
|
if err != nil {
|
||
|
return schema.GroupVersionResource{}, err
|
||
|
}
|
||
|
|
||
|
mapper := restmapper.NewDiscoveryRESTMapper(gr)
|
||
|
|
||
|
mapping, err := mapper.RESTMapping(gvk.GroupKind(), gvk.Version)
|
||
|
if err != nil {
|
||
|
return schema.GroupVersionResource{}, err
|
||
|
}
|
||
|
|
||
|
return mapping.Resource, nil
|
||
|
}
|