| | |
| | | |
| | | // 创建多个 Namespace 下的相同名称的 Deployment 和 Service |
| | | for _, ns := range namespaces { |
| | | err = CreateDeploymentAndService(Config{Client: clientset, NameSpace: ns, DeploymentName: ns, ServiceName: ns}) |
| | | err = CreateDeploymentAndService(Config{Client: clientset, NameSpace: ns, DeploymentName: ns, ServiceName: ns}, nil) |
| | | if err != nil { |
| | | panic(err) |
| | | } |
| | |
| | | return nil |
| | | } |
| | | |
| | | func CreateDeploymentAndService(config Config) error { |
| | | func CreateDeploymentAndService(config Config, extendEnvs map[string]string) error { |
| | | fmt.Println("\033[1;37;40mCreating resources in Namespace:", config.NameSpace, "\033[0m") |
| | | |
| | | // 检测并删除已存在的 Deployment 和 Service |
| | |
| | | } |
| | | |
| | | // 创建 Deployment |
| | | err = createDeployment(config) |
| | | err = createDeployment(config, extendEnvs) |
| | | if err != nil { |
| | | return err |
| | | } |
| | |
| | | |
| | | return nil |
| | | } |
| | | |
| | | func createDeployment(config Config) error { |
| | | fmt.Println("\033[1;37;40mCreating Deployment:", config.DeploymentName, "\033[0m") |
| | | |
| | | func createEnv(config Config, pairs map[string]string) []apiv1.EnvVar { |
| | | envs := []apiv1.EnvVar{ |
| | | { |
| | | Name: "GRPC_PORT", |
| | |
| | | }) |
| | | } |
| | | |
| | | if len(pairs) > 0 { |
| | | for name, value := range pairs { |
| | | envs = append(envs, apiv1.EnvVar{ |
| | | Name: name, |
| | | Value: value, |
| | | }) |
| | | } |
| | | } |
| | | for name, value := range pairs { |
| | | envs = append(envs, apiv1.EnvVar{ |
| | | Name: name, |
| | | Value: value, |
| | | }) |
| | | } |
| | | return envs |
| | | } |
| | | func createDeployment(config Config, extendEnvs map[string]string) error { |
| | | fmt.Println("\033[1;37;40mCreating Deployment:", config.DeploymentName, "\033[0m") |
| | | |
| | | envs := createEnv(config, extendEnvs) |
| | | deployment := &appsv1.Deployment{ |
| | | ObjectMeta: metav1.ObjectMeta{ |
| | | Name: config.DeploymentName, |
| | |
| | | NameSpace: *createNamespace, |
| | | DeploymentName: *createDeployment, |
| | | ServiceName: *createService, |
| | | }) |
| | | }, nil) |
| | | if err != nil { |
| | | panic(err) |
| | | } |
| | |
| | | NameSpace: ns, |
| | | DeploymentName: deploymentName, |
| | | ServiceName: serviceName, |
| | | }) |
| | | }, nil) |
| | | if err != nil { |
| | | log.Printf("\033[97;41mFailed to create resources in namespace %s: %v\033[0m\n", ns, err) |
| | | } else { |