From 0e22b2dfe7a24c528fb8ac58ece089bd032f5478 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期二, 26 十二月 2023 17:49:34 +0800
Subject: [PATCH] 支持添加额外的env

---
 src/k8s/create.go |   31 ++++++++++++++++++++++++-------
 src/main/main.go  |    4 ++--
 2 files changed, 26 insertions(+), 9 deletions(-)

diff --git a/src/k8s/create.go b/src/k8s/create.go
index ae36b1c..6c4ccc2 100644
--- a/src/k8s/create.go
+++ b/src/k8s/create.go
@@ -60,7 +60,7 @@
 
 	// 鍒涘缓澶氫釜 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)
 		}
@@ -129,7 +129,7 @@
 	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
@@ -144,7 +144,7 @@
 	}
 
 	// 鍒涘缓 Deployment
-	err = createDeployment(config)
+	err = createDeployment(config, extendEnvs)
 	if err != nil {
 		return err
 	}
@@ -181,10 +181,7 @@
 
 	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",
@@ -240,6 +237,26 @@
 		})
 	}
 
+	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,
diff --git a/src/main/main.go b/src/main/main.go
index cb4f545..530cf63 100644
--- a/src/main/main.go
+++ b/src/main/main.go
@@ -219,7 +219,7 @@
 			NameSpace:      *createNamespace,
 			DeploymentName: *createDeployment,
 			ServiceName:    *createService,
-		})
+		}, nil)
 		if err != nil {
 			panic(err)
 		}
@@ -292,7 +292,7 @@
 				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 {

--
Gitblit v1.8.0