You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
60 lines
1.4 KiB
60 lines
1.4 KiB
1 year ago
|
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(_)
|
||
|
}
|