Browse Source

cleaning up (#3001)

Feroze Mohideen 3 năm trước cách đây
mục cha
commit
26cdad015e

+ 12 - 37
api/server/handlers/release/get_controllers.go

@@ -77,61 +77,40 @@ func getController(controller grapher.Object, agent *kubernetes.Agent) (rc inter
 	case "deployment":
 		obj, err := agent.GetDeployment(controller)
 		if err != nil {
-			controller.Namespace = "default"
-			obj, err = agent.GetDeployment(controller)
-			if err != nil {
-				err = fmt.Errorf("error getting deployment: %w", err)
-				return nil, nil, err
-			}
+			err = fmt.Errorf("error getting deployment: %w", err)
+			return nil, nil, err
 		}
 
 		return obj, obj.Spec.Selector, nil
 	case "statefulset":
-
 		obj, err := agent.GetStatefulSet(controller)
 		if err != nil {
-			controller.Namespace = "default"
-			obj, err = agent.GetStatefulSet(controller)
-			if err != nil {
-				err = fmt.Errorf("error getting stateful set: %w", err)
-				return nil, nil, err
-			}
+			err = fmt.Errorf("error getting stateful set: %w", err)
+			return nil, nil, err
 		}
 
 		return obj, obj.Spec.Selector, nil
 	case "daemonset":
 		obj, err := agent.GetDaemonSet(controller)
 		if err != nil {
-			controller.Namespace = "default"
-			obj, err = agent.GetDaemonSet(controller)
-			if err != nil {
-				err = fmt.Errorf("error getting daemon set: %w", err)
-				return nil, nil, err
-			}
+			err = fmt.Errorf("error getting daemon set: %w", err)
+			return nil, nil, err
 		}
 
 		return obj, obj.Spec.Selector, nil
 	case "replicaset":
 		obj, err := agent.GetReplicaSet(controller)
 		if err != nil {
-			controller.Namespace = "default"
-			obj, err = agent.GetReplicaSet(controller)
-			if err != nil {
-				err = fmt.Errorf("error getting replica set: %w", err)
-				return nil, nil, err
-			}
+			err = fmt.Errorf("error getting replica set: %w", err)
+			return nil, nil, err
 		}
 
 		return obj, obj.Spec.Selector, nil
 	case "cronjob":
 		obj, err := agent.GetCronJob(controller)
 		if err != nil {
-			controller.Namespace = "default"
-			obj, err = agent.GetCronJob(controller)
-			if err != nil {
-				err = fmt.Errorf("error getting cron job %w", err)
-				return nil, nil, err
-			}
+			err = fmt.Errorf("error getting cron job %w", err)
+			return nil, nil, err
 		}
 
 		res := &metav1.LabelSelector{
@@ -146,12 +125,8 @@ func getController(controller grapher.Object, agent *kubernetes.Agent) (rc inter
 	case "job":
 		obj, err := agent.GetJob(controller)
 		if err != nil {
-			controller.Namespace = "default"
-			obj, err = agent.GetJob(controller)
-			if err != nil {
-				err = fmt.Errorf("error getting job: %w", err)
-				return nil, nil, err
-			}
+			err = fmt.Errorf("error getting job: %w", err)
+			return nil, nil, err
 		}
 
 		return obj, obj.Spec.Selector, nil

+ 10 - 8
api/server/handlers/stacks/parse.go

@@ -147,9 +147,6 @@ func getDefaultValues(app *App, env map[string]string, appType string) map[strin
 	}
 	if appType == "web" {
 		defaultValues = map[string]interface{}{
-			"ingress": map[string]interface{}{
-				"enabled": false,
-			},
 			"container": map[string]interface{}{
 				"command": runCommand,
 				"env": map[string]interface{}{
@@ -328,13 +325,18 @@ func createSubdomainIfRequired(
 	ingressMap, err := getNestedMap(mergedValues, "ingress")
 	if err == nil {
 		enabledVal, enabledExists := ingressMap["enabled"]
-		customDomVal, customDomExists := ingressMap["custom_domain"]
-
-		if enabledExists && customDomExists {
+		if enabledExists {
 			enabled, eOK := enabledVal.(bool)
-			customDomain, cOK := customDomVal.(bool)
+			if eOK && enabled {
+				// if custom domain, we don't need to create a subdomain
+				customDomVal, customDomExists := ingressMap["custom_domain"]
+				if customDomExists {
+					customDomain, cOK := customDomVal.(bool)
+					if cOK && customDomain {
+						return nil
+					}
+				}
 
-			if eOK && cOK && enabled && !customDomain {
 				// subdomain already exists, no need to create one
 				if porterHosts, ok := ingressMap["porter_hosts"].([]interface{}); ok && len(porterHosts) > 0 {
 					return nil

+ 6 - 1
dashboard/src/main/home/app-dashboard/expanded-app/ExpandedApp.tsx

@@ -594,7 +594,12 @@ const ExpandedApp: React.FC<Props> = ({ ...props }) => {
                 <Spacer inline x={1} />
                 <Text size={13} color="helper">
                   <SmallIcon src={github} />
-                  {appData.app.repo_name}
+                  <Link
+                    target="_blank"
+                    to={`https://github.com/${appData.app.repo_name}`}
+                  >
+                    {appData.app.repo_name}
+                  </Link>
                 </Text>
               </>
             )}

+ 44 - 81
dashboard/src/main/home/app-dashboard/expanded-app/LogSection.tsx

@@ -65,8 +65,6 @@ const LogSection: React.FC<Props> = ({ currentChart }) => {
     }, 5000);
   };
 
-  console.log(podFilter);
-
   const { loading, logs, refresh, moveCursor, paginationInfo } = useLogs(
     podFilter.podName,
     podFilter.podNamespace,
@@ -83,91 +81,57 @@ const LogSection: React.FC<Props> = ({ currentChart }) => {
       match_prefix: currentChart.name,
     };
 
-    const logPodValuesResp = await api.getLogPodValues("<TOKEN>", filters, {
-      project_id: currentProject.id,
-      cluster_id: currentCluster.id,
-    });
-
-    if (logPodValuesResp.data?.length != 0) {
-      setPodFilterOpts(
-        _.uniq(logPodValuesResp.data ?? []).map((podName: any) => {
-          return { podName: podName, podNamespace: currentChart.namespace };
-        })
-      );
-
-      // only set pod filter if the current pod is not found in the resulting data
-      if (!podFilter || !logPodValuesResp.data?.includes(podFilter)) {
-        setPodFilter({
-          podName: logPodValuesResp.data[0],
-          podNamespace: currentChart.namespace,
-        });
-      }
-      console.log("pod values set chart namespace", podFilter, podFilterOpts);
-      return;
-    }
-
-    // check if pods are in default namespace
-    const filters_default = {
-      namespace: "default",
-      revision: currentChart.version.toString(),
-      match_prefix: currentChart.name,
-    };
-
-    const logPodValuesResp_default = await api.getLogPodValues(
-      "<TOKEN>",
-      filters_default,
-      {
+    try {
+      const logPodValuesResp = await api.getLogPodValues("<TOKEN>", filters, {
         project_id: currentProject.id,
         cluster_id: currentCluster.id,
-      }
-    );
-
-    if (logPodValuesResp_default.data?.length != 0) {
-      setPodFilterOpts(
-        _.uniq(logPodValuesResp_default.data ?? []).map((podName: any) => {
-          return { podName: podName, podNamespace: "default" };
-        })
-      );
-
-      // only set pod filter if the current pod is not found in the resulting data
-      if (!podFilter || !logPodValuesResp_default.data?.includes(podFilter)) {
-        setPodFilter({
-          podName: logPodValuesResp_default.data[0],
-          podNamespace: "default",
-        });
-      }
-      console.log("pod values set default", podFilter, podFilterOpts);
-      return;
-    }
+      });
 
-    console.log("pod values empty");
-
-    // if we're on the latest revision and no pod values were returned, query for all release pods
-    if (currentChart.info.status == "deployed") {
-      console.log("search all releast pods");
-      const allReleasePodsResp = await api.getAllReleasePods(
-        "<TOKEN>",
-        {},
-        {
-          id: currentProject.id,
-          name: currentChart.name,
-          namespace: currentChart.namespace,
-          cluster_id: currentCluster.id,
+      if (logPodValuesResp.data?.length != 0) {
+        setPodFilterOpts(
+          _.uniq(logPodValuesResp.data ?? []).map((podName: any) => {
+            return { podName: podName, podNamespace: currentChart.namespace };
+          })
+        );
+
+        // only set pod filter if the current pod is not found in the resulting data
+        if (!podFilter || !logPodValuesResp.data?.includes(podFilter)) {
+          setPodFilter({
+            podName: logPodValuesResp.data[0],
+            podNamespace: currentChart.namespace,
+          });
         }
-      );
+        return;
+      }
 
-      let podList = allReleasePodsResp.data.map((pod: any) => {
-        return {
-          podName: pod.metadata.name,
-          podNamespace: pod.metadata.namespace,
-        };
-      });
+      // if we're on the latest revision and no pod values were returned, query for all release pods
+      if (currentChart.info.status == "deployed") {
+        const allReleasePodsResp = await api.getAllReleasePods(
+          "<TOKEN>",
+          {},
+          {
+            id: currentProject.id,
+            name: currentChart.name,
+            namespace: currentChart.namespace,
+            cluster_id: currentCluster.id,
+          }
+        );
+
+        let podList = allReleasePodsResp.data.map((pod: any) => {
+          return {
+            podName: pod.metadata.name,
+            podNamespace: pod.metadata.namespace,
+          };
+        });
 
-      setPodFilterOpts(podList);
+        setPodFilterOpts(podList);
 
-      if (!podFilter || !podList.includes(podFilter)) {
-        setPodFilter(podList[0]);
+        if (!podFilter || !podList.includes(podFilter)) {
+          setPodFilter(podList[0]);
+        }
       }
+    } catch (err) {
+      console.log(err);
     }
   };
 
@@ -214,10 +178,8 @@ const LogSection: React.FC<Props> = ({ currentChart }) => {
   const setPodFilterWithPodName = (podName: string) => {
     const filtered = podFilterOpts.filter((pod) => pod.podName == podName);
     if (filtered.length > 0) {
-      console.log("setting filter");
       setPodFilter(filtered[0]);
     } else {
-      console.log("erroring filter");
       setPodFilter({ podName: "", podNamespace: "" });
     }
   };
@@ -328,6 +290,7 @@ const LogSection: React.FC<Props> = ({ currentChart }) => {
     checkForAgent();
   }, []);
 
+
   useEffect(() => {
     if (!isPorterAgentInstalling) {
       return;

+ 1 - 2
dashboard/src/main/home/app-dashboard/expanded-app/useAgentLogs.ts

@@ -237,8 +237,7 @@ export const useLogs = (
         "<token>",
         {
           pod_selector: currentPod,
-          // TODO: re-enable namespace when we properly install stack apps to namespace
-          // namespace,
+          namespace,
           revision: currentChart.version.toString(),
           search_param: searchParam,
           start_range: startDate,

+ 1 - 0
dashboard/src/main/home/app-dashboard/new-app-flow/NewAppFlow.tsx

@@ -502,6 +502,7 @@ const NewAppFlow: React.FC<Props> = ({ ...props }) => {
                     }
                   }}
                   services={formState.serviceList}
+                  defaultExpanded={true}
                 />
               </>,
               <>

+ 5 - 3
dashboard/src/main/home/app-dashboard/new-app-flow/ServiceContainer.tsx

@@ -19,6 +19,7 @@ interface ServiceProps {
   chart?: any;
   editService: (service: Service) => void;
   deleteService: () => void;
+  defaultExpanded: boolean;
 }
 
 const ServiceContainer: React.FC<ServiceProps> = ({
@@ -26,8 +27,9 @@ const ServiceContainer: React.FC<ServiceProps> = ({
   chart,
   deleteService,
   editService,
+  defaultExpanded,
 }) => {
-  const [showExpanded, setShowExpanded] = React.useState<boolean>(false);
+  const [showExpanded, setShowExpanded] = React.useState<boolean>(defaultExpanded);
   const [height, setHeight] = React.useState<Height>("auto");
 
   // TODO: calculate heights instead of hardcoding them
@@ -72,12 +74,12 @@ const ServiceContainer: React.FC<ServiceProps> = ({
   };
 
   const getHasBuiltImage = () => {
-    if (!chart) {
+    if (chart?.chart?.values == null) {
       return false;
     }
     return (
       !_.isEmpty((
-        Object.values(chart?.chart?.values)[0] as any
+        Object.values(chart.chart.values)[0] as any
       )?.global)
     );
   }

+ 3 - 1
dashboard/src/main/home/app-dashboard/new-app-flow/Services.tsx

@@ -19,10 +19,11 @@ import { Context } from "../../../../shared/Context";
 interface ServicesProps {
   services: Service[];
   setServices: (services: Service[]) => void;
+  defaultExpanded?: boolean;
   chart?: any
 }
 
-const Services: React.FC<ServicesProps> = ({ services, setServices, chart }) => {
+const Services: React.FC<ServicesProps> = ({ services, setServices, chart, defaultExpanded = false }) => {
   const [showAddServiceModal, setShowAddServiceModal] = useState<boolean>(
     false
   );
@@ -57,6 +58,7 @@ const Services: React.FC<ServicesProps> = ({ services, setServices, chart }) =>
                   deleteService={() =>
                     setServices(services.filter((_, i) => i !== index))
                   }
+                  defaultExpanded={defaultExpanded}
                 />
               );
             })}