From 052db984ad73ddb0ba66237e93a48b5e120e6a4e Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期三, 31 五月 2023 20:13:58 +0800 Subject: [PATCH] 获取集群 tmp --- src/main/main.go | 54 ++++++++++++++++----------- src/cluster/cluster.go | 45 +++++++++++++++++++++- src/rancher/rancher.go | 7 +-- 3 files changed, 76 insertions(+), 30 deletions(-) diff --git a/src/cluster/cluster.go b/src/cluster/cluster.go index 39e167d..82aa4bc 100644 --- a/src/cluster/cluster.go +++ b/src/cluster/cluster.go @@ -8,8 +8,8 @@ "net/http" "strings" - "basic.com/aps/aps_deploy.git/src/util" "basic.com/aps/aps_deploy.git/src/rancher" + "basic.com/aps/aps_deploy.git/src/util" ) type Cluster struct { @@ -146,6 +146,46 @@ return "", fmt.Errorf("cluster '%s' not found", clusterName) } +func GetClusters(serverURL, bearerToken string) ([]string, error) { + + url := fmt.Sprintf("%s/v3/clusters", serverURL) + + req, err := http.NewRequest("GET", url, nil) + if err != nil { + return nil, fmt.Errorf("failed to get cluster list request: %v", err) + } + + req.Header.Set("Authorization", fmt.Sprintf("Bearer %s", bearerToken)) + + client := util.CreateHTTPClient() + + resp, err := client.Do(req) + if err != nil { + return nil, fmt.Errorf("failed to get cluster list: %v", err) + } + defer resp.Body.Close() + + if resp.StatusCode != http.StatusOK { + return nil, fmt.Errorf("failed to get cluster list: unexpected status code %d", resp.StatusCode) + } + + // Parse the API response + var clustersResponse ClustersResponse + err = json.NewDecoder(resp.Body).Decode(&clustersResponse) + if err != nil { + return nil, fmt.Errorf("failed to decode cluster list response: %v", err) + } + + var clusters = make([]string, 0) + // Print cluster names + for _, cluster := range clustersResponse.Data { + clusters = append(clusters, cluster.ID) + fmt.Printf("Cluster ID: %s, Name: %s\n", cluster.ID, cluster.Name) + } + + return clusters, nil +} + type Node struct { ClusterName string `json:"clusterName"` Roles []string `json:"roles"` @@ -154,7 +194,6 @@ SSHPassword string `json:"sshPassword"` SSHPort int `json:"sshPort"` } - type ClusterCreateRequest struct { Name string `json:"name"` @@ -249,7 +288,7 @@ func CreateCluster(rancherClusterConfig rancher.RancherClusterConfig, clusterName string) error { requestBody := createClusterData(clusterName) - fmt.Println(rancherClusterConfig.RancherURL) + fmt.Println(rancherClusterConfig.RancherURL) url := fmt.Sprintf("%s/v3/clusters", rancherClusterConfig.RancherURL) req, err := http.NewRequest("POST", url, bytes.NewBuffer(requestBody)) diff --git a/src/main/main.go b/src/main/main.go index db889ec..8897078 100644 --- a/src/main/main.go +++ b/src/main/main.go @@ -27,7 +27,7 @@ ) func rancher_install_test(node rancher.Node) { -/* nodes := []Node{ + /* nodes := []Node{ { Roles: []string{"etcd", "controlplane", "worker"}, IP: "192.168.20.189", @@ -61,7 +61,7 @@ os.Exit(0) } -func cluster_test(clusterName string,rancherClusterConfig rancher.RancherClusterConfig) { +func cluster_test(clusterName string, rancherClusterConfig rancher.RancherClusterConfig) { // Create the cluster // Rancher configuration @@ -70,9 +70,9 @@ BearerToken: "token-nnrsc:w68zdt8s47fnpjd5xqdl5hhzpz4j2d56kt5nx49nsswcbpdzc28kh5", }*/ - fmt.Println(rancherClusterConfig) - fmt.Println(rancherClusterConfig.RancherURL) - fmt.Println(rancherClusterConfig.BearerToken) + fmt.Println(rancherClusterConfig) + fmt.Println(rancherClusterConfig.RancherURL) + fmt.Println(rancherClusterConfig.BearerToken) // Deploy clusterId clusterID, err := cluster.GetClusterID(rancherClusterConfig.RancherURL, rancherClusterConfig.BearerToken, clusterName) if err != nil { @@ -155,23 +155,33 @@ } if rancherInstallCmd.Parsed() { - // 鍒濆鍖栭厤缃В鏋愬簱 - viper.SetConfigName("config") - viper.SetConfigType("yaml") - viper.AddConfigPath("./config") - - // 璇诲彇閰嶇疆鏂囦欢 - err := viper.ReadInConfig() - if err != nil { - log.Fatalf("Failed to read config file: %v", err) - } + //// 鍒濆鍖栭厤缃В鏋愬簱 + //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) + 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.189", + SSHUsername: "basic", + SSHPassword: "123", + SSHPort: 22, } + rancher_install_test(rancherClusterConfig.Nodes[0]) os.Exit(1) } @@ -311,13 +321,13 @@ } // 瑙f瀽閰嶇疆鏂囦欢涓殑瀛楁 - var rancherClusterConfig rancher.RancherClusterConfig + var rancherClusterConfig rancher.RancherClusterConfig err = viper.Unmarshal(&rancherClusterConfig) if err != nil { log.Fatalf("Failed to unmarshal config: %v", err) } - clusterName := "kubernetus" - fmt.Println(rancherClusterConfig) + clusterName := "kubernetus" + fmt.Println(rancherClusterConfig) cluster_test(clusterName, rancherClusterConfig) } diff --git a/src/rancher/rancher.go b/src/rancher/rancher.go index 80b2662..2c32007 100644 --- a/src/rancher/rancher.go +++ b/src/rancher/rancher.go @@ -6,7 +6,6 @@ "basic.com/aps/aps_deploy.git/src/util" ) - type Node struct { Roles []string `json:"roles"` IP string `json:"ip"` @@ -15,14 +14,12 @@ SSHPort int `json:"sshPort"` } - type RancherClusterConfig struct { RancherURL string `json:"rancherURL"` BearerToken string `json:"bearerToken"` - ClusterName string `mapstructure:"ClusterName"` - Nodes []Node `mapstructure:"Nodes"` + ClusterName string `mapstructure:"ClusterName"` + Nodes []Node `mapstructure:"Nodes"` } - func isRancherInstalled(ip, username, password string, sshPort int) (bool, error) { // 妫�鏌ancher瀹瑰櫒鏄惁宸茶繍琛� -- Gitblit v1.8.0