Conversation
2d5432f
to
cb84f85
Compare
This is awesome. From a workflow perspective, I consider these separate UX needs:
The second is a more specialized workflow where you are looking to build a clearer mental model or understand a situation, and it's more valuable when context about these sub-objects is accessible in the UI and displayed up front. (ex: is a Deployment "3/4 Ready" or is a Pod "ContainerCreating") Diving into the details of objects is a general Kubernetes UX problem that other UI projects like Lens/Octant/Headlamp do well -- it's not Flux specific at that point and that's the logical place to defer to those tools if/when we get to plugin integrations. Alternatively, we can fork/vendor/adapt portions of their UI's. Because these workflows are different, it's a place where we could split up the query life-cycle in the UI beyond Maybe for small catalogs the UI fetches all of this info without asking, but once you're beyond a reasonable amount it needs specific user-action to move to the next page or query sub-objects? WDYT? |
@stealthybox Thanks!
If we can find a generic, customizable (css) component library that can handle organizing the information for each of the Kubernetes objects
I am thinking we cap how many objects we render in a graph, so each request would have a |
If anyone has any tips on getting "Status" fields to show up using the I checked out the |
@jpellizzari you may want to have a look at:
which contains a more barebone setup without much of the Ginkgo structures. |
@hiddeco Do I also need to do all of the setup stuff in this file to get a full environment running?: https://github.com/fluxcd/source-controller/blob/refactor-reconcilers/controllers/suite_test.go It would be great to be able to re-create the different states of the objects to test both the UI and backend, both in this project and others. |
I'm not sure I understand the question, but if it's "how do I test my code with different statuses of kustomization objects" : you don't need to set up other controllers, just create the objects in question and set their status with a client. |
Signed-off-by: Jordan Pellizzari <jordan@weave.works>
Adds a tabular view of reconciled objects for a given Kustomization:
From this point, it will be easy to convert this to a directed-graph or other more visually appealing visualization. This implementation polls the back-end to "live-update" the view so it would be possible to see the status of objects change.
Before doing so, however, I want to get validation that my querying approach is feasible on the back-end, specifically around the
GetReconciledObjects
andGetChildObjects
calls.This PR is a PoC without much regard for cluster API server saturation. Rate-limiting can be (hopefully) added after this PR. The case where a
Kustomization
reconciles thousands of objects may make this approach not feasible. One option would be to grab a couple of "pages" of aList
and punt on the rest, with a corresponding UI treatment.@fluxcd/flux2-maintainers
Some links to the functions in question:
https://github.com/fluxcd/webui/pull/45/files#diff-9388950d28a5b263f35bfb06351027e9ac8a7037268b5a4a2b268b7d83186920R243
https://github.com/fluxcd/webui/pull/45/files#diff-9388950d28a5b263f35bfb06351027e9ac8a7037268b5a4a2b268b7d83186920R297