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
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
182 changes: 182 additions & 0 deletions add-ons/APPLICATION_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -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.

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.


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

better understand the full process for submitting a new project.

In short, copy this Application Template and populate the document.
--!>


## Background information
Copy link
Member

@andreyvelich andreyvelich Sep 9, 2024

Choose a reason for hiding this comment

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

Should we try to learn something from CNCF action items: https://github.com/cncf/toc/blob/main/.github/ISSUE_TEMPLATE/template-incubation-application.md#required ?

  • All project metadata and resources are vendor-neutral
  • Governance structure
  • Contributing guides
  • Overlap with existing Kubeflow projects
  • Public list of adopters.


1. Submitter Name
-

2. Submitter’s relationship to project / title
-

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?

-

5. Short Description / Functionality
-

6. Website
-

7. GitHub repository
-

8. 1st Release date
-

9. Project Meeting Times
-

10. Meeting Notes (link)
-

11. Installation Documentation (provide status and link)
-

12. Application Documentation (provide status and link)
Copy link
Member

Choose a reason for hiding this comment

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

Is it architecture documents ?

-

13. Security Profile (CVE scanning)
-

14. Ownership / Legal Profile (license type, any potential issues for CNCF)
-

15. Kubernetes native (K8s version)
Copy link
Member

Choose a reason for hiding this comment

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

We need to explain what do we mean here by K8s native. Does it mean being cloud native/micro-service architecture or something else ?

-

16. AuthN/Z, Isolation mechanisms
-

17. Project Roadmap
-

18. Other Information
-

## Metrics

Number of Contributors
Copy link
Member

Choose a reason for hiding this comment

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

Probably, we should explain how these metrics should be measured. For example, number of PRs from different contributors in the last year.

- [ ] 1
- [ ] <10
- [ ] 10+

Number of Users
- [ ] 1
- [ ] <10
- [ ] 10+

GitHub Pull Requests in the last 90 days
- [ ] 1
- [ ] <10
- [ ] 10+

Number of Releases
- [ ] No release
- [ ] 1 release
- [ ] 2+ releases

Downloads
Copy link
Member

Choose a reason for hiding this comment

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

Download of what ? Packages, Helm Charts, Docker images.

Choose a reason for hiding this comment

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

I meant packages as we could get them easily here: https://www.pepy.tech/projects/feast?versions=0.*

- [ ] <100
- [ ] <10k
- [ ] 10k+

## Kubeflow Specific Questions

1. Kubeflow specific Roadmap
- [ ] Yes
- [ ] No
- Link

2. Workflows that integrate with Kubeflow Components
- [ ] 1
- [ ] 2
- [ ] 3+

3. Manifest Integration
- [ ] Yes
- [ ] No
- [ ] Planned
Comment on lines +105 to +108
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 before, from my personal perspective Kubeflow Manifests should only include the bundle of Kubeflow core components. That means, we don't need to ask this question.
Thoughts @kubeflow/wg-manifests-leads @thesuperzapper ?

Choose a reason for hiding this comment

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

To be transparent, this is 99% of the reason I helped write the document with Josh, so I'd like to include this.

Choose a reason for hiding this comment

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

See comment above: #741 (comment)


4. Installation
- [ ] Testing
- [ ] Stand alone
- [ ] Part of Manifests
- [ ] Part of Distributions
Comment on lines +110 to +114
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 should clarify this part.


5. Application
- [ ] Testing
- [ ] Stand alone
- [ ] Part of Kubeflow workflow
Copy link
Member

Choose a reason for hiding this comment

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

What do you mean by "Part of Kubeflow workflow"?


6. Installation Documentation (Current Quality)
- [ ] Good
- [ ] Fair
- [ ] Part of Kubeflow

7. Application Documentation (Current Quality)
- [ ] Good
- [ ] Fair
- [ ] Part of Kubeflow

8. Kubeflow Website Documentation
- [ ] Yes
- [ ] No
- Pull Request #
Comment on lines +121 to +134
Copy link
Member

Choose a reason for hiding this comment

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

This won't be the case since we should remove all non-Kubeflow docs from the https://www.kubeflow.org/

Choose a reason for hiding this comment

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

Including Add-ons?


9. Distributions position on added testing, docs
Copy link
Member

Choose a reason for hiding this comment

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

How can the project be part of Kubeflow distribution if it is not part of Kubeflow ?

- [ ] 0 Distribution
- [ ] 1 Distribution
- [ ] 2+ Distributions

10. Blog/Social Media announcements
- [ ] Yes
- [ ] No
- Pull Request #
Comment on lines +141 to +144
Copy link
Member

Choose a reason for hiding this comment

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

Do you mean if project has their own social media resources ?

Choose a reason for hiding this comment

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

Yes


## Level of Integration and Support Sought by Kubeflow

1. What level?
- [ ] Add-on
- [ ] Core
Comment on lines +148 to +150
Copy link
Member

Choose a reason for hiding this comment

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

Think should be discussed.


2. IP Ownerhsip
- [ ] Stand Alone
- [ ] Merge into Kubeflow/CNCF
Comment on lines +152 to +154
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.


3. Kubeflow Working Group
- [ ] None
- [ ] New
- [ ] Part of Existing
Comment on lines +156 to +159
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 ?


4. Posting Meetings on Kubeflow Calendar
- [ ] Yes
- [ ] No
Comment on lines +161 to +163
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 ?


5. Use of Zoom Accounts
- [ ] Yes
- [ ] No

6. Repository Ownership
- [ ] 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 ?

- [ ] Yes
- [ ] No

8. Posting on Kubeflow Social Media, blog, and website
- [ ] 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


36 changes: 36 additions & 0 deletions proposals/new-project-addition-process.md
Original file line number Diff line number Diff line change
@@ -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

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 proposal should also include the following:

  • Why this process is needed for Kubeflow community ?
  • Explain the responsibilities for project owners.
  • How this affect the existing Kubeflow governance structure (Working Groups, KSC, etc.).
  • Level of maturity for projects to be donated to the Kubeflow. For example, how many production users, contributors, releases, etc.

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

As Kubeflow has become a well established ecosystem and community, several
projects may want to be incorporated into Kubeflow in different capacities.

That may include:
1. Project Donation
2. Inclusion in the Manifest
3. Inclusion in documentation as an add on
Comment on lines +5 to +8
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 ?


This proposal aims to give guidelines and set expectations for community
members about the application process.

## Goals
The goal of this proposal is to provide a clear process for being included in
the Kubeflow ecosystem.

## Non-Goals
Give specific recommendations for evaluating any individual project.

## UI or API
N/A

## Design
Project owners or maintainers will apply for inclusion by following a four
step process. submitting the

The process is outlined in 4 steps:
Copy link
Member

Choose a reason for hiding this comment

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

We might want to also ask to:

  • Send announcement in kubeflow-discuss
  • Ask Kubeflow Outreach Committee to publish message in Slack, LinkedIn, Twitter Kubeflow resources


1. Submit a Pull Request with the [../add-ons/APPLICATION_TEMPLATE.md](application form).
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 call this folder /proposals/donation or /proposals/ecosystem-projects like in Argo, similar to how CNCF has folders for graduation, incubation, and sandbox projects: https://github.com/cncf/toc/tree/main/proposals

2. Schedule meeting with Kubeflow Community to introduce and collect feedback on
the application.
3. Schedule meeting with Kubeflow Steering Committee for initial vote and to collect feedback.
4. Merge or close the Pull Request depending upon the outcome of the final vote.

## Alternatives Considered
N/A