Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Argo CD Cluster view of managed objects #21453

Open
agaudreault opened this issue Jan 10, 2025 · 1 comment · May be fixed by #21468
Open

Argo CD Cluster view of managed objects #21453

agaudreault opened this issue Jan 10, 2025 · 1 comment · May be fixed by #21468
Labels
component:server component:ui User interfaces bugs and enhancements enhancement New feature or request size/XXL

Comments

@agaudreault
Copy link
Member

agaudreault commented Jan 10, 2025

Summary

Argo CD has an excellent view to view resources per Applications. This is quite useful for a developer to see resources managed by their individual Applciation. However, there is a need for argo operator or cluster admin to visualize what are the resources managed by Argo. There is also a need for developers to have a unified views of all the resources they deploy through Argo.

For instance, I would like to be able to quickly answer

  • "Is MyCustomKind ever deployed in Argo? If yes, by which Applications?"
  • "Are ClusterRole deployed in cluster X? If yes, by which Applications?"
  • "What are all the Deployment that my team deploys through Argo (where team is a label on my Applications)?"
  • "What are the resources deployed under this ApplicationSet?"
  • "How many resources of each kind are present in cluster X?"
  • "How many resources of each kind are in Argo"

Argo CD already have the data of the resources managed by an application in the manifest in status.resources.

Motivation

This would help argo operator or cluster admin to visualize what are the resources managed by Argo, so they can understand the ecosystem better before Applying restriction in Argo to increase the security and scalability.

There is also a need for developers to have a unified views of all the resources they deploy through Argo, because Argo does not have a concept of microservice, nor environment.

Some of these questions can be answered by using kubectl and going in each clusters, perform queries, then introspect the argo cd tracking annotation to find the source Argo Application. But this has many limitations, you might need to correlate informations such as "which argo cd instance manage this cluster" if you have multiple Argo CD instances, and in the end, it is provides another view for developers to understand what they deploy and what they own.

Proposal

Create a new left-panel view that will display a list of all resources managed by this Argo instances.
Create filter/group by Application and/or Application Labels
Create filter/group by Cluster
Create filter/group by AppProject
Create filter/group by ApplicationSet
Create filter/group by API Group
Create filter/group by Kind
For each resources, have an hyperlink enabling a one-click redirection the the target Applciation.
Use the same RBAC as the get Applications

@agaudreault agaudreault added enhancement New feature or request component:ui User interfaces bugs and enhancements size/XXL component:server labels Jan 10, 2025
@linghaoSu linghaoSu linked a pull request Jan 13, 2025 that will close this issue
14 tasks
@linghaoSu
Copy link
Member

linghaoSu commented Jan 13, 2025

I created a resources list inspired by the applications list (mostly by copying and reusing its styles), which supports all requirements except for AppSet filtering.

However, it doesn’t support switching between different views, and the search box doesn’t allow navigation either (as locating the app corresponding to a resource requires too much detailed information).

The related PR is here: #21468. Could you please help review it?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:server component:ui User interfaces bugs and enhancements enhancement New feature or request size/XXL
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants