-
Notifications
You must be signed in to change notification settings - Fork 2.3k
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
Kubeflow Notebooks 2.0 (Kubeflow Workspaces) #7156
Comments
@kubeflow/wg-notebooks-leads I would appreciate any feedback or ideas on this proposal. |
@kimwnasptd we (that is, @juliusvonkohout, @tzstoyanov, and me) discussed this in the NB meeting today and are thinking that we can target this for Kubeflow 1.9. I would love to get your general feedback on this proposal, and if you think it looks ok, then we can discuss some specifics and get a finalized design doc. I think the general approach would be that we keep "kubeflow notebooks" as a "deprecated" component for 1.9, and add a new component called "kubeflow workspaces", which will have:
|
@thesuperzapper @juliusvonkohout @tzstoyanov I'm good with the way of implementing this as a new CRD, and web app since this will be the least intrusive implementation. Users will be able to pick and choose which one they'll want, until we are fully confident on using Workspaces by default. What I'd like to confirm before committing to this effort would be what are the criteria for for considering this as the default? |
@mishraprafful and #6734 |
Thanks for this new changes. Looks good. |
Calling anyone who wants to help move this feature forward! Please reply if you are willing/able to help with any of the following areas:
Once we have a few people willing to help, we can organize a specific call to flesh out a doc with:
@mishraprafful and @guohaoyu110 mentioned that they might be interested in contributing to this, also, there are some others who might be like @punkerpunker @helloericsf @wjhhuizi @wadhah101 |
I am interested in this part: Backend (Golang - Kubebuilder) (Istio) |
I am interested to take up any of these following these areas:
|
I'm happy to collaborate on creating the backend+docs (workspace controller) for this new proposal |
I am happy to contribute to the documentation if you guys need help with that. |
Hey all, now that Kubeflow 1.8 is out, we are going to start seriously working on Kubeflow Notebooks 2.0! The first step will be to organize and regular meetings with the people who want to contribute and/or give feedback. I think the first few meetings will be to finalize the design and requirements. Then next year, we can split everything down into tasks and assign them to specific people, so the meeting just becomes a check-in. Join the next community call (12 December 2023 @ 8:00am PT) so we can organize the first few meetings.Once we have organized the meeting we'll send it out on the Kubeflow-discuss mailing list. Also please join the Kubeflow slack and the
|
For those wanting to help with Kubeflow Notebooks 2.0, please see the previous comment: Please try and get to the next kubeflow community call, so we can organize a meeting time. Also please join the kubeflow slack (especially if you can't attend the community call), and make yourself known on the @SachinVarghese |
@thesuperzapper I am more than happy to be part of the initiative. I will try my best to attend the community call tonight. |
@thesuperzapper I have a high-level observation on the terminology: why did you choose the name "Workspace"? I think the proposed rename to "Workbench" was well received and agreed upon here: The term "workspace" is generally used to refer to a project or a logical space that contains resources and user data. In Kubeflow, I believe the closest thing to a workspace we have is the namespace. |
I find this proposal very bad, since you are removing options that user have before. Now they will be limited to configurations that were created by admins instead of having the ability to create the thing that they need. |
Hey all, Please attend the Notebooks Working Group Meeting (Thursday, 18 January, 2024 @ 8:00am PT) if you want to help with Kubeflow Notebooks 2.0! This will be the first meeting, and our goal will be to start an architecture doc and discuss ideas. I think the overall steps to get Notebooks 2.0 shipped are:
@SachinVarghese |
Hey all, We have started writing up the design document for Kubeflow Notebooks 2.0. The next meeting is PS: we will use the Notebooks WG meeting, to get the invite, either join kubeflow-discuss (if you use Google Calendar) or manually add the "Kubeflow Community Calendar" to yours |
@thesuperzapper Thursday 25th January @ 8 AM PT is the manifests wg meeting. are you sure you do not mean Febuary 1 ? |
Hi guys,
It would be a public holiday/long weekend in Australia (Australia Day) and
India (Republic Day). Can we do it next week?
Cheers,
Vikas
…On Fri, 19 Jan 2024, 9:15 pm Julius von Kohout, ***@***.***> wrote:
@thesuperzapper <https://github.com/thesuperzapper> Thursday 25th January
@ 8 AM PT is the manifests wg meeting. are you sure you do not mean Febuary
1 ?
—
Reply to this email directly, view it on GitHub
<#7156 (comment)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AVSEDXX44LNCL4YOSTSREFDYPJBT5AVCNFSM6AAAAAAYY6GY72VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMYTSMBQGEZDINJZGM>
.
You are receiving this because you were mentioned.Message ID:
***@***.***>
|
@juliusvonkohout I did not see the Manifests WG meeting at that time! Currently, the Notebooks WG Meeting only runs every two weeks, we need to make it weekly while we work on Kubeflow Notebooks 2.0. I think we can add a new bi-weekly 4:00PM PT meeting starting next week, which would be aimed at US + APAC attendees (but impossible for EU attendees). It gives everyone a chance to attend and does not overlap with the existing Manifests WG meeting. I have made a PR that will update the community calendar to reflect this: |
@vikas-saxena02 that would mean the next meeting is on an Indian/Australian holiday, but I think it's fine if fewer people attend for that specific meeting, we need to keep the momentum up for the Notebooks 2.0 planning. |
So, for anyone who wants to attend next week, expect the meeting next week to be on: Thursday 25th Janurary @ 4:00 PM PT.Either way, everyone please comment/contribute to the design document whenever you have time: |
@thesuperzapper I am willing to contribute to this feature out side the GSoC, willing to know if it is fine. Thank You. |
@WYGIN what areas do you have experience in that could help us? |
around 9 months of experience on containerization and GoLang and more than 2 years learning curve on js(react, mainly building backend services) and not quite familiar with python(but always wanted to get in). This feature strongly aligns with my interests and might be the best PR to work around to explore kubeflow and to challenge myself, Happy to hand it over to GSoC mentee at anytime if needed. Thank You. You can also point me to any core feature(hopefully large/challenging issue and focuses on one of the core features on kubeflow) for me to work around. |
@thesuperzapper I am a cs undergrad from CMU. I am really interested in Kubeflow Notebooks 2.0. I have experiences of Golang Development and good amount of understanding of Kubernetes at School. The design doc of Kubeflow Notebooks 2.0 is just inspiring to me. I am willing to contribute for the Backend as a GSoC contributor, specifically in Workspace Controller and Validation Webhooks parts. |
For those watching, we are nearly ready to start commiting code for Notebooks 2.0! We have mostly finalized the new CRDs (see the new example repo for reference):
We have also made good progress on the design document: We only need to finalize the UI mock ups for the new spawner, which we plan to share shortly. Once we have a final design, we can start by creating folders in the repo for the new controller and front-end (with only mock code and CI/CD build pipelines), after that we can start making PRs to build out each component! |
For those watching, we are nearly ready to start commiting code for Notebooks 2.0! We have mostly finalized the new CRDs (see the new example repo for reference): We have also made good progress on the design document: We only need to finalize the UI mock ups for the new spawner, which we plan to share shortly. Once we have a final design, we can start by creating folders in the repo for the new controller and front-end (with only mock code and CI/CD build pipelines), after that we can start making PRs to build out each component! |
@thesuperzapper Have you finalized whether to use GoLang or Python? Also, have you decided between using React or Angular? |
@WYGIN, for the front end, we have a number of people more familiar with React who are planning to contribute, so unless that changes, we probably will go with React. It's still not clear which is going to be better (Go or Python) for the back-end of the front-end (not the controller, which will be in Go + Kubebuilder). . What we choose will largely depend on who's available to work on it. However, because it's much easier to interact with Kubernetes via Go, and Go is a lot more scalable, I do have a slight preference for Go, if both options have contributors available. |
but i think as discussed in the meetings and documents something additional like maxSeconds: 2*86400 or so is useful in a lot of enterprise environments where we want to prevent Workspaces being abused for long-running jobs and terminate them independent of the activity after 48 hours or so. |
Just tagging @apo-ger based on the discussion in #6927 (comment), we might consider adding a third activity probe based on "istio metrics" (e.g. the last time the Pod got an HTTP request). Note, this will not be in the initial release of Notebooks 2.0 (unless you want to contribute it @apo-ger), but might be in a future one, once we agree on the implementation details. |
Hi, this is kaushik |
hlo team |
@krishnakaushik195 we are currently developing Notebooks 2.0 in the Please be aware, it's NOT ready for usage yet (we are still actively developing it). If you want to help, you should attend the Notebooks Working Group (WG) meetings know what we are actively working on: Get invited to the Notebooks WG meeting (on Google Calander) by joining the |
Yeah sir got it |
/kind feature
Here is my proposal for Kubeflow Notebooks 2.0, which can be called "Kubeflow Workspaces".
Overview
My main idea has always been to make the Notebook CRD not just a wrapper around PodSpec, with the goal of abstracting away the Kubernetes resources from end users, while also giving cluster admins the ability to define a set of "templates" that end users can choose from.
Implementation
The high-level overview is to split the Notebook CRD into these two CRDs:
Workspace
(namespaced resource)kubectl
WorkspaceKind
(cluster resource)but in the future, we could support other types of templates (e.g. "helmTemplate")
New Components
New CRD:
Workspace
Here is an example
Workspace
(a namespaced resource), which uses theWorkspaceKind/jupyter-lab
that we define later:https://github.com/thesuperzapper/kubeflow-notebooks-v2-design/blob/main/crds/workspace.yaml
New CRD:
WorkspaceKind
Here is an example
WorkspaceKind
(a cluster resource), which allows users to run JupyterLab Notebooks in Pods:https://github.com/thesuperzapper/kubeflow-notebooks-v2-design/blob/main/crds/workspace-kind.yaml
Motivation
The main benefits of this approach are:
(we can also make the Spawner UI display a warning that the Workspace needs to be restarted to get the new config)
The text was updated successfully, but these errors were encountered: