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

Adding a proposal for new projects to be included in KF #741

Open
wants to merge 3 commits into
base: master
Choose a base branch
from

Conversation

franciscojavierarceo
Copy link

@franciscojavierarceo franciscojavierarceo commented Aug 23, 2024

This document creates a new proposal for including projects in Kubeflow with nuance for different levels of "inclusion".

The proposal was drafted by @jbottum and myself.

Issues

Resolves #748

Copy link

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign terrytangyuan for approval. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found here.

Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@franciscojavierarceo
Copy link
Author

CC @jbottum

Signed-off-by: Francisco Javier Arceo <[email protected]>
Signed-off-by: Francisco Javier Arceo <[email protected]>
@franciscojavierarceo
Copy link
Author

franciscojavierarceo commented Sep 3, 2024

@andreyvelich asked to explore what other community approaches there are, I can follow up with some additional review.

He had mentioned Apache approach (incubation) or Argo approach, are there others?

Copy link
Member

@andreyvelich andreyvelich left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for this effort @franciscojavierarceo!
I left my initial thoughts.

/assign @kubeflow/kubeflow-steering-committee @kubeflow/wg-training-leads @kubeflow/wg-notebooks-leads @kubeflow/wg-manifests-leads @kubeflow/wg-automl-leads @kubeflow/wg-data-leads @kubeflow/wg-pipeline-leads @akgraner

@@ -0,0 +1,182 @@
# New Project Project Application
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would move this doc to how-to section: https://github.com/kubeflow/community/tree/master/how-to.

@@ -0,0 +1,182 @@
# New Project Project Application
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am wondering what should be the goal of community repo vs Kubeflow website ?
We discussed before with @StefanoFioravanzo @hbelmiro @kubeflow/kubeflow-steering-committee that we want to move all governance docs to the https://www.kubeflow.org.

So maybe:

  • Proposals should be located in community repo
  • Actual documents should be on kubeflow.org

Any thoughts ?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That works for me! In the community repo we could just leave this as the template, right? I'd be happy to create a website PR to incorporate this once the leads approve the process.

@@ -0,0 +1,182 @@
# New Project Project Application

Please see the [proposals/new-project-addition-process.md](Documentation) to
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Please see the [proposals/new-project-addition-process.md](Documentation) to
Please see the [proposals/new-project-addition-process.md](proposals/new-project-addition-process.md) to

@@ -0,0 +1,36 @@
## Motivation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you add a Title for this doc, e.g.

# KEP-748: Donating projects to Kubeflow ecosystem

Comment on lines +5 to +8
That may include:
1. Project Donation
2. Inclusion in the Manifest
3. Inclusion in documentation as an add on
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would decrease the scope of this proposal to only: Project Donation.
I feel that we need more discussions whether we should include any other projects in the Kubeflow Manifests and Kubeflow documentation as add on.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think the process should probably be the same but the requested outcome should be different.

I think really we're just formalizing what standards we have for Feast and KServe today and I'd like to be able to include Feast into the manifest with this process. That is my personal goal.

Copy link
Member

@andreyvelich andreyvelich Sep 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my point of view, this proposal should be dedicated to all future projects that want to join Kubeflow ecosystem. As we discussed before, we might want to re-consider adding external add-ons to the manifests repo, since the manifests repo should be an aggregation of Kubeflow components.

Copy link
Author

@franciscojavierarceo franciscojavierarceo Sep 23, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As we discussed before, we might want to re-consider adding external add-ons to the manifests repo, since the manifests repo should be an aggregation of Kubeflow components.

Let me share how I think about this.

On the Kubeflow main page, we have:

Kubeflow makes artificial intelligence and machine learning simple, portable, and scalable. We are an ecosystem of Kubernetes based components for each stage in the AI/ML Lifecycle with support for best-in-class open source tools and frameworks.

I view Kubeflow as the best open-source MLOps platform that not only offers a community sharing best practices but also provides all the core components needed to build a successful ML platform.

I think that is what drives the best outcome for both users and Kubeflow.

