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 data science project in existing namespace #1417

Closed
yuanchi2807 opened this issue Jun 20, 2023 · 25 comments · Fixed by #1643
Closed

Create data science project in existing namespace #1417

yuanchi2807 opened this issue Jun 20, 2023 · 25 comments · Fixed by #1643
Assignees
Labels
feature/ds-projects Data Science Projects feature (formerly Data Science Groupings - DSG) field-priority Flag to track improvements that are for stability -- effort to put in front of new functionality kind/story A user story for larger work. Should always be referenced by a "tracker" labelled issue. priority/high Important issue that needs to be resolved asap. Releases should not have too many of these.

Comments

@yuanchi2807
Copy link

yuanchi2807 commented Jun 20, 2023

Solution

We'll be supporting OpenShift Console Projects in the Dashboard.

Mocks: https://www.figma.com/proto/9CkrqD7byqvTBUzRok2ihE/RHODS?page-id=287%3A13618&type=design&node-id=287-14414&viewport=273%2C151%2C0.06&t=qM4W6hZAcZiZPXig-1&scaling=scale-down&starting-point-node-id=287%3A14414&mode=design

Implementation notes:

Follow the design, but here are a couple expected items for the development effort.

  • Do two types of fetches -- one with the labelSelector (opendatahub.io/dashboard) and one without -- RBAC will help the user see all the namespaces that belong to them
  • If the results come back with anything openshift- or kube prefixed or default namespace... trim them out before saving the data
  • The create flow does not change
  • Store the last selected value of the dropdown in local storage (useBrowserStorage hook should make this easy)

Enhancement request

Allow the creation of data science project to specify an existing namespace. Currently DSP name cannot be the same to another existing namespace in the Openshift Cluster.

Details

Namespace is used to manage users and enforce cluster resource usage quota, e.g. the maximum numbers of CPUs, GPUs, pods. Creating new namespaces requires OCP admins to redo user binding and quota configuration.

@Gkrumbach07
Copy link
Member

cc @andrewballantyne

@andrewballantyne
Copy link
Member

@yuanchi2807 Would a satisfactory solution to this be able to see projects you have access to in OpenShift Console as a toggle? Or is your intent to only include "some" of your projects in the Data Science Projects view?

@andrewballantyne andrewballantyne transferred this issue from opendatahub-io/opendatahub-community Jun 22, 2023
@github-project-automation github-project-automation bot moved this to Needs prioritization in ODH Dashboard Planning Jun 22, 2023
@andrewballantyne andrewballantyne added kind/enhancement New functionality request (existing augments or new additions) needs-info Further information is requested from the reporter or from another source priority/normal An issue with the product; fix when possible needs-ux labels Jun 22, 2023
@andrewballantyne
Copy link
Member

I have transferred this to the dashboard (UI component) as this will be fixed in our code.

@andrewballantyne
Copy link
Member

@kywalker-rh do we have UX issue for supporting more than just DS Projects on our Project list page tracked?

@yuanchi2807
Copy link
Author

@yuanchi2807 Would a satisfactory solution to this be able to see projects you have access to in OpenShift Console as a toggle? Or is your intent to only include "some" of your projects in the Data Science Projects view?

@andrewballantyne toggle or pulldown menu to pick an existing namespace would be great.

@andrewballantyne andrewballantyne added the feature/ds-projects Data Science Projects feature (formerly Data Science Groupings - DSG) label Jun 22, 2023
@shalberd
Copy link
Contributor

sounds like a good idea, especially with regards to namespace-specific annotations, like tolerations, node selectors and so on, that are often already there on existing namespaces one has access to. Question would be: What level of access, I assume rolebinding with ClusterRole Admin to the project to be able to select the project? We have a similar approach of project/namespace first in our org.

@shalberd
Copy link
Contributor

shalberd commented Jun 22, 2023

@yuanchi2807 on the other hand, in a non-GUI way, all you'd need to do for the namespaces to appear in Data Science Projects would be to add two additional labels:

'opendatahub.io/dashboard': 'true'

and optionally

'modelmesh-enabled': 'true' if you want it to be used for model serving.

