From d3a63ffbec643f7a2746dfe2db2313492ef163af Mon Sep 17 00:00:00 2001
From: cheliequan <liequanche@126.com>
Date: 星期三, 31 五月 2023 09:57:21 +0800
Subject: [PATCH] 更新rancher部署代码

---
 src/main/main.go |   88 ++++++++++++++++++--------------------------
 1 files changed, 36 insertions(+), 52 deletions(-)

diff --git a/src/main/main.go b/src/main/main.go
index dce6324..db889ec 100644
--- a/src/main/main.go
+++ b/src/main/main.go
@@ -26,17 +26,8 @@
 	namespaces          = []string{"guangsheng", "geruimi", "tongsheng"}
 )
 
-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 {
@@ -161,7 +155,24 @@
 	}
 
 	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)
+		}
+		rancher_install_test(rancherClusterConfig.Nodes[0])
 		os.Exit(1)
 	}
 
@@ -300,41 +311,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)
+                fmt.Println(rancherClusterConfig)
+		cluster_test(clusterName, rancherClusterConfig)
 	}
 
 }

--
Gitblit v1.8.0