-
Notifications
You must be signed in to change notification settings - Fork 1.7k
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
[Multi user] How do we release KFP multi user in Kubeflow? #3645
Comments
@jlewi I think we want a way to release it soon (maybe as experimental first). So we can also go with release as an experimental fork from kubeflow 1.0.2 and wait for either 1.0.3 or 1.1. What do you think? |
@Bobgy Why do we need a fork? If its on master can't people just deploy from master? |
@Bobgy is all the relevant code/fixes on master? What is the path forward for turning on ISTIO in the kubeflow namespace? kubeflow/kfctl#296 Does the KFP manifest(https://github.com/kubeflow/manifests/tree/master/pipeline) need to be updated with multiuser changes? |
@jlewi I verified using namespace resource works (I guess I misconfigured sth when I tried it before), so we can just use kfctl 1.0.2. All relevant code/fixes are on KFP master and my forked manifest branch: https://github.com/Bobgy/manifests/pull/3/files. (it can be deployed normally following https://www.kubeflow.org/docs/gke/deploy/deploy-cli/ and use CONFIG_URI="https://raw.githubusercontent.com/Bobgy/manifests/kfp-multi-user/kfdef/kfctl_gcp_iap.yaml" instead |
I prefer that, in this release, only KFP is kind of experimental using the multi user mode, but all other components are stable. Therefore, I think KF 1.0.2 might be a good candidate as a base. What do you think? in the mean time, I can try to merge forked changes to Kubeflow master |
@Bobgy my suggestion would be to get things working on master. I don't know that we want to big changes onto release branches. Either way though getting it checked in working on master is a precursor so lets do that first. |
I think we'd want to release a relatively stable version soon for community to try out KFP multi user mode in a forked branch. In the mean time, I can try to start sending PRs to master. |
Would back-porting this onto 1.0 branch be consistent with semantic versioning? |
I see, that makes sense to me. Shall we
|
My suggestion would be to get it working on master. Once we have it working on master we can either add a git tag or possibly create a new release branch. I'd probably recommend we bump the minor version; e.g |
@jlewi Sounds good. After rethinking over it, I agree there's not much value added if the early access fork is based on 1.0.2, because KFP itself is also experimental. I'll try to merge to kubeflow master first |
@Bobgy +1 I think the only changes would be
Per: GoogleCloudPlatform/kubeflow-distribution#5 I'm setting up autodeployments for gcp blueprints. That should make it easy for us to verify and ultimately add tests to verify it is all working. |
@jlewi Thanks for the suggestion! Because I have limited capacity working on these, I will get these changes merged to kubeflow/manifest master first before trying out the gcp blue print. |
@Bobgy thanks a lot for confirming. While we (and other users) can test multi-user pipelines on their on-prem installations, it's very difficult to dig through every part of the code and make sure the headers are configurable. Is there a plan to make the headers configurable like the rest of Kubeflow's web apps? (Jupyter Web App, CentralDashboard, etc). @jlewi we had similar issues with web apps being GCP-only in v0.6 and we contributed changes throughout the code after the fact. After v0.6, we had agreed to use the established headers, so we wouldn't have to do it again. How can we make sure that new code is written in a way that it doesn't have an artificial dependence on GCP? |
I thought we mostly went with the second option? @yanniszark I think the best way would be to come with ways to make it easy for application developers to follow best practices. Ideally, that would mean finding some way to handle it centrally so people don't have to think about it or creating reusable libraries. Tests would also help. If application developers write tests for the feature (e.g. multiuser pipelines) and we have CI setup for different platforms then that test would fail on other platforms and provide appropriate signal. Finally documenting it and promoting it is also helpful. |
Multi user is a very complex feature, I don't feel there's any problem if we prototype with just one platform first. It was good enough we agreed on the high-level design in the beginning and guaranteed it should work with all platforms. Now, it's pretty trivial to port the feature. There are only been two places we are using it: https://github.com/kubeflow/pipelines/search?q=x-goog-authenticated-user-email&unscoped_q=x-goog-authenticated-user-email @yanniszark @jlewi Can you share what options for other apps look like for configuring headers? I'm not sure they have enough visibility for other developers. |
@jlewi
Absolutely! @Bobgy I agree that expectations of Web Apps in terms of auth should be clear. The |
/close |
@Bobgy: Closing this issue. In response to this:
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. |
Part of #1223
/cc @jlewi @chensun @IronPan
Options:
Note, it's only for gcp-iap deployment initially.
The text was updated successfully, but these errors were encountered: