-
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
mlpipeline-ui-metadata html output not displaying on v0.7rc6 (worked on 0.6.2) #2501
Comments
Issue Label Bot is not confident enough to auto-label this issue. |
@JakeTheWise transferring to the pipelines repo /cc @jessiezcc |
@jlewi thanks! I've confirmed this isn't a TFDV-related issue; I also tried displaying TFMA output as well as a bokeh plot (exported as HTML). The files were all written as static HTML to Google Cloud Storage. The pages display correctly if I download and view them in Chrome. Again, in KFP v0.6.2 this issue did not occur. |
/priority p0 Let me troubleshoot this. |
I tried to deploy a kubeflow 0.7, but I got blocked by this issue: kubeflow/kubeflow#4439 |
@Bobgy I would suggest using IAP so you aren't blocked trying to debug and fix this error. |
@jlewi Thanks! I will use IAP to debug this. |
Hit the following error message instead when
My cluster name is too long. Trying again |
However, it seems kubeflow can already be used. I will start taking a look. |
@Bobgy you are correct and apparently it's a harmless message — see here. kubeflow/kubeflow#4414 |
@JakeTheWise Thanks for the info! |
I've been able to reproduce the issue.
|
I don't quite understand why it worked before in KF 0.6. First, I guessed the issue was a permission issue. I tested patching the deployment to use user-gcp-sa credentials as GOOGLE_APPLICATION_CREDENTIALS for ml-pipeline-ui deployment. And then ml-pipeline-ui can fetch the file and return it to frontend. So the html file is rendered.
I added the above change to ml-pipeline-ui manifest to use user-gcp-sa credentials. |
When I was using https://www.kubeflow.org/docs/pipelines/standalone-deployment-gcp/ for test comparison. It was deployed in a cluster with full scope. So default credentials can also fetch those files and there's nothing wrong. However, if the cluster doesn't have full scope, but access GCP resources by user-gcp-sa. I imagine it would break too. @IronPan, do you know more context about this? |
Made a PR: https://github.com/kubeflow/manifests/pull/594/files Just realized the change is GCP specific, so it should probably be put in an overlay and combined later. What do you think about this fix? @jlewi @IronPan |
What is pipelines GCP auth story? With 0.7 we are moving to use workload identity per #1691. So the ideal solution would be to use a service account that is bound to the correct GCP permissions. Here are possible options Option 1 - Use an existing KSA already bound to a GSAIn the kubeflow namespace we create kubernetes service accounts
So one solution would be for the pipelines UI to run with one of those service accounts In which case you would need to make sure that any RBAC permissions needed by pipelines is also granted to those service accounts. We use ClusterRole aggregation to aggregate application specific roles (e.g. roles needed by pipelines up to those roles). Option 2 use pipelines KSA and add a GSA workload identity bindingYou could continue to use the ml-pipeline-ui service account but add logic e.g. in kfctl to add the appropriate workload identity bindings Option 3 Temporary fix for 0.7As a quick fix for 0.7 we are still creating GCP secrets user-gcp-sa and admin-gcp-sa in Kubeflow namespace with 0.7 so you could continue to mount one of those secrets. We want to remove the secrets in the next major release because it is much less secure than workload identity. So pipelines team would need to commit to removing it in the next release and going with an option based on workload identity. |
@jlewi Thanks for listing all the options I can take! I'd go with option 3 for now because I'm not sure what KFP has decided on the auth story. |
Option 2 sounds like the final state we would want to reach. However, why would we need to touch |
Verification with GCP and IAP using kubeflow/kubeflow - v0.7.0-rc.7-3-g8dbde9d8 ml-pipeline-ui spec is below
So marking this as fixed. |
Thanks!! |
Regarding GCP auth I agree with @jlewi that Pipeline should heading towards workload identity as well. |
My data validation component generates static html for display in the KFP UI. This html successfully visualizes in kubeflow v0.6.2 but is broken in v0.7.0rc6. The run output tab just displays a blank card:

I have confirmed this is not a TFDV-specific issue. The same issue occurs for arbitrary HTML. I'm using Chrome to access the KFP UI. The only hint is that, opposed to v0.6.2, I'm not seeing any network traffic in Chrome to get the HTML from GCS, and inspecting the html elements on the KFP UI shows an iFrame with an empty body where the visualizations should be.
The text was updated successfully, but these errors were encountered: