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