Răsfoiți Sursa

Merge branch 'nafees/preview-env-metadata' into dev

Mohammed Nafees 3 ani în urmă
părinte
comite
958be55dbe

+ 23 - 0
api/client/base.go

@@ -0,0 +1,23 @@
+package client
+
+import (
+	"context"
+
+	sharedConfig "github.com/porter-dev/porter/api/server/shared/config"
+)
+
+func (c *Client) GetPorterInstanceMetadata(ctx context.Context) (*sharedConfig.Metadata, error) {
+	resp := &sharedConfig.Metadata{}
+
+	err := c.getRequest(
+		"/metadata",
+		nil,
+		resp,
+	)
+
+	if err != nil {
+		return nil, err
+	}
+
+	return resp, nil
+}

+ 1 - 1
api/server/router/base.go

@@ -81,7 +81,7 @@ func GetBaseRoutes(
 		Router:   r,
 	})
 
-	// GET /api/capabilities -> user.NewUserCreateHandler
+	// GET /api/metadata -> metadata.NewMetadataGetHandler
 	getMetadataEndpoint := factory.NewAPIEndpoint(
 		&types.APIRequestMetadata{
 			Verb:   types.APIVerbGet,

+ 24 - 8
cli/cmd/preview/utils.go

@@ -60,38 +60,54 @@ func GetSource(projectID uint, resourceName string, input map[string]interface{}
 		output.Version = "latest"
 	}
 
-	output.IsApplication = output.Repo == "https://charts.getporter.dev"
+	apiClient := config.GetAPIClient()
+
+	serverMetadata, err := apiClient.GetPorterInstanceMetadata(context.Background())
+
+	if err != nil {
+		return nil, fmt.Errorf("error fetching Porter instance metadata: %w", err)
+	}
 
 	if output.Repo == "" {
-		output.Repo = "https://charts.getporter.dev"
+		if serverMetadata.DefaultAppHelmRepoURL != "" {
+			output.Repo = serverMetadata.DefaultAppHelmRepoURL
+		} else {
+			output.Repo = "https://charts.getporter.dev"
+		}
 
 		values, err := existsInRepo(projectID, output.Name, output.Version, output.Repo)
 
 		if err == nil {
-			// found in "https://charts.getporter.dev"
 			output.SourceValues = values
-			output.IsApplication = true
+			output.IsApplication = output.Repo == "https://charts.getporter.dev"
+
 			return output, nil
 		}
 
-		output.Repo = "https://chart-addons.getporter.dev"
+		if serverMetadata.DefaultAddonHelmRepoURL != "" {
+			output.Repo = serverMetadata.DefaultAddonHelmRepoURL
+		} else {
+			output.Repo = "https://chart-addons.getporter.dev"
+		}
 
 		values, err = existsInRepo(projectID, output.Name, output.Version, output.Repo)
 
 		if err == nil {
-			// found in https://chart-addons.getporter.dev
 			output.SourceValues = values
+
 			return output, nil
 		}
 
-		return nil, fmt.Errorf("error parsing source for resource '%s': source does not exist in "+
-			"'https://charts.getporter.dev' or 'https://chart-addons.getporter.dev'", resourceName)
+		return nil, fmt.Errorf("error parsing source for resource '%s': source chart does not exist in the default "+
+			"Helm repositories", resourceName)
 	} else {
 		// we look in the passed-in repo
 		values, err := existsInRepo(projectID, output.Name, output.Version, output.Repo)
 
 		if err == nil {
 			output.SourceValues = values
+			output.IsApplication = output.Repo == "https://charts.getporter.dev"
+
 			return output, nil
 		}
 	}

+ 3 - 2
dashboard/src/main/home/cluster-dashboard/dashboard/ClusterSettings.tsx

@@ -304,8 +304,9 @@ const ClusterSettings: React.FC = () => {
         <DarkMatter />
         {keyRotationSection}
         <DarkMatter />
-        {renameClusterSection}
-        <DarkMatter />
+        {/* Disabled this field due to https://discord.com/channels/542888846271184896/856554532972134420/1042497537912864788 */}
+        {/* {renameClusterSection}
+        <DarkMatter /> */}
         <Heading>Delete Cluster</Heading>
         {helperText}
         <Button

+ 6 - 2
dashboard/src/main/home/cluster-dashboard/expanded-chart/ExpandedChart.tsx

@@ -728,7 +728,11 @@ const ExpandedChart: React.FC<Props> = (props) => {
 
   // Check if porter agent is installed. If not installed hide the `Logs` component
   useEffect(() => {
-    if (!currentCluster.agent_integration_enabled) {
+    if (
+      !currentCluster.agent_integration_enabled ||
+      // If chart is an add on, we don't need to check if agent is installed
+      !["web", "worker", "job"].includes(currentChart?.chart?.metadata?.name)
+    ) {
       return;
     }
 
@@ -757,7 +761,7 @@ const ExpandedChart: React.FC<Props> = (props) => {
           );
         }
       });
-  }, []);
+  }, [currentChart]);
 
   useEffect(() => {
     if (logData.revision) {

+ 4 - 4
workers/jobs/helm_revisions_count_tracker.go

@@ -237,19 +237,19 @@ func (t *helmRevisionsCountTracker) Run() error {
 							continue
 						}
 
-						if len(revisions) <= 100 {
-							log.Printf("release %s of namespace %s in cluster ID %d has <= 100 revisions. "+
+						if len(revisions) <= 20 {
+							log.Printf("release %s of namespace %s in cluster ID %d has <= 20 revisions. "+
 								"skipping release...", rel.Name, ns.Name, cluster.ID)
 							continue
 						}
 
-						log.Printf("release %s of namespace %s in cluster ID %d has more than 100 revisions. attempting to "+
+						log.Printf("release %s of namespace %s in cluster ID %d has more than 20 revisions. attempting to "+
 							"delete the older ones.", rel.Name, ns.Name, cluster.ID)
 
 						// sort revisions from newest to oldest
 						releaseutil.Reverse(revisions, releaseutil.SortByRevision)
 
-						for i := 100; i < len(revisions); i += 1 {
+						for i := 20; i < len(revisions); i += 1 {
 							rev := revisions[i]
 
 							// store the revision in the s3 bucket before deleting it