Просмотр исходного кода

Merge branch 'beta.3.domain-generation' into dev

mergin
Alexander Belanger 5 лет назад
Родитель
Сommit
614f1f65d6

+ 23 - 21
dashboard/src/main/home/launch/expanded-template/LaunchTemplate.tsx

@@ -182,7 +182,7 @@ class LaunchTemplate extends Component<PropsType, StateType> {
     this.setState({ saveValuesStatus: "loading" });
     this.setState({ saveValuesStatus: "loading" });
 
 
     // Convert dotted keys to nested objects
     // Convert dotted keys to nested objects
-    let values : any = {};
+    let values: any = {};
     for (let key in rawValues) {
     for (let key in rawValues) {
       _.set(values, key, rawValues[key]);
       _.set(values, key, rawValues[key]);
     }
     }
@@ -225,35 +225,37 @@ class LaunchTemplate extends Component<PropsType, StateType> {
     }
     }
 
 
     _.set(values, "ingress.provider", provider);
     _.set(values, "ingress.provider", provider);
-    var url : string
+    var url: string;
 
 
     // check if template is docker and create external domain if necessary
     // check if template is docker and create external domain if necessary
     if (this.props.currentTemplate.name == "web") {
     if (this.props.currentTemplate.name == "web") {
       if (values?.ingress?.enabled && values?.ingress?.hosts?.length == 0) {
       if (values?.ingress?.enabled && values?.ingress?.hosts?.length == 0) {
         url = await new Promise((resolve, reject) => {
         url = await new Promise((resolve, reject) => {
-          api.createSubdomain(
-            "<token>",
-            {
-              release_name: name,
-            },
-            {
-              id: currentProject.id,
-              cluster_id: currentCluster.id,
-            }
-          ).then((res) => {
-            resolve(res.data?.external_url)
-          })
-          .catch((err) => {
-            this.setState({ saveValuesStatus: "error" });
-          });
-        })
+          api
+            .createSubdomain(
+              "<token>",
+              {
+                release_name: name,
+              },
+              {
+                id: currentProject.id,
+                cluster_id: currentCluster.id,
+              }
+            )
+            .then((res) => {
+              resolve(res.data?.external_url);
+            })
+            .catch((err) => {
+              this.setState({ saveValuesStatus: "error" });
+            });
+        });
 
 
-        values.ingress.hosts = [url]
-        values.ingress.custom_domain = true
+        values.ingress.hosts = [url];
+        values.ingress.custom_domain = true;
       }
       }
     }
     }
 
 
-    console.log("VALUES ARE", values)
+    console.log("VALUES ARE", values);
 
 
     api
     api
       .deployTemplate(
       .deployTemplate(

+ 14 - 1
internal/kubernetes/domain/domain.go

@@ -31,8 +31,12 @@ func GetNGINXIngressServiceIP(clientset kubernetes.Interface) (string, bool, err
 
 
 	for _, svc := range svcList.Items {
 	for _, svc := range svcList.Items {
 		// check that helm chart annotation is correct exists
 		// check that helm chart annotation is correct exists
+		fmt.Println("CHECKING SVC", svc.ObjectMeta.Name)
+
 		if chartAnn, found := svc.ObjectMeta.Labels["helm.sh/chart"]; found {
 		if chartAnn, found := svc.ObjectMeta.Labels["helm.sh/chart"]; found {
+			fmt.Println("FOUND CHART ANNOTATION", chartAnn)
 			if (strings.Contains(chartAnn, "ingress-nginx") || strings.Contains(chartAnn, "nginx-ingress")) && svc.Spec.Type == v1.ServiceTypeLoadBalancer {
 			if (strings.Contains(chartAnn, "ingress-nginx") || strings.Contains(chartAnn, "nginx-ingress")) && svc.Spec.Type == v1.ServiceTypeLoadBalancer {
+				fmt.Println("GOT AN INGRESS NGINX")
 				nginxSvc = &svc
 				nginxSvc = &svc
 				exists = true
 				exists = true
 			}
 			}
@@ -43,8 +47,17 @@ func GetNGINXIngressServiceIP(clientset kubernetes.Interface) (string, bool, err
 		return "", false, nil
 		return "", false, nil
 	}
 	}
 
 
+	fmt.Println("IP ARRAY IS", nginxSvc.Status.LoadBalancer.Ingress)
+
 	if ipArr := nginxSvc.Status.LoadBalancer.Ingress; len(ipArr) > 0 {
 	if ipArr := nginxSvc.Status.LoadBalancer.Ingress; len(ipArr) > 0 {
-		return ipArr[0].IP, true, nil
+		// first default to ip, then check hostname
+		if ipArr[0].IP != "" {
+			fmt.Println("GOT IP ADDR", ipArr[0].IP)
+			return ipArr[0].IP, true, nil
+		} else if ipArr[0].Hostname != "" {
+			fmt.Println("GOT HOSTNAME", ipArr[0].Hostname)
+			return ipArr[0].Hostname, true, nil
+		}
 	}
 	}
 
 
 	return "", false, nil
 	return "", false, nil