That second one is being discussed

#1310

if you don't want to use Model Serving, just leave it out.

@andrewballantyne
Copy link
Member

FWIW, the modelmesh label should already show up "late" if you use Model Serving -- we just want to make it "always" delayed.

@andrewballantyne andrewballantyne added the field-priority Flag to track improvements that are for stability -- effort to put in front of new functionality label Jun 22, 2023
@Gkrumbach07 Gkrumbach07 moved this from Needs prioritization to To do in ODH Dashboard Planning Jun 27, 2023
@github-project-automation github-project-automation bot moved this to Future Sprint in ODH UX Planning Jul 10, 2023
@jkoehler-redhat jkoehler-redhat moved this from UX to Dashboard in ODH Feature Tracking Jul 19, 2023
@andrewballantyne andrewballantyne added priority/high Important issue that needs to be resolved asap. Releases should not have too many of these. and removed needs-info Further information is requested from the reporter or from another source priority/normal An issue with the product; fix when possible labels Jul 25, 2023
@StevenBarre
Copy link

@shalberd are those labels documented anywhere?

@xianli123
Copy link

xianli123 commented Jul 26, 2023

Hi @andrewballantyne @yuanchi2807 I updated the design based on your suggestions and the discussions in the original issue RHODS-8603. Please take a look at the design and feel free to let me know if there are any questions or new requirements. Thanks!

@andrewballantyne
Copy link
Member

@shalberd are those labels documented anywhere?

@StevenBarre they are currently not. opendatahub.io/dashboard=true is the label we use for all our resources. We need to document this better internally to the repo.

@DaoDaoNoCode DaoDaoNoCode self-assigned this Aug 2, 2023
@DaoDaoNoCode DaoDaoNoCode moved this from To do to In progress in ODH Dashboard Planning Aug 3, 2023
@kywalker-rh kywalker-rh moved this from Backlog to UX Done in ODH UX Planning Sep 1, 2023
@github-project-automation github-project-automation bot moved this from In progress to Done in ODH Dashboard Planning Sep 13, 2023
@andrewballantyne andrewballantyne added kind/story A user story for larger work. Should always be referenced by a "tracker" labelled issue. and removed kind/enhancement New functionality request (existing augments or new additions) labels Oct 6, 2023
@manosnoam
Copy link
Contributor

manosnoam commented Dec 4, 2023

In RHOAI 2.5, when having an OCP namespace (e.g. "noam-project") and trying to create same project name in the Dashboard, it is not allowed:
image

@andrewballantyne Is that the expected behavior for this feature ??

@andrewballantyne
Copy link
Member

@manosnoam yes, this has always been true. This is why you can name your resource name, because you may want the display name but have another project behind the scenes used for other reasons.

@manosnoam
Copy link
Contributor

@andrewballantyne in description I see "Enhancement request: Allow the creation of data science project to specify an existing namespace." .
I'm not sure I understand what is the feature, and how to test it then, if not by verifying we can reuse an existing OCP namespace for a new DS project.

@andrewballantyne
Copy link
Member

@andrewballantyne You should have access to your k8s RBAC namespaces via the dropdown in the top left. You don't need to "create" a new project, you can get access to your existing one.

@manosnoam
Copy link
Contributor

Very nice!
image

And my OCP project is available to be used as DS project:

image

@shalberd
Copy link
Contributor

shalberd commented Dec 5, 2023

yes, that is a very nice new feature, saw this in a dev experience meeting a while ago, cool to see it in production. It is encouraging to see all positive developments, be it enterprise-readiness or cutting edge functionality.

@lugi0
Copy link
Contributor

lugi0 commented Dec 5, 2023

FWIW I see something weird with this functionality, I get only a subset of the available namespaces even though I'm using a cluster-admin user.
I could see why it wouldn't return the openshift default namespaces, but in my case it's also missing the redhat-ods-applications namespace.
What is the criteria for the namespaces that are shown in this page?
image

@DaoDaoNoCode
Copy link
Member

@lugi0 Yes, we intentionally hide the namespace where the dashboard is deployed.

