package test import ( "k8s-manager/handler/common" "log" "k8s.io/client-go/discovery" "k8s.io/client-go/tools/clientcmd" ) func DiscoveryClientGroupAndVersions() { //discovery.DiscoveryClient{} // 1. 配置 config, err := clientcmd.BuildConfigFromFlags("", "../"+common.KubeConfigPath) if err != nil { log.Fatalln(err) } // 2. 客户端 discoveryClient, err := discovery.NewDiscoveryClientForConfig(config) if err != nil { log.Fatalln(err) } // 3. 获取资源,获取全部的组和版本资源 apiGroups, apiResourceList, err := discoveryClient.ServerGroupsAndResources() if err != nil { log.Fatalln(err) } // 4. 处理结果 // groups for _, g := range apiGroups { log.Println("----------------Group----------------") log.Printf("Name: %s \n", g.Name) // version log.Println("================Versions================") for _, v := range g.Versions { log.Printf("GroupVersion: %s \n", v.GroupVersion) } } log.Println("******************************************************") // apiResourceList for _, ar := range apiResourceList { log.Println("----------------apiResource----------------") log.Printf("GroupVerion: %s, ", ar.GroupVersion) log.Println("----------------Resources----------------") for _, r := range ar.APIResources { log.Printf("Name: %s Namespace: %v\n", r.Name, r.Namespaced) } } //log.Println(_) }