Comments (9)
/assign @ckadner
from mlx.
@Tomcli -- on your single-user cluster (connecting from the outside) I get this error when trying to create (or get) an experiment:
Invalid input error: In single-user mode, ListExperiment cannot filter by namespace.
This happens regardless of setting the namespace to None
, ""
, leaving the parameter out, since the KFP client will default to populate the kubeflow
namespace (client.get_user_namespace()
--> kubeflow
for me) in it's own call to the KFP server API to get_experiment
.
Interestingly I can run the same MLX API code snippet directly from inside the MLX API pod (client.get_user_namespace()
--> ''
). The kfp
SDK versions inside vs outside the cluster are the same.
@yhwang -- I am getting this error (from inside the demo cluster) multi-user:
Internal error: Unauthenticated: Request header error: there is no user identity header.: Request header error: there is no user identity header.
Failed to authorize with API resource references
I did look up the issues 4440 and 4377 on KFP regarding this error, but it was not clear to me how to solve it. Can you help?
from mlx.
@ckadner so I use the KFP-Tekton 0.8.1 SDK to run pipelines on single user mode. If you follow this instruction it should able to submit the pipeline with the run_pipeline
function.
https://github.com/kubeflow/kfp-tekton/tree/master/guides/kfp-user-guide#2-run-pipelines-using-the-kfp_tektontektonclient-in-python
from mlx.
@Tomcli -- the MLX API deployed on your single-user cluster is still trying to use the ml-pipeline-ui
service. I will switch to using the ml-pipeline
service, or, rather I will let KFP Client figure that out.
from mlx.
@ckadner as long as the API is able to run pipelines, it doesn't really matter how you provision the client. But I do recommend to use the ml-pipeline
service endpoint if we want to keep things consistent.
from mlx.
you can add a flag during deployment time to tell whether MLX is deployed with single user or multi-user KFP. I will update the manifest accordingly.
from mlx.
For the error in multi-user env, I guess the solution is that mlx-api pod needs to carry the kubeflow-userid
header when calling ml-pipeline APIs. can you try out this mlx-ui image: yihongwang/mlx-ui:dev
?
In that image, I injected the kubeflow-userid
header into the request at the proxy middleware.
In mlx-api
, if it talks to ml-pipeline-ui
, then adding kubeflow-userid
header that received from mlx-ui (with my image above), it should works. However, if it talks to ml-pipeline
, then I need to study the code to know how it get the userid information. Before I study the code, I assume that ml-pipeline
also rely on kubeflow-userid
header.
from mlx.
@ckadner I checked the code in both ml-pipeline-ui
and ml-pipeline
. For ml-pipeline-ui
, it just forwards the apis calls to ml-pipeline
which contain kubeflow-userid
header for user id. For ml-pipeline
, it uses two authenticators to retrieve user id:
- http_header: uses
kubeflow-userid
header - token_review: uses
authorization
header
So the bottom line is you have to pass kubeflow-userid
header to ml-pipeline
. However, I don't know how can you do that by using the kfp.Client().
from mlx.
Thank @yhwang for your findings. Curiously the pipeline upload and pipeline delete work just fine. Just the pipeline run/launch does run into the Internal error: Unauthenticated: Request header error: there is no user identity header. Failed to authorize with API resource references
If there is no obvious solution for doing this authentication using the kfp.Client
, should we open a new issue on the kubeflow/pipelines
repo?
from mlx.
Related Issues (20)
- Replace `kfp-notebook`/`elyra-server` with a KFP component to run notebooks
- Release checklist v0.2.0 HOT 5
- MLX Contribution Documentation
- API Architecture Documentation
- Add script to update the navigation table in docs
- Local deployment on KIND needs update HOT 8
- Make `check_doc_links` fails with UnicodeDecodeError: 'utf-8' codec can't decode byte 0x96 in position 522: invalid start byte
- Add linting target to Makefile to enforce code style for Python and JavaScript sources HOT 2
- Make target `update_doc_table` has incorrect description HOT 3
- Implement KFP Template Registry API HOT 1
- mlx ui pod: "EACCES: permission denied, mkdir '/workspace/build'" HOT 3
- Convert to UBI conformant container images
- `mlx-ui` pod fails to start up on OpenShift
- Cannot toggle Capabilities in MLX settings on OpenShift HOT 1
- `mlx-ui` logs show session error messages
- No IstioIngressGateway Route on Openshift HOT 1
- Remove VIEW EXPERIMENTS link for catalog-only deployments HOT 7
- Option to change MLX admin password during deployment
- MLX UI shows outdated texts
- KIND installation doesn't work on k8s 1.22+ HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mlx.