akuity / kargo

Application lifecycle orchestration
https://kargo.akuity.io/
Apache License 2.0
1.73k stars 143 forks source link

Feature Request: Hide Other Warehouses and Stages when Filtering by Warehouse #2526

Open BenjaminNeale-Heritage opened 2 months ago

BenjaminNeale-Heritage commented 2 months ago

Checklist

Proposed Feature

It is possible to filter by warehouse in the Kargo UI (refer image below). However, this only seems to filter the freight timeline. It does not seem to filter the DAG pipeline which continues to display stages that are not connected to the warehouse. image

Motivation

This would help when a project has multiple warehouses.

Suggested Implementation

Hide warehouses and stages in the DAG that are not connected to the warehouse filter being used.

Example

The DAG showing all warehouses. kargo-filter-all-warehouses

The DAG filtered by the "auth" service (which is configured for all stages). kargo-filter-auth-warehouse

The DAG filtered by the "config" service (which is only configured for the 'labdev' stage). kargo-filter-config-warehouse

Version

I'm running Kargo v0.8.7. I looked through the open tickets and the tickets completed for Kargo v0.9.0 and couldn't see this so I hope it isn't a duplicate.

krancour commented 2 months ago

I understand the request, and without dismissing it outright, I have mixed feelings here.

On the one hand, if I had multiple DAGs in one Project that didn't really intersect/overlap at all, I think that this proposed feature would feel very useful to me. i.e. Imagine microservice A and B in the same Project, and they both have their own distinct Warehouses and Stages and are "parallel" to one another and related to one another only from a management perspective -- logically part of the same Project, with the same set of users responsible for them. Selecting the Warehouse for microservice A, thereby hiding the warehouse for B and all the Stages connected to it feels like it would help me to focus on microservice A.

On the other hand, when the situation is more like the one presented in the screenshots, I feel as if a relatively important piece of the overall picture is missing. In some way it feels "hazardous" to me to lose sight of the fact that the loaddev Stage, for instance, consumes Freight from multiple Warehouses. It's a rather important detail.

I would be very interested to hear @jessesuen's perspective on what he feels the right behavior may be here.