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

Create new project/namespace experience given server-side pagination #11674

Open
Tracked by #8527
richard-cox opened this issue Aug 21, 2024 · 5 comments · May be fixed by #12960
Open
Tracked by #8527

Create new project/namespace experience given server-side pagination #11674

richard-cox opened this issue Aug 21, 2024 · 5 comments · May be fixed by #12960

Comments

@richard-cox
Copy link
Member

richard-cox commented Aug 21, 2024

  • Currently project/namespace list
    • shows namespaces grouped by project
      • requires we fetch all namespaces and all projects
      • users can create namespaces in the project via the project groups header
    • shows namespaces not in projects
      • groups these ns in an artificial 'not in a project' project
      • users can create namespaces not in a project via the fake project groups header
    • shows projects with no namespaces
      • adds an artificial namespace to each empty project
      • users can create namespaces in the empty project via the project groups header
  • In the new serve-side pagination world we're blocked on a number of things
    • we only fetch a page of namespaces and they cannot contain artificial entries
      • how can users easily create a namespace in a project?
    • we need to fetch all projects to know those with no namespaces (can this be done via filtering??)
@github-actions github-actions bot added the QA/dev-automation Issues that engineers have written automation around so QA doesn't have look at this label Aug 21, 2024
@richard-cox richard-cox added kind/enhancement area/performance area/server-side-pagination and removed QA/dev-automation Issues that engineers have written automation around so QA doesn't have look at this labels Aug 21, 2024
@richard-cox richard-cox added this to the v2.10.0 milestone Aug 21, 2024
@richard-cox richard-cox modified the milestones: v2.10.0, v2.11.0 Sep 26, 2024
@richard-cox richard-cox added size/20 Size Estimate 20 size/10 Size Estimate 10 and removed size/20 Size Estimate 20 labels Nov 8, 2024
@codyrancher
Copy link
Contributor

@richard-cox has there been any issues or measurements that show that this page is problematic? I would've guessed that these resources are small enough that findall wouldn't be an issue here.

we need to fetch all projects to know those with no namespaces (can this be done via filtering??)

Wouldn't it be the inverse? Wouldn't we need to fetch all namespaces to get the ones that aren't in a project?

If we have a performance issue on this page I have a feeling that we're going to need backend work for this. It seems like this would be a join between the project and namespace tables (assuming a table per resource is the schema) and a groupby project id when sending these back. Anything short of that will require us to fetch all namespaces I think.

There may be a special case here for advanced filtering where we have to be able to filter on two resources, namespaces and projects.

I think we want to avoid paginating this page there's not a performance bottleneck.

@richard-cox
Copy link
Member Author

has there been any issues or measurements that show that this page is problematic?

The main issue is admins on the local cluster where there may be many many namespaces.

we need to fetch all projects to know those with no namespaces (can this be done via filtering??)

Wouldn't it be the inverse? Wouldn't we need to fetch all namespaces to get the ones that aren't in a project?

Maybe the text was badly worded, but the crux is we should show a page of namespaces sorted by project id annotation which will get us the grouped by project part... but also show the projects groups which contain no namespaces. We don't have a projects list so that's the only place users can add namespaces to an empty project.

@codyrancher
Copy link
Contributor

The main issue is admins on the local cluster where there may be many many namespaces.

I understand where the issue could possibly occur, but, I want to make sure we have a justifiable reason for making changes to this page.

As long as we have a documented issue around performance on the projects/namespaces page from a customer or we've demonstrated the performance issue, I'm on board. I haven't seen either of these and would like to verify so we don't waste effort.

Maybe the text was badly worded, but the crux is we should show a page of namespaces sorted by project id annotation which will get us the grouped by project part... but also show the projects groups which contain no namespaces. We don't have a projects list so that's the only place users can add namespaces to an empty project.

Got it, that makes sense.

@richard-cox
Copy link
Member Author

It should be quite straight forward to observe the performance issues given 1-2k namespaces. However happy to bump it down the priority stack given effort required vs other changes.

@codyrancher codyrancher self-assigned this Dec 31, 2024
codyrancher added a commit to codyrancher/dashboard that referenced this issue Dec 31, 2024
@codyrancher codyrancher linked a pull request Dec 31, 2024 that will close this issue
7 tasks
codyrancher added a commit to codyrancher/dashboard that referenced this issue Jan 7, 2025
codyrancher added a commit to codyrancher/dashboard that referenced this issue Jan 7, 2025
@richard-cox
Copy link
Member Author

Linking rancher/rancher#48637

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants