wangpengfei
2023-06-08 2ad213b923c4475efe7d76dfdcbb8323616a6a3a
fix
修改 util Cluster
根据ClusterId 保存并读取kube config
3个文件已修改
34 ■■■■■ 已修改文件
src/cluster/cluster.go 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/main.go 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/util/util.go 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/cluster/cluster.go
@@ -236,7 +236,7 @@
    if err != nil {
        log.Fatalf("Failed to get home directory: %v", err)
    }
    kubeconfigDir := filepath.Join(homeDir, ".kube")
    kubeconfigDir := filepath.Join(homeDir, ".kube", clusterName)
    err = os.MkdirAll(kubeconfigDir, 0700)
    if err != nil {
        log.Fatalf("Failed to create .kube directory: %v", err)
src/main/main.go
@@ -214,7 +214,12 @@
            os.Exit(1)
        }
        err = k8s.CreateDeploymentAndService(clientset, *createNamespace, *createDeployment, *createService)
        err = k8s.CreateDeploymentAndService(k8s.Config{
            Client:         clientset,
            NameSpace:      *createNamespace,
            DeploymentName: *createDeployment,
            ServiceName:    *createService,
        })
        if err != nil {
            panic(err)
        }
@@ -282,7 +287,12 @@
        for _, ns := range namespaces {
            deploymentName := ns
            serviceName := ns
            err := k8s.CreateDeploymentAndService(clientset, ns, deploymentName, serviceName)
            err := k8s.CreateDeploymentAndService(k8s.Config{
                Client:         clientset,
                NameSpace:      ns,
                DeploymentName: deploymentName,
                ServiceName:    serviceName,
            })
            if err != nil {
                log.Printf("\033[97;41mFailed to create resources in namespace %s: %v\033[0m\n", ns, err)
            } else {
src/util/util.go
@@ -3,13 +3,11 @@
import (
    "context"
    "crypto/tls"
    "flag"
    "fmt"
    "k8s.io/client-go/kubernetes"
    "k8s.io/client-go/tools/clientcmd"
    "net/http"
    "os"
    "path/filepath"
    "time"
    "golang.org/x/crypto/ssh"
@@ -150,17 +148,19 @@
    return nil
}
var kubeConfig *string
var kubeConfig string
func GetClient() (*kubernetes.Clientset, error) {
func GetClient(cluster string) (*kubernetes.Clientset, error) {
    // 配置 Kubernetes 集群的 kubeconfig 路径
    if kubeConfig == nil {
        kubeConfig = flag.String("kubeconfig", filepath.Join(HomeDir(), ".kube", "config"), "kubeconfig file")
        flag.Parse()
    }
    //if kubeConfig == nil {
    //    kubeConfig = flag.String("kubeconfig", filepath.Join(HomeDir(), ".kube", cluster, "config"), "kubeconfig file")
    //    flag.Parse()
    //}
    kubeConfig = fmt.Sprintf("%s/.kube/%s/config", HomeDir(), cluster)
    // 创建 Kubernetes 客户端
    config, err := clientcmd.BuildConfigFromFlags("", *kubeConfig)
    config, err := clientcmd.BuildConfigFromFlags("", kubeConfig)
    if err != nil {
        panic(err.Error())
    }