cheliequan
2023-05-30 fa2acd8e330344d9d17ff778a7a48c1d09ab74be
src/main/main.go
@@ -15,6 +15,8 @@
   "k8s.io/client-go/tools/clientcmd"
   "basic.com/aps/aps_deploy.git/src/k8s"
   "github.com/spf13/viper"
)
var (
@@ -68,35 +70,7 @@
   os.Exit(0)
}
func cluster_test() {
   clusterName := "kubernetus"
   nodes := []Node{
      {
         ClusterName: clusterName,
         Roles:       []string{"etcd", "controlplane", "worker"},
         IP:          "192.168.20.189",
         SSHUsername: "basic",
         SSHPassword: "123",
         SSHPort:     22,
      },
      {
         ClusterName: clusterName,
         Roles:       []string{"worker"},
         IP:          "192.168.20.10",
         SSHUsername: "basic",
         SSHPassword: "123",
         SSHPort:     22,
      },
      {
         ClusterName: clusterName,
         Roles:       []string{"worker"},
         IP:          "192.168.20.115",
         SSHUsername: "basic",
         SSHPassword: "alien123",
         SSHPort:     22,
      },
      // Add more nodes here if needed
   }
func cluster_test(clusterName string,nodes []Node,rancherConfig rancher.RancherConfig) {
   // Create the cluster
   // Rancher configuration
@@ -104,11 +78,6 @@
      RancherURL:  "https://192.168.20.119:8443",
      BearerToken: "token-nnrsc:w68zdt8s47fnpjd5xqdl5hhzpz4j2d56kt5nx49nsswcbpdzc28kh5",
   }*/
   rancherConfig := rancher.RancherConfig{
      RancherURL:  "https://192.168.20.189:8443",
      BearerToken: "token-t4cdf:h7zhmbvbzdvd9mmjw8zmt8rh4m7rl5gtqpqljlhl9tlr2z26j9lf4l",
   }
   //   Deploy clusterId
   clusterID, err := cluster.GetClusterID(rancherConfig.RancherURL, rancherConfig.BearerToken, clusterName)
@@ -191,30 +160,35 @@
      os.Exit(1)
   }
   // 配置 Kubernetes 集群的 kubeconfig 路径
   kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file")
   flag.Parse()
   // 创建 Kubernetes 客户端
   config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
   if err != nil {
      panic(err.Error())
   }
   clientset, err := kubernetes.NewForConfig(config)
   if err != nil {
      panic(err.Error())
   if rancherInstallCmd.Parsed() {
      rancher_install_test()
      os.Exit(1)
   }
   // 执行 create 命令
   if createCmd.Parsed() {
      // 配置 Kubernetes 集群的 kubeconfig 路径
      kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file")
      flag.Parse()
      // 创建 Kubernetes 客户端
      config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
      if err != nil {
         panic(err.Error())
      }
      clientset, err := kubernetes.NewForConfig(config)
      if err != nil {
         panic(err.Error())
      }
      if *createNamespace == "" || *createDeployment == "" || *createService == "" {
         fmt.Println("Namespace, Deployment, and Service names are required")
         createCmd.PrintDefaults()
         os.Exit(1)
      }
      err := k8s.CreateDeploymentAndService(clientset, *createNamespace, *createDeployment, *createService)
      err = k8s.CreateDeploymentAndService(clientset, *createNamespace, *createDeployment, *createService)
      if err != nil {
         panic(err)
      }
@@ -229,13 +203,28 @@
   // 执行 delete 命令
   if deleteCmd.Parsed() {
      // 配置 Kubernetes 集群的 kubeconfig 路径
      kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file")
      flag.Parse()
      // 创建 Kubernetes 客户端
      config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
      if err != nil {
         panic(err.Error())
      }
      clientset, err := kubernetes.NewForConfig(config)
      if err != nil {
         panic(err.Error())
      }
      if *deleteNamespace == "" || *deleteDeployment == "" || *deleteService == "" {
         fmt.Println("Namespace, Deployment, and Service names are required")
         deleteCmd.PrintDefaults()
         os.Exit(1)
      }
      err := k8s.DeleteResources(clientset, *deleteNamespace, *deleteDeployment, *deleteService)
      err = k8s.DeleteResources(clientset, *deleteNamespace, *deleteDeployment, *deleteService)
      if err != nil {
         panic(err)
      }
@@ -245,6 +234,21 @@
   // 执行创建和删除测试
   if testCmd.Parsed() {
      // 配置 Kubernetes 集群的 kubeconfig 路径
      kubeconfig := flag.String("kubeconfig", filepath.Join(util.HomeDir(), ".kube", "config"), "kubeconfig file")
      flag.Parse()
      // 创建 Kubernetes 客户端
      config, err := clientcmd.BuildConfigFromFlags("", *kubeconfig)
      if err != nil {
         panic(err.Error())
      }
      clientset, err := kubernetes.NewForConfig(config)
      if err != nil {
         panic(err.Error())
      }
      fmt.Println("\033[97;40mRunning create and delete tests...\033[0m")
      // 创建测试
@@ -284,11 +288,53 @@
   }
   if clusterCmd.Parsed() {
      cluster_test()
   }
      // 初始化配置解析库
      viper.SetConfigName("config")
      viper.SetConfigType("yaml")
      viper.AddConfigPath("./config")
   if rancherInstallCmd.Parsed() {
      rancher_install_test()
      // 读取配置文件
      err := viper.ReadInConfig()
      if err != nil {
         log.Fatalf("Failed to read config file: %v", err)
      }
      // 解析配置文件中的字段
      var rancherConfig rancher.RancherConfig
      err = viper.Unmarshal(&rancherConfig)
      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)
   }
}