| | |
| | | "k8s.io/client-go/tools/clientcmd" |
| | | |
| | | "basic.com/aps/aps_deploy.git/src/k8s" |
| | | |
| | | "github.com/spf13/viper" |
| | | ) |
| | | |
| | | var ( |
| | |
| | | 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 |
| | |
| | | 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) |
| | |
| | | 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) |
| | | } |
| | |
| | | |
| | | // 执行 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) |
| | | } |
| | |
| | | |
| | | // 执行创建和删除测试 |
| | | 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") |
| | | |
| | | // 创建测试 |
| | |
| | | } |
| | | |
| | | 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) |
| | | } |
| | | |
| | | } |