@andrewballantyne
Copy link
Member

An arbitrary list of namespaces are hidden for cluster-admins to avoid accidental deployments into those namespaces. The criteria is somewhat vague and open to expanding. (the code)

I'd like to stress, this list is to help cluster-admins, not as a ironclad solution. We welcome feedback to expand it, but effectively it's low effort/priority to do so. Most users won't have access to all projects, and thus this is not a primary flow to concern ourselves with.

@shalberd
Copy link
Contributor

shalberd commented Dec 5, 2023

I like that list a lot in that it prevents projects being used for Data Science Workbenches tasks that are not supposed to, even if one does have i.e. just View access to one of those namespaces.
as for the dashboardNamespaces not being available in Data Science Projects: that for now makes sense, as the Jupyter tile application is doing that ... creating notebooks in the main namespace, i.e. opendatahub or redhat-ods-applications.
I am fine with not creating any workbenches / notebooks in the main application namespace, i.e. opendatahub or redhat-ods-applications. @lugi0 that explains why you don't see it in the list.

@andrewballantyne
Copy link
Member

andrewballantyne commented Dec 5, 2023

We will readdress what the Jupyter Tile does and what it means for users when we migrate it. It's a bit of a messy situation right now with the no notebook-namespace or having it, and in general it shouldn't be used to deploy Data Science flows just for sanity and cleanness... the application namespace definitely needs to be only for that -- application resources -- and the Jupyter tile having that backwards is definitely not awesome.

@shalberd
Copy link
Contributor

shalberd commented Dec 5, 2023

and in general it (the main application namespace) shouldn't be used to deploy Data Science flows just for sanity and cleanness... the application namespace definitely needs to be only for that -- application resources -- and the Jupyter tile having that backwards is definitely not awesome.

agreed, it is better to provision a new or to use an existing namespace except for the main DataScienceCluster / KfDef namespace for creating workbenches.

@lugi0
Copy link
Contributor

lugi0 commented Dec 6, 2023

@andrewballantyne @shalberd Not sure I'm getting your point, the jupyter tile deploys in rhods-notebooks rather than the applications namespace - which I have access to through this view (you can actually see the three stopped "workbenches", which are there only because those three users have previously deployed a NB through the Jupyter tile and thus have a Notebook CR in that namespace).
I think it's ok to arbitrarily decide to show certain namespaces or not, but if we need to validate the feature I think some precise criteria is needed in order to explore the view through users with different permissions and ensure that each one is only seeing what it's supposed to see - I will leave it up to @manosnoam to figure out what those tests are, so take it as my 2c and nothing more.

@andrewballantyne
Copy link
Member

Not sure I'm getting your point, the jupyter tile deploys in rhods-notebooks rather than the applications namespace

@lugi0 This is not done automatically on ODH installs. This is configured in RHOAI, per the needs of the install. The Dashboard does not automatically create another namespace where we deploy items from the Jupyter tile, it's done via the resources that are deployed as part of the operator install. Let me know if you'd like me to get all the various variables/resources collected together and showcase where those toggles are. I imagine this isn't too much of a concern for our RHOAI installations, but if you're curious, we can investigate this from a "what does the dashboard do out of the gate with no configurations".

if we need to validate the feature I think some precise criteria is needed in order to explore the view through users with different permissions and ensure that each one is only seeing what it's supposed to see

@manosnoam please let me know if you want to talk about this. The only criteria we had was "I wanna see my openshift created namespaces" -- we limited the other use-cases through development to hide specific Cluster-Admin based access. This is not ironed to perfection, so if you think there is more to work with here... we should discuss it and look at enhancements.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
feature/ds-projects Data Science Projects feature (formerly Data Science Groupings - DSG) field-priority Flag to track improvements that are for stability -- effort to put in front of new functionality kind/story A user story for larger work. Should always be referenced by a "tracker" labelled issue. priority/high Important issue that needs to be resolved asap. Releases should not have too many of these.
Projects
Status: Dashboard
Archived in project
Status: UX Done
Development

Successfully merging a pull request may close this issue.

9 participants