package main
import (
"context"
"flag"
"fmt"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/client-go/kubernetes"
"k8s.io/client-go/rest"
"k8s.io/client-go/tools/clientcmd"
"os"
"path/filepath"
)
func main() {
var err error
var kubeconfig *string
var config *rest.Config
fmt.Println(homeDir())
if home := homeDir(); home != "" {
kubeconfig = flag.String("kubeconfig", filepath.Join(home, ".kube", "config"), "(可选)输入kubeconfig的绝对路径")
} else {
kubeconfig = flag.String("kubeconfig", "", "输入kubeconfig的绝对路径")
}
flag.Parse()
fmt.Println(*kubeconfig)
if config, err = rest.InClusterConfig(); err != nil {
if config,err = clientcmd.BuildConfigFromFlags("",*kubeconfig);err != nil{
panic(err.Error())
}
}
clientset,err := kubernetes.NewForConfig(config)
if err != nil {
panic(err.Error())
}
deployments,err := clientset.AppsV1().Deployments("glzh-dev").List(context.TODO(),metav1.ListOptions{})
if err != nil {
panic(err.Error())
}
for idx,deploy := range deployments.Items{
fmt.Printf("%d---->%s\n",idx+1,deploy.Name)
}
}
func homeDir() string {
if h := os.Getenv("HOME"); h != "" {
return h
}
return os.Getenv("USERPROFILE")
}