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

Update Kubeflow Installation with Standalone Mode #3724

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

Conversation

andreyvelich
Copy link
Member

As we discussed multiple times before, we want to explain our users that Kubeflow components can be deployed:

  • in Standalone mode.
  • in Kubeflow Platform for end-to-end AI/ML experience.

In this PR I made changes to the installation section:
I removed What is Kubeflow? section from this page since we already have this section here: https://www.kubeflow.org/docs/started/introduction/#what-is-kubeflow, we can update it if you think it is out-of-date.

I made these sections:

  • Install Kubeflow Components Standalone
  • Install Kubeflow Platform from Raw Manifests
  • Install Kubeflow Platform from Packaged Distributions

From my point of view this is logically correct, for users to learn about Kubeflow ecosystem. Firstly, users will explore the value of individual Kubeflow components. Secondly, if users need end-to-end AI/ML experience with all Kubeflow components, they will explore the Raw Manifests and Package Distributions installation.

What do you think about it ?

I am happy to work on the language to make it less confusing for our users if you have other ideas on how we can improve it.

/hold for review

/assign @kubeflow/wg-notebooks-leads @kubeflow/wg-pipeline-leads @kubeflow/wg-training-leads @kubeflow/wg-data-leads @kubeflow/release-team @kubeflow/kubeflow-steering-committee @kubeflow/wg-deployment-leads

Copy link
Member

@tarilabs tarilabs left a comment

Choose a reason for hiding this comment

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

I like this a lot, I believe it is important to make evident that you can opt-in to a subset of specific components and not "necessarily be force to the whole" (which was never the case).

Hence, I believe it's good the section "Install Kubeflow Components Standalone" comes first.

Maybe we can add some/additional brief paragraph when to chose either, for example:

  • for Components-Standalone: helpful when you want to try out locally or in your Kubernetes installation a specific component
  • for Raw-Manifests, in addition to being the basis for distribution (which is what is currently mentioned): helpful when you want to try out the end-to-end Kubeflow platform capabilities, or see how a specific component integrates in the Kubeflow ecosystem
  • for Packages Distributions: nothing to add here

for considerations, hope this helps

@@ -5,30 +5,65 @@ weight = 20

+++

## What is Kubeflow?
Kubeflow is the ecosystem of various applications created to address each stage in the AI/ML lifecycle,
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
Kubeflow is the ecosystem of various applications created to address each stage in the AI/ML lifecycle,
Kubeflow is an ecosystem of various applications created to address each stage in the AI/ML lifecycle,

@thesuperzapper
Copy link
Member

I think this update is much more confusing to new users and significantly confuses the message of "What is Kubeflow?".

To be clear, I am not against telling users that some components of Kubeflow can be installed on their own, but we need to be careful not to confuse people or make representations of support that are not true.


Alternate Proposal

The current page is actually pretty good at explaining the options users have to install Kubeflow.

I propose we simply add a 3rd option under "How to install Kubeflow?" so we have the following (in this order):

  1. Packaged Distributions
  2. Raw Manifests (advanced users)
  3. Standalone Components (advanced users)

We also must get firm commitments from the maintainers of components listed under "Standalone Components". Users will expect deployment support, and don't want to impose that on maintainers without their agreement.

Copy link
Contributor

@hbelmiro hbelmiro left a comment

Choose a reason for hiding this comment

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

I agree with removing "What is Kubeflow?" from here.
Regarding the order of the types of installations, I don't see much difference in which one goes first. As long as we mention three types of installations in the beginning, the order doesn't seem to matter to me.

- Install [Kubeflow Pipelines](/docs/components/pipelines/v2/installation/quickstart/)
- Install [Kubeflow Training Operator](/docs/components/training/installation/#installing-training-operator)
- Install [Kubeflow MPI Operator](/docs/components/training/user-guides/mpi/#installation)
- Install [Kubeflow Katib] (TODO: Add link after #3723)
Copy link
Contributor

@hbelmiro hbelmiro Apr 29, 2024

Choose a reason for hiding this comment

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

I'm not sure about adding "TODO" here. Maybe "Not yet available", or something like that would be better. Also, adding to kubeflow/katib#2314 a task to update the link here.

Copy link
Member Author

Choose a reason for hiding this comment

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

I want to merge this PR after Katib and Model registry docs will be updated: #3723, #3698.
So I can add the appropriate links here.

- Install [Kubeflow MPI Operator](/docs/components/training/user-guides/mpi/#installation)
- Install [Kubeflow Katib] (TODO: Add link after #3723)
- Install [KServe](https://kserve.github.io/website/0.10/admin/serverless/serverless/)
- Install Kubeflow Model Registry (TODO: Add link after #3698)
Copy link
Contributor

Choose a reason for hiding this comment

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

Same as above, but using the respective Model Registry issue.

@andreyvelich
Copy link
Member Author

helpful when you want to try out locally or in your Kubernetes installation a specific component

@tarilabs I added your suggestion to the manifests installation, thanks! For the standalone installation, do you think these messages are not sufficient to explain value of Standalone Components ?

Kubeflow components can be deployed as standalone applications.
You can integrate those components to your existing AI/ML platform.
For example, for Model Training you can install Training Operator or for Model Serving you can install KServe.

@andreyvelich
Copy link
Member Author

andreyvelich commented Apr 29, 2024

I think this update is much more confusing to new users and significantly confuses the message of "What is Kubeflow?".

@thesuperzapper Please can you explain why this update confuses users about Kubeflow Ecosystem value ?
From my perspective we make it very clear that Kubeflow project can be used in various ways.
The main motivation is to give new Kubeflow components (Model Registry, Spark Operator) visibility and grow the community around it (outside of Kubeflow Platform scope).

To be clear, I am not against telling users that some components of Kubeflow can be installed on their own, but we need to be careful not to confuse people or make representations of support that are not true.

Which message shows incorrect representation of support ? If users deploy Kubeflow components standalone and get some potential bugs/integrations issues, they should raise it to the components owners to get support.

Raw Manifests (advanced users)

What is the end-user value to tell that Raw Manifest and Standalone Installation is for advanced users ?
Some Kubeflow components are very light-weight and easy to install.

Users will expect deployment support, and don't want to impose that on maintainers without their agreement.

I am happy to remove some of the Kubeflow components from this page if WG leads don't want their components to be presented here.

@andreyvelich
Copy link
Member Author

cc @jeremyeder @bigsur0 Would love to get your feedback for this change as well.

@thesuperzapper
Copy link
Member

thesuperzapper commented Apr 29, 2024

@andreyvelich

I have made an alternative PR which tries to be less confusing:

It is a much smaller change to the structure, and uses tables to format the information about if each component can be deployed standalone.

If you agree that its better, lets move the discussion to that PR and close this.

@juliusvonkohout
Copy link
Member

@andreyvelich I have made an alternative PR which tries to be less confusing:

* [Add "Standalone Components" section to "Installing Kubeflow" #3726](https://github.com/kubeflow/website/pull/3726)

It is a much smaller change to the structure, and uses tables to format the information about if each component can be deployed standalone.

If you agree that its better, lets move the discussion to that PR and close this.

Doesnt it change this order here significantly?

- [**Install Kubeflow Components Standalone**](#install-kubeflow-components-standalone)
- [**Install Kubeflow Platform from Raw Manifests**](#install-kubeflow-platform-from-raw-manifests)
- [**Install Kubeflow Platform from Packaged Distributions**](#install-kubeflow-platform-from-packages-distributions)

seems to become

- [**Install Kubeflow Platform from Packaged Distributions**](#install-kubeflow-platform-from-packages-distributions)
- [**Install Kubeflow Components Standalone**](#install-kubeflow-components-standalone)
- [**Install Kubeflow Platform from Raw Manifests**](#install-kubeflow-platform-from-raw-manifests)

@tarilabs
Copy link
Member

@tarilabs I added your suggestion to the manifests installation, thanks! For the standalone installation, do you think these messages are not sufficient to explain value of Standalone Components ?

glad that helped, about the standalone very-imho is worthy to call out testing a component "locally" or in isolation, in addition to the existing AI/ML/K8s one might have.
for example, as a relatively newcomer to Kubeflow, I thought I needed it all if I wanted to try one single part :)
my2c, of course I can understand if this comment is not incorporated! 🚀 👍

@andreyvelich
Copy link
Member Author

andreyvelich commented Apr 30, 2024

@andreyvelich I have made an alternative PR which tries to be less confusing:

It is a much smaller change to the structure, and uses tables to format the information about if each component can be deployed standalone.

If you agree that its better, lets move the discussion to that PR and close this.

@thesuperzapper As we discussed, I am happy to incorporate your feedback in this PR based on our discussion during today's community call. A few thoughts from my side:


If you don't like the ordering of installation instructions we can make these 2 sections:

  • Install Kubeflow Components Standalone
  • Install Kubeflow Platform

In that case, we can move Distributions + Raw Manifests to the Install Kubeflow Platform section.


From my point of view, it doesn't give a lot of value for users to add Supports Standalone column to the table. We can always update the table with other Kubeflow Component, if it supports it. For example, we can add Kubeflow Notebooks in the future.


I am not sure if we should add the Note about limited or unavailable feature section to the Standalone Components. We can add the section to the Kubeflow Introduction:

  • What is Kubeflow ?
  • What is Kubeflow Standalone Components ?
  • What is Kubeflow Platform ?

And explain the differences there.

@andreyvelich
Copy link
Member Author

Thanks everyone who participated in our today's discussion to show the real power of Kubeflow ecosystem.
I strongly believe that this change will help us to grow the community especially with the new project adoption: Spark Operator and Model Registry.

I want to summarize our discussion today about this PR:

  1. We agree that it makes sense to explain that Kubeflow Components can be deployed standalone.
  2. We want to collect feedback from distribution owners for this change.
  3. We should re-use this ML Lifecycle diagram that @franciscojavierarceo and I created for Training Operator and re-use it in the ML Workflow guide
  4. We are discussing to add the following statement to the installation page:
    What is Kubeflow ?
    Example text:
Kubeflow is an ecosystem of various applications created to address each stage in the AI/ML lifecycle,
from exploration to training and serving. You can deploy Kubeflow components as standalone applications
or deploy Kubeflow as an end-to-end AI/ML platform. Anywhere you are running Kubernetes,
you should be able to run Kubeflow.

What is Kubeflow Standalone Components ?

TODO: Add text

What is Kubeflow Platform ?

TODO: Add text

If we agree with that, we can add these subsections to the installation page:
Installing Kubeflow Standalone Components
Installing Kubeflow Platform

In the future PRs we can split them between 2 separate pages if we want.

  1. If we agree, I can keep (Advanced User) and existing warnings for manifests installation in this PR. We can make followup discussion if we should change it.

  2. I am happy to take the table from PR: Add "Standalone Components" section to "Installing Kubeflow" #3726, with these columns: Kubeflow Component, Source Code.
    As I said before: Update Kubeflow Installation with Standalone Mode #3724 (comment) I am not sure if we should have "Supported Standalone" section.

Please let me know if I missed something.

@thesuperzapper Please can you share recordings from our today's call.

@andreyvelich
Copy link
Member Author

Distribution owners please give your feedback for this PR.
/cc @ca-scribner @gkcalat @zijianjoy @Linchin @Tomcli @yhwang @johnugeorge @nagar-ajay @rimolive @thesuperzapper @liuqi @xujinheng @alexeadem

Copy link

@andreyvelich: GitHub didn't allow me to request PR reviews from the following users: Linchin, alexeadem.

Note that only kubeflow members and repo collaborators can review this PR, and authors cannot review their own PRs.

In response to this:

Distribution owners please give your feedback for this PR.
/cc @ca-scribner @gkcalat @zijianjoy @Linchin @Tomcli @yhwang @johnugeorge @nagar-ajay @rimolive @thesuperzapper @liuqi @xujinheng @alexeadem

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.


Packaged distributions are maintained by various organizations and typically aim to provide
a simplified installation and management experience for Kubeflow. Some distributions can be
deployed on [all certified Kubernetes distributions](https://kubernetes.io/partners/#conformance),
a simplified installation and management experience for **Kubeflow Platform**. Some distributions
Copy link
Contributor

Choose a reason for hiding this comment

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

suggested change...for your Kubeflow Platform

The Kubeflow Platform refers to the full suite of Kubeflow components bundled together with
additional integration and management tools. Installing Kubeflow as a platform means deploying a
comprehensive ML toolkit that integrates these components into a cohesive system, optimized for
managing the end-to-end ML lifecycle. These includes not only the standalone components but also:
Copy link
Contributor

Choose a reason for hiding this comment

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

suggested change - This includes the standalone components coupled with these integrations and management tools:

Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
@andreyvelich
Copy link
Member Author

Based on our today's discussion, I updated header to move From Packaged Distribution and From Raw Manifests section under Kubeflow Platform.

I didn't remove the easier word from this sentence yet, since @kubeflow/kubeflow-steering-committee don't see concerns with that. Likely, users will stay with Kubeflow ecosystem when they see any AI/ML value from the underlying Kubeflow components:

This is a quick and easier method to get started with Kubeflow ecosystem since those components 
usually don’t require additional management tools used in a Kubeflow Platform.

@kubeflow/wg-notebooks-leads Please let me know what changes do you want to make for Kubeflow Notebook component notice.

We will announce this PR in kubeflow-discuss, and we will give distribution owners 1 week to comment their objections/suggestions.

Copy link
Member

@thesuperzapper thesuperzapper left a comment

Choose a reason for hiding this comment

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

@andreyvelich thanks for your work! I have a few more comments before I am happy.

The main change I am proposing is to update the headings to be:

  • ### Installation Methods (note the h3 to make it smaller)
  • ## Standalone Components
  • ## Kubeflow Platform
    • ### Packaged Distributions
    • ### Raw Manifests

This is very clean and removes extra words.

I have also made some other suggestions (see comments below).

Patch File

I have also prepared a patch file if you want to see them all at once.

PROPOSAL_for_Installing_Kubeflow.patch

Screenshots

This is a screenshot of the two pages (after applying the above patch):

Installing Kubeflow Page

Installing-Kubeflow-Kubeflow

Introduction Page

Introduction-Kubeflow

Comment on lines 11 to 12
Read [the introduction guide](/docs/started/introduction) to understand what are Kubeflow
standalone components and what is Kubeflow Platform.
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 can simplify this wording for clarity:

Suggested change
Read [the introduction guide](/docs/started/introduction) to understand what are Kubeflow
standalone components and what is Kubeflow Platform.
Read [the introduction](/docs/started/introduction) to learn more about Kubeflow, standalone components, and the Kubeflow Platform.

Copy link
Member

Choose a reason for hiding this comment

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

This is resolved.

content/en/docs/started/installing-kubeflow.md Outdated Show resolved Hide resolved
content/en/docs/started/installing-kubeflow.md Outdated Show resolved Hide resolved
content/en/docs/started/installing-kubeflow.md Outdated Show resolved Hide resolved
Comment on lines +28 to +29
This is a quick and easier method to get started with Kubeflow ecosystem since those components usually
don't require additional management tools used in a Kubeflow Platform.
Copy link
Member

Choose a reason for hiding this comment

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

Rather than saying "easier" we can say "quicker" because that is objectively true, whereas "easier" is subjective.

We can also use this line to explain that users should look at the component docs for specific differences (e.g. Pipelines using embedded MinIO and not supporting multi-user):

Suggested change
This is a quick and easier method to get started with Kubeflow ecosystem since those components usually
don't require additional management tools used in a Kubeflow Platform.
Standalone components provide a quick way to get started with the Kubeflow ecosystem.
However, there are some differences in functionality compared to a full [Kubeflow Platform](#kubeflow-platform), please refer to each component documentation for more details.

Copy link
Member

Choose a reason for hiding this comment

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

This still needs to be discussed.

In the community call people were happy to say "a quick way" rather than "easier" as its objectively true, rather than being a comparative statement.

Its also important that we ask users to review the component-specific docs for any differences.

See https://github.com/kubeflow/website/pull/3724/files#r1608934544 for my proposal.

Copy link
Member Author

Choose a reason for hiding this comment

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

I've already asked community, distribution, users to comment on this PR if they have concerns with word: easier.
We can wait by end of this week for other objections.

As @jbottum said on the community call it is obvious that starting with single component will be easier than install all Kubeflow Platform.

Copy link
Member

Choose a reason for hiding this comment

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

We can't know what is "easier" for any particular user as this is subjective and depends on what they are trying to do.

@rareddy @kimwnasptd can you please clarify what the positions of Red Hat and Canonical are here? (Or any other distributions)


The specific wording is not important, and it's much less controversial if we just say standalone components are "a quick way to get started with Kubeflow" (note, this is not "quicker").

@andreyvelich I hope you understand why I am opposed to making making superlative statements, and prefer we stick to factual ones.

Although I doubt we will get many responses here because this PR has SOOO much activity on it, and this comment thread will get lost.

providing flexibility to users who may not require the full capabilities of Kubeflow Platform but
wish to leverage specific ML functionalities.

## What is Kubeflow Platform ?
Copy link
Member

Choose a reason for hiding this comment

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

This is clearly a typo, and it breaks # anchor links:

Suggested change
## What is Kubeflow Platform ?
## What is Kubeflow Platform?

Comment on lines 27 to 31
The Kubeflow Platform refers to the full suite of Kubeflow components bundled together with
additional integration and management tools. Installing Kubeflow as a platform means deploying a
comprehensive ML toolkit that integrates these components into a cohesive system, optimized for
managing the end-to-end ML lifecycle. This includes the standalone components coupled with these
integrations and management tools:
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 can simplify this wording for clarity:

Suggested change
The Kubeflow Platform refers to the full suite of Kubeflow components bundled together with
additional integration and management tools. Installing Kubeflow as a platform means deploying a
comprehensive ML toolkit that integrates these components into a cohesive system, optimized for
managing the end-to-end ML lifecycle. This includes the standalone components coupled with these
integrations and management tools:
The Kubeflow Platform refers to the full suite of Kubeflow components bundled together with
additional integration and management tools. Using Kubeflow as a platform means deploying a
comprehensive ML toolkit for the entire ML lifecycle.

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated this.

Comment on lines 33 to 35
- Central Dashboard for easy navigation and management.
- Multi-user capabilities and access management.
- Additional tooling and services for data management, visualization, and more.
Copy link
Member

Choose a reason for hiding this comment

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

I propose we link to the components which we are talking about, so users can read more about them:

Suggested change
- Central Dashboard for easy navigation and management.
- Multi-user capabilities and access management.
- Additional tooling and services for data management, visualization, and more.
In addition to the standalone components, the Kubeflow Platform includes:
- [__Central Dashboard__](/docs/components/central-dash/overview/) for easy navigation and management, with [profiles](/docs/components/central-dash/profiles/) for access control.
- [__Kubeflow Notebooks__](/docs/components/notebooks/overview/) for interactive data exploration and model development.
- Additional tooling for data management (PVC Viewer), visualization (TensorBoards), and more.

Copy link
Member Author

Choose a reason for hiding this comment

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

Updated it, please take a look. Do we need to include Kubeflow Notebooks here as well @kubeflow/wg-notebooks-leads ?

Copy link
Member

Choose a reason for hiding this comment

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

@andreyvelich we definitely need to include notebooks, it's one of the main reasons people use the "Kubeflow Platform" and is not available standalone.

Also, it is cleaner to combine the profiles/dashboard into one bullet once we have all three:

- [__Central Dashboard__](/docs/components/central-dash/overview/) for easy navigation and management, with [profiles](/docs/components/central-dash/profiles/) for access control.
- [__Kubeflow Notebooks__](/docs/components/notebooks/overview/) for interactive data exploration and model development.
- Additional tooling for data management (PVC Viewer), visualization (TensorBoards), and more.

PS: don't put extra newlines between bullet points, it makes the formatting weird.

Comment on lines 37 to 38
This integrated environment ensures that all the different pieces work together seamlessly,
providing a more robust and streamlined user experience.
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 don't need this extra paragraph, or if we keep it, it needs to be less "flowery":

Suggested change
This integrated environment ensures that all the different pieces work together seamlessly,
providing a more robust and streamlined user experience.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok, removed for now.

Comment on lines 40 to 42
Kubeflow Platform can be installed via
[Packaged Distributions](/docs/started/installing-kubeflow/#install-kubeflow-platform-from-packaged-distributions) or
[Raw Manifests](/docs/started/installing-kubeflow/#install-kubeflow-platform-from-raw-manifests).
Copy link
Member

Choose a reason for hiding this comment

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

If we rename the headings on the other page, the links need to change:

Suggested change
Kubeflow Platform can be installed via
[Packaged Distributions](/docs/started/installing-kubeflow/#install-kubeflow-platform-from-packaged-distributions) or
[Raw Manifests](/docs/started/installing-kubeflow/#install-kubeflow-platform-from-raw-manifests).
The Kubeflow Platform can be installed via
[Packaged Distributions](/docs/started/installing-kubeflow/#packaged-distributions) or
[Raw Manifests](/docs/started/installing-kubeflow/#raw-manifests).

Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
@@ -5,30 +5,164 @@ weight = 20

+++

## What is Kubeflow?
This guide describes how to install Kubeflow standalone components or Kubeflow Platform using package
distributions or raw manifests.
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
distributions or raw manifests.
distributions or Kustomize manifests.

@@ -200,12 +334,16 @@ The following table lists distributions which are <em>maintained</em> by their r
</table>
</div>

## Raw Kubeflow Manifests
### Raw Manifests
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
### Raw Manifests
### Kustomize Manifests


The raw Kubeflow Manifests are aggregated by the [Manifests Working Group](https://github.com/kubeflow/community/tree/master/wg-manifests)
and are intended to be used as the **base of packaged distributions**.
The raw Kubeflow Manifests are aggregated by the Manifests Working Group and are intended to be
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
The raw Kubeflow Manifests are aggregated by the Manifests Working Group and are intended to be
The Kustomize Kubeflow Manifests are aggregated by the Manifests Working Group and are intended to be

Copy link
Contributor

Choose a reason for hiding this comment

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

I am concerned about using the Raw Manifest term. I dont believe that we use it in the Manifest docs. Maybe just Manifests ?

Copy link
Member

Choose a reason for hiding this comment

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

The reason we chose "raw manifests" historically is because it highlights that they are not ready for production out of the box, and are not the "official" way to deploy Kubeflow (as required by the Manifests WG charter).

The core purpose of the manifests has always been to enable the creation of distributions that are more targeted to specific environments/users.

Obviously, some advanced users have chosen to effectively make "bespoke" distributions for their company, and that's fine but it's important for users to not think that the manifest are an "out of the box" experience.

Copy link
Member

Choose a reason for hiding this comment

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

@thesuperzapper I do not see how the name "Kustomize manifests" (since they are actually kustomize manifests) changes that. I did not add "official way to install" or something similar.

@jbottum I am also fine with just "manifests".

In the end Kustomize manifests is the proper technical term.

Copy link
Member

Choose a reason for hiding this comment

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

@juliusvonkohout I really think we should discuss this in a separate PR, where we can make a decision on that branding specifically.

The website currently calls them "raw manifests" and adding more changes to this PR will only make it take longer to merge.

Copy link
Member

Choose a reason for hiding this comment

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

I don't think we should call it "kustomize manifests" since that's implementation detail. ICYMI, kustomize now ships with kubectl as a sub-command.

I don't think this is blocking the PR. Maybe a separate discussion.

Copy link
Member Author

Choose a reason for hiding this comment

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

Can we just call them Kubeflow Manifests @juliusvonkohout @terrytangyuan @jbottum @thesuperzapper ?
E.g.

The Kubeflow Manifests are aggregated by the Manifests Working Group and are intended to be used as the
base of packaged distributions.

Copy link
Member

Choose a reason for hiding this comment

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

SGTM

Copy link
Member

Choose a reason for hiding this comment

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

@andreyvelich @terrytangyuan I am more ok with using Kubeflow Manifests, but we should do that change in a separate PR, to allow others to discuss.

This PR is already doing a lot, and is very hard to review for stakeholders.

Copy link
Member Author

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, the final decision will be up to the Manifest WG since they maintain this section.
I don't think renaming Raw Manifests to the Kubeflow Manifests is a big deal, tbh, but I am happy to hear other community members objections.


The Kubeflow Platform can be installed via
[Packaged Distributions](/docs/started/installing-kubeflow/#packaged-distributions) or
[Raw Manifests](/docs/started/installing-kubeflow/#raw-manifests).
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
[Raw Manifests](/docs/started/installing-kubeflow/#raw-manifests).
[Kustomize Manifests](/docs/started/installing-kubeflow/#kustomize-manifests).

@juliusvonkohout
Copy link
Member

juliusvonkohout commented May 22, 2024

@andreyvelich since we talked for quite some time about the word "easy" etc., i think we should say "Kustomize" instead of "raw" manifests as well. I added the suggestions above and below.

@@ -224,9 +362,8 @@ If you need support, please consider using a [packaged distribution](#packaged-d
Nevertheless, we welcome contributions and bug reports very much.
{{% /alert %}}

<a id="next-steps"></a>
Copy link
Member

Choose a reason for hiding this comment

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

{{% alert title="Warning" color="warning" %}}
Kubeflow is a complex system with many components and dependencies.
Using the Kubeflow manifests requires some understanding of Kubernetes, Istio, and Kubeflow itself.
The Kubeflow community support for Kubeflow manifests is best-effort for environment-specific issues or custom configurations.
Nevertheless, we welcome contributions and bug reports very much.
{{% /alert %}}

@andreyvelich i was not able to make a direct code suggestion here so I am just pasting the full alert.

applications which makes **Kubeflow Platform**. This installation is helpful when you want to try
out the end-to-end Kubeflow Platform capabilities.

Users may choose to install the manifests for a specific Kubeflow version by following the
instructions in the `README` of the [`kubeflow/manifests`](https://github.com/kubeflow/manifests) repository.

- [**Kubeflow 1.8:**](/docs/releases/kubeflow-1.8/)
Copy link
Member

Choose a reason for hiding this comment

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

- [**Kubeflow 1.8:**](/docs/releases/kubeflow-1.8/)
  - [`v1.8-branch`](https://github.com/kubeflow/manifests/tree/v1.8-branch#installation) <sup>(development branch)</sup>
  - [`v1.8.0`](https://github.com/kubeflow/manifests/tree/v1.8.0#installation)
- [**Kubeflow 1.9:**](/docs/releases/kubeflow-1.9/)
  - [`v1.9-branch`](https://github.com/kubeflow/manifests/tree/v1.9-branch#installation) <sup>(development branch)</sup>
  - [`v1.9.0`](https://github.com/kubeflow/manifests/tree/v1.9.0#installation)

I think we should either reference the master or 1.9 branch, but 1.7 is not supported anymore.

Copy link
Member Author

Choose a reason for hiding this comment

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

@juliusvonkohout Can we update it once we release Kubeflow 1.9 ?

Copy link
Member

Choose a reason for hiding this comment

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

We should not link to unreleased versions.


The Kubeflow Platform can be installed via
[Packaged Distributions](/docs/started/installing-kubeflow/#packaged-distributions) or
[Raw Manifests](/docs/started/installing-kubeflow/#raw-manifests).
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
[Raw Manifests](/docs/started/installing-kubeflow/#raw-manifests).
[Kustomize Manifests](/docs/started/installing-kubeflow/#kustomize-manifests).

Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Copy link
Member

@thesuperzapper thesuperzapper left a comment

Choose a reason for hiding this comment

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

I still have a small number of comments.

The main one is that we should use H2 headings for the core sections, rather than H3.


Learn more about Kubeflow in the [Introduction](/docs/started/introduction/) and
[Architecture](/docs/started/architecture/) pages.
## Installing Methods
Copy link
Member

Choose a reason for hiding this comment

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

More grammatically correct:

Suggested change
## Installing Methods
## Installation Methods


1. [**Packaged Distributions**](#packaged-distributions-of-kubeflow)
1. [**Raw Manifests**](#raw-kubeflow-manifests) <sup>(advanced users)</sup>
### Kubeflow Components Standalone
Copy link
Member

Choose a reason for hiding this comment

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

This should be H2, as it makes the page easier to read.

Also, I think "Standalone" should be the first word:

Suggested change
### Kubeflow Components Standalone
## Standalone Kubeflow Components

Copy link
Member Author

Choose a reason for hiding this comment

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

In that case, I will rename the introduction section to: What are Standalone Kubeflow Components

We should make it H3, so these headers will be under Installation Methods:

Screenshot 2024-05-22 at 22 47 14

Copy link
Member

Choose a reason for hiding this comment

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

@andreyvelich I think the indentation on the sidebar is much less important than the readability of the page.

Using H3 is already very small, and it forces us to use H4 for the "Packaged Distributions" and "Raw Manifests" headings, which is way to small.

Take a look and see what you think.

PS: also make the "Installation Methods" an H3, because it does not need to be big, its an index.

</table>
</div>

### Kubeflow Platform
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 H2, as it makes the page easier to read:

Suggested change
### Kubeflow Platform
## Kubeflow Platform

You can use one of the following methods to install Kubeflow Platform to get full suite of Kubeflow
components bundled together with additional integration and management tools.

#### Packaged Distributions
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 can be H3, so it sits cleanly under ## Kubeflow Platform (which should be H2):

Suggested change
#### Packaged Distributions
### Packaged Distributions

@@ -200,12 +331,16 @@ The following table lists distributions which are <em>maintained</em> by their r
</table>
</div>

## Raw Kubeflow Manifests
#### Raw Manifests
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 can be H3, so it sits cleanly under ## Kubeflow Platform (which should be H2):

Suggested change
#### Raw Manifests
### Raw Manifests

Comment on lines +28 to +29
This is a quick and easier method to get started with Kubeflow ecosystem since those components usually
don't require additional management tools used in a Kubeflow Platform.
Copy link
Member

Choose a reason for hiding this comment

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

This still needs to be discussed.

In the community call people were happy to say "a quick way" rather than "easier" as its objectively true, rather than being a comparative statement.

Its also important that we ask users to review the component-specific docs for any differences.

See https://github.com/kubeflow/website/pull/3724/files#r1608934544 for my proposal.

Comment on lines 155 to 156
You can use one of the following methods to install Kubeflow Platform to get full suite of Kubeflow
components bundled together with additional integration and management tools.
Copy link
Member

Choose a reason for hiding this comment

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

We can link people to the introduction "What is Kubeflow Platform?" section, to help them understand the differences:

Suggested change
You can use one of the following methods to install Kubeflow Platform to get full suite of Kubeflow
components bundled together with additional integration and management tools.
You can use one of the following methods to install the Kubeflow Platform.
When deployed as a platform, Kubeflow provides a comprehensive set of tools for the entire ML lifecycle.
For more information about the platform, please see this [introduction](/docs/started/introduction/#what-is-kubeflow-platform).

Copy link
Member Author

Choose a reason for hiding this comment

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

I can modify this as follows:

You can use one of the following methods to install [Kubeflow Platform](/docs/started/introduction/#what-is-kubeflow-platform)
to get full suite of standalone Kubeflow components bundled together with additional tools.

We already linked the introduction page at the beginning of this page.

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 an active tense is better.

You can use one of the following methods to install the [Kubeflow Platform](/docs/started/introduction/#what-is-kubeflow-platform).
When deployed as a platform, Kubeflow provides a comprehensive set of tools for the entire ML lifecycle. 

Which is more similar to what you originally proposed anyway, just with a link to the introduction page.

Copy link
Member Author

Choose a reason for hiding this comment

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

We have to say that all Standalone Kubeflow Components are included in the Kubeflow Platform.

Copy link
Member

Choose a reason for hiding this comment

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

@andreyvelich I think that is implied. Also, its explicitly said in the /docs/started/introduction/#what-is-kubeflow-platform link if the user clicks.

The key "selling point" of the platform is the When deployed as a platform, Kubeflow provides a comprehensive set of tools for the entire ML lifecycle..

Talking about standalone components in this heading detracts from this idea of using Kubeflow as a platform, I get that your interest is in Kubeflow not being a platform, but many users want a platform, and that's why we have two sections on this page.

Copy link
Member Author

Choose a reason for hiding this comment

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

Ok, can you rephrase this message to explain that all Standalone Kubeflow Components will be included into Kubeflow Platform ?

Comment on lines 32 to 33
comprehensive ML toolkit fot the entire ML lifecycle. This includes the standalone components
coupled with these integrations and management tools:
Copy link
Member

Choose a reason for hiding this comment

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

A newline before the list makes this easier to read.

There is also a typo fot rather than for.

Also, I think In addition to the standalone components, the Kubeflow Platform includes: is a slightly easier-to-read and much more correct ("Kubeflow Notebooks" is not an "integration" or "management tool"):

Suggested change
comprehensive ML toolkit fot the entire ML lifecycle. This includes the standalone components
coupled with these integrations and management tools:
comprehensive ML toolkit for the entire ML lifecycle.
In addition to the standalone components, the Kubeflow Platform includes:

Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
@andreyvelich
Copy link
Member Author

@kubeflow/wg-manifests-leads @jbottum @terrytangyuan I renamed Raw Manifests to Kubeflow Manifests.

Signed-off-by: Andrey Velichkevich <andrey.velichkevich@gmail.com>
@terrytangyuan
Copy link
Member

/lgtm

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

Successfully merging this pull request may close these issues.

None yet