From ae1fefcf99a264c52ef4762bb2b59648932b28b0 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期一, 08 一月 2024 19:11:10 +0800 Subject: [PATCH] update --- src/main/main.go | 175 ++++++++++++++++++++++++++++++++++----------------------- 1 files changed, 104 insertions(+), 71 deletions(-) diff --git a/src/main/main.go b/src/main/main.go index dce6324..c1d9ea2 100644 --- a/src/main/main.go +++ b/src/main/main.go @@ -20,23 +20,14 @@ ) var ( - replicas int32 = 3 + replicas int32 = 1 port int32 = 9081 usedNodePorts = make(map[int32]bool) - namespaces = []string{"guangsheng", "geruimi", "tongsheng"} + namespaces = []string{"testFactory1", "testFactory2", "testFactory3"} ) -type Node struct { - ClusterName string `json:"clusterName"` - Roles []string `json:"roles"` - IP string `json:"ip"` - SSHUsername string `json:"sshUsername"` - SSHPassword string `json:"sshPassword"` - SSHPort int `json:"sshPort"` -} - -func rancher_install_test() { - nodes := []Node{ +func rancher_install_test(node rancher.Node) { + /* nodes := []Node{ { Roles: []string{"etcd", "controlplane", "worker"}, IP: "192.168.20.189", @@ -59,10 +50,10 @@ SSHPort: 22, }, // Add more nodes here if needed - } + }*/ //install rancher on master node - err := rancher.InstallDockerAndRancher(nodes[0].IP, nodes[0].SSHUsername, nodes[0].SSHPassword, nodes[0].SSHPort) + err := rancher.InstallDockerAndRancher(node.IP, node.SSHUsername, node.SSHPassword, node.SSHPort) if err != nil { log.Fatalf("Failed to install Rancher: %v", err) } @@ -70,7 +61,7 @@ os.Exit(0) } -func cluster_test(clusterName string,nodes []Node,rancherConfig rancher.RancherConfig) { +func cluster_test(clusterName string, rancherClusterConfig rancher.RancherClusterConfig) { // Create the cluster // Rancher configuration @@ -79,16 +70,19 @@ BearerToken: "token-nnrsc:w68zdt8s47fnpjd5xqdl5hhzpz4j2d56kt5nx49nsswcbpdzc28kh5", }*/ + fmt.Println(rancherClusterConfig) + fmt.Println(rancherClusterConfig.RancherURL) + fmt.Println(rancherClusterConfig.BearerToken) // Deploy clusterId - clusterID, err := cluster.GetClusterID(rancherConfig.RancherURL, rancherConfig.BearerToken, clusterName) + clusterID, err := cluster.GetClusterID(rancherClusterConfig.RancherURL, rancherClusterConfig.BearerToken, clusterName) if err != nil { - log.Fatal(err) - err = cluster.CreateCluster(rancherConfig, clusterName) + fmt.Printf("Cluster not found: %s %v\n", clusterName, err) + _, err = cluster.CreateCluster(rancherClusterConfig, clusterName) if err != nil { log.Fatalf("Failed to create cluster: %v", err) } fmt.Printf("Cluster created: %s\n", clusterName) - clusterID, err = cluster.GetClusterID(rancherConfig.RancherURL, rancherConfig.BearerToken, clusterName) + clusterID, err = cluster.GetClusterID(rancherClusterConfig.RancherURL, rancherClusterConfig.BearerToken, clusterName) if err != nil { log.Fatal(err) } @@ -96,13 +90,13 @@ fmt.Println(clusterID) // Deploy nodeCommand - nodeCommand, err := cluster.GetNodeCommand(rancherConfig.RancherURL, rancherConfig.BearerToken, clusterID) + nodeCommand, err := cluster.GetNodeCommand(rancherClusterConfig.RancherURL, rancherClusterConfig.BearerToken, clusterID) if err != nil { log.Fatal(err) } fmt.Println(nodeCommand) - for _, node := range nodes { + for _, node := range rancherClusterConfig.Nodes { //Deploy Docker on each node err = util.InstallDocker(node.IP, node.SSHUsername, node.SSHPassword, node.SSHPort) if err != nil { @@ -133,8 +127,9 @@ createNamespace := createCmd.String("ns", "", "Namespace name") createDeployment := createCmd.String("deployment", "", "Deployment name") + fmt.Println(createDeployment) createService := createCmd.String("service", "", "Service name") - + fmt.Println(createService) deleteNamespace := deleteCmd.String("ns", "", "Namespace name") deleteDeployment := deleteCmd.String("deployment", "", "Deployment name") deleteService := deleteCmd.String("service", "", "Service name") @@ -161,15 +156,45 @@ } if rancherInstallCmd.Parsed() { - rancher_install_test() + //// 鍒濆鍖栭厤缃В鏋愬簱 + //viper.SetConfigName("config") + //viper.SetConfigType("yaml") + //viper.AddConfigPath("./config") + // + //// 璇诲彇閰嶇疆鏂囦欢 + //err := viper.ReadInConfig() + //if err != nil { + // log.Fatalf("Failed to read config file: %v", err) + //} + + // 瑙f瀽閰嶇疆鏂囦欢涓殑瀛楁 + var rancherClusterConfig rancher.RancherClusterConfig + //err = viper.Unmarshal(&rancherClusterConfig) + //if err != nil { + // log.Fatalf("Failed to unmarshal config: %v", err) + //} + + rancherClusterConfig.Nodes = make([]rancher.Node, 3) + rancherClusterConfig.Nodes[0] = rancher.Node{ + Roles: []string{"worker"}, + IP: "192.168.20.119", + SSHUsername: "basic", + SSHPassword: "basic2021", + SSHPort: 22, + } + + rancher_install_test(rancherClusterConfig.Nodes[0]) os.Exit(1) } // 鎵ц create 鍛戒护 if createCmd.Parsed() { + // 閰嶇疆 Kubernetes 闆嗙兢鐨� kubeconfig 璺緞 kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file") flag.Parse() + + fmt.Println(&kubeconfig) // 鍒涘缓 Kubernetes 瀹㈡埛绔� config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) @@ -177,23 +202,38 @@ panic(err.Error()) } + fmt.Println(&config) + clientset, err := kubernetes.NewForConfig(config) if err != nil { panic(err.Error()) } - if *createNamespace == "" || *createDeployment == "" || *createService == "" { + if *createNamespace == "" { fmt.Println("Namespace, Deployment, and Service names are required") createCmd.PrintDefaults() os.Exit(1) } - err = k8s.CreateDeploymentAndService(clientset, *createNamespace, *createDeployment, *createService) + err = k8s.CreateNamespace(clientset, *createNamespace) if err != nil { panic(err) } + for _, proj := range k8s.Projects { + obj := k8s.GetCreateObj(proj) + err = obj.CreateDeploymentAndService(k8s.Config{ + Client: clientset, + NameSpace: *createNamespace, + DeploymentName: proj, + ServiceName: proj, + Image: "fai365.com:9088/aps/aps", + }, nil) + if err != nil { + panic(err) + } + } - nodeport, err := k8s.GetServiceNodePort(clientset, *createNamespace, *createService) + nodeport, err := k8s.GetServiceNodePort(clientset, *createNamespace, "aps") if err != nil { panic(err) } @@ -206,6 +246,12 @@ // 閰嶇疆 Kubernetes 闆嗙兢鐨� kubeconfig 璺緞 kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file") flag.Parse() + + fmt.Println(*kubeconfig) + fmt.Println(*kubeconfig) + fmt.Println(*kubeconfig) + fmt.Println(*kubeconfig) + fmt.Println(*kubeconfig) // 鍒涘缓 Kubernetes 瀹㈡埛绔� config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig) @@ -224,9 +270,14 @@ os.Exit(1) } - err = k8s.DeleteResources(clientset, *deleteNamespace, *deleteDeployment, *deleteService) - if err != nil { - panic(err) + for _, proj := range k8s.Projects { + err = k8s.DeleteResources(clientset, *deleteNamespace, proj, proj) + if err != nil { + panic(err) + } + if err != nil { + panic(err) + } } fmt.Println("Resources deleted.") @@ -256,18 +307,27 @@ for _, ns := range namespaces { deploymentName := ns serviceName := ns - err := k8s.CreateDeploymentAndService(clientset, ns, deploymentName, serviceName) - if err != nil { - log.Printf("\033[97;41mFailed to create resources in namespace %s: %v\033[0m\n", ns, err) - } else { - nodeport, err := k8s.GetServiceNodePort(clientset, ns, ns) + for _, proj := range k8s.Projects { + obj := k8s.GetCreateObj(proj) + err = obj.CreateDeploymentAndService(k8s.Config{ + Client: clientset, + NameSpace: ns, + DeploymentName: deploymentName, + ServiceName: serviceName, + }, nil) if err != nil { - panic(err) - } + log.Printf("\033[97;41mFailed to create resources in namespace %s: %v\033[0m\n", ns, err) + } else { + nodeport, err := k8s.GetServiceNodePort(clientset, ns, ns) + if err != nil { + panic(err) + } - log.Printf("Service NodePort: %d\n", nodeport) - log.Printf("\033[97;42mSuccessfully created resources in namespace %s\033[0m\n", ns) + log.Printf("Service NodePort: %d\n", nodeport) + log.Printf("\033[97;42mSuccessfully created resources in namespace %s\033[0m\n", ns) + } } + } // 寤惰繜 1000 绉掑悗鍒犻櫎鍒涘缓鐨勮祫婧� @@ -300,41 +360,14 @@ } // 瑙f瀽閰嶇疆鏂囦欢涓殑瀛楁 - var rancherConfig rancher.RancherConfig - err = viper.Unmarshal(&rancherConfig) + var rancherClusterConfig rancher.RancherClusterConfig + err = viper.Unmarshal(&rancherClusterConfig) if err != nil { log.Fatalf("Failed to unmarshal config: %v", err) } - clusterName := "kubernetus" - nodes := []Node{ - { - ClusterName: clusterName, - Roles: []string{"worker"}, - IP: "192.168.20.189", - SSHUsername: "basic", - SSHPassword: "123", - SSHPort: 22, - }, - { - ClusterName: clusterName, - Roles: []string{"etcd", "worker"}, - IP: "192.168.20.10", - SSHUsername: "basic", - SSHPassword: "123", - SSHPort: 22, - }, - { - ClusterName: clusterName, - Roles: []string{"etcd", "controlplane","worker"}, - IP: "192.168.20.115", - SSHUsername: "basic", - SSHPassword: "alien123", - SSHPort: 22, - }, - // Add more nodes here if needed - } - - cluster_test(clusterName, nodes, rancherConfig) + clusterName := "kubernetus" + fmt.Println(rancherClusterConfig) + cluster_test(clusterName, rancherClusterConfig) } } -- Gitblit v1.8.0