-
Notifications
You must be signed in to change notification settings - Fork 488
Closed
Labels
Description
/kind bug
TL;DR: Istio is needed for kubeflow-userid header. Istio is disabled by Kale, because Katib has issues in some edge cases (?).
What steps did you take and what happened:
- Kale creates Experiment/Trials/Jobs via template
- Jobs create pods
- Pods start off in Running
- Pods end up in Error
- No pipelines are created
- Experiment hangs
What did you expect to happen:
- Kale creates Trials/Jobs via template
- Jobs create pods
- Pods start off in Running
- Pods make requests to ml-pipeline with the right RBAC
- Envoy injects kubeflow-userid/prefix
- ml-service authenticates/authorizes request from pods
- Pods end up in Completed
- Experiment runs to completion
Anything else you would like to add:
- I use an envoy filter for kubeflow-userid header injection in multi-user Kubeflow
- Kale injects
sidecar.istio.io/inject=false
- The kubeflow-user header is never added. None of my Job's pods can authenticate with the ml-pipeline-service
Workarounds:
- Write my own Job admission controller
- Modify the ml-pipeline-service to parse the user from the JWT token passed through poddefaults
- Stand a proxy in front (:8888) of the ml-service that adds the kubeflow-userid header
I'm not thrilled by any of these options. Can you suggest a better workaround?
Environment:
- Kubeflow version (
kfctl version
): kfctl v1.2.0-0-gbc038f9 Minikube version (: kind v0.10.0 go1.15.7 linux/amd64minikube version
)- Kubernetes version: (use
kubectl version
): v1.20.2 - OS (e.g. from
/etc/os-release
): Debian
d-gol