Each component should be strong independently and work even better when deployed along with the other components. That means that components may change on occasion but it also means that a holistic platform is more important than recommending a technology that isn't good for the community.

And I think that's ultimately why some add-ons should be included in the manifest. We should prioritize the MLE-experience and setting up users for success over who owns which project. That said, many of the components are already the best, we just have some gaps. :)

CC @terrytangyuan @jbottum @thesuperzapper

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@andreyvelich @franciscojavierarceo I want get some clarification, when you mention we need to include/or not manifests, do you guys mean as single package manifests that include core + add-ons or you are thinking both should be different repos and add-ons not even present in separate package in manifests repo?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Argo, Tekton, Airflow is not a single example. There are many other projects that have overlaps: Ray and Training Operator/KServe/Katib, Volcano vs Training Operator, Kaito vs KServe, MLFlow vs Model Registry, etc.
Eventually, we have users who just use native Kubernetes workloads for MLOps/LLMOps.

Yeah, I agree that there are many examples for sure. I also think that we should aim to solve for like 80% of use-cases and not 20% who may always inevitably customize. In my opinion, having 80% of use cases solved by users is an impactful thing. Many organizations will benefit from this and that will help foster a healthy community.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you want to make a Kubeflow Feature Store or use Feast?

I agree that it is always better to consolidate effort to solve the specific problem instead of building something new.
Unfortunately, it is hard to consolidate effort between cloud native, AI/ML, and Kubeflow communities.

@franciscojavierarceo What are your thoughts on the conformance program for Kubeflow distribution in that case?
When distribution can call themself Kubeflow Certified ?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that would make a lot of sense. I think in order to be included into the manifest the Add-on/component/product should obviously work easily and I think it'd be the obligated of the add-on project to keep the project moving forward and working with Kubeflow or face removal.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I assume you're suggesting a conformance program similar to what's available for Kubernetes (https://github.com/cncf/k8s-conformance/tree/master)

Copy link
Member

@andreyvelich andreyvelich Sep 24, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, my question is how do you think we should design this conformance program for distributions if we have add-ons in Kubeflow ecosystem ?
Should every Kubeflow distribution support all add-ons and who will create the test suites for those add-ons ?

Comment on lines +152 to +154
2. IP Ownerhsip
- [ ] Stand Alone
- [ ] Merge into Kubeflow/CNCF
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As I said, this might be out of scope of this proposal.

Comment on lines +156 to +159
3. Kubeflow Working Group
- [ ] None
- [ ] New
- [ ] Part of Existing
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None can't be an option, isn't ?

Comment on lines +161 to +163
4. Posting Meetings on Kubeflow Calendar
- [ ] Yes
- [ ] No
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, this should be a requirement, isn't ?

- [ ] Yes
- [ ] No

7. Pull request Approvers
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What kind of support is required for this ?

@@ -0,0 +1,36 @@
## Motivation
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think, we also require to establish process for Project Onboarding if Kubeflow community accepted this project.
For example, for Spark Operator we had this tracking issue: kubeflow/spark-operator#1928

3. Project Name
-

4. Why this project is valuable to the Kubeflow Community
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

List integrations with Kubeflow Core components?

- [ ] Yes
- [ ] No
- [ ] Collaborate

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One question should be on list of maintainers and affiliation to prove diversity

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will update

Copy link
Member

@terrytangyuan terrytangyuan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We discussed this at the KSC meeting. We'd love to move on with this proposal but scoping/repurpose this to be a governance process around add-ons instead of subprojects since the logistics are very different.

@franciscojavierarceo
Copy link
Author

Sounds good!

@terrytangyuan
Copy link
Member

Some additional information that would be useful:

  1. Location of addons
  2. Describe the integration points and value they bring
  3. How do we provide isolation from the core distribution of manifests
  4. Measure of project activity: maintainers, frequency of releases
  5. Deprecation process needs to be documented in case of inactivity

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

Successfully merging this pull request may close these issues.

Create Process for adding new projects to be included in KF
5 participants