-
Notifications
You must be signed in to change notification settings - Fork 22
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
jupyter-web-app throws KeyError: 'matchLabels' when PodDefault does not contain matchLabels selector #99
Comments
Is there anything updated? |
I'd also be interested in finding out a way to make use of the taints I got in my clusters. IMO, being able to specify things like It's clear from the docs that Kubeflow expects to be the one and only thing running on our K8s clusters but that's not exactly feasible for most of us. As we can see, leveraging K8s' mechanisms in order to achieve this segregation for all intents and purposes, renders some of the components that rely on those selectors as broken. Therefore, ideally, we would be able to set those tolerations on all the existing and new pods. |
Any update? but PodDefault uses metav1.LabelSelectorAsSelector which is compatible with (more expressive) MatchExpressions (cf here) |
@danvaida I'm not sure I follow the issue you're having. Tolerations and nodeselectors should work with poddefaults. I've added a PR that should fix the issue with matchExpressions since I ran into this issue today as well. I built the image from my fork and deployed on my clusters and this has fixed the issue for me. |
I think the root cause of this is #121, where the 0th |
/transfer notebooks |
/kind bug
What steps did you take and what happened:
This is half bug report, half question.
I'm looking for a way to automatically apply tolerations to notebooks, pipelines and pods in general which belong to the namespace owned by some user - without the need of the user to select anything in spawner UI form. I'm trying to abstract away taints and tolerations as much as possible.
Since I'm on AWS EKS and PodTolerationRestriction are not available there, I have looked into PodDefaults to achieve this.
PodDefaults seem to accept
matchLabels
as well asmatchExpressions
selectors. I have also noticed that KF seems to apply labelnotebook-name
to every new notebook pod - so far so great. I can applymatchExpressions
like this:This works in general. Any notebook started will receive this default. Or alternatively, when using
{ key: foo, operator: NotIn, values: [ bar ] }
, any pod in this namespace receives the default. It's certainly a hack and I wonder to what degree this is intended behavior.Also note that users don't have to set anything in the spawner GUI to enable this which is what I intend.
What did you expect to happen:
Now the part that doesn't work smoothly. When omitting
matchLabels
in PodDefault selector,jupyter-web-app
throws an error when entering spawner GUI:Looks like the code expects some
matchLabels
selector. As a result I assume, Configurations drop down menu of spawner doesn't display anything but spawner form can still be submitted.My question would be if there is any way to apply a PodDefault without this PodDefault showing up in spawner UI? Maybe there is something that could be done with the content of
spawner_ui_config.yaml
? Thanks.Environment:
Kubeflow version: (version number can be found at the bottom left corner of the Kubeflow dashboard): 1.6
kfctl version: (use
kfctl version
): not applicableKubernetes platform: AWS EKS
Kubernetes version: 1.23
OS (e.g. from
/etc/os-release
): Amazon LinuxJupyter web app image: docker.io/kubeflownotebookswg/jupyter-web-app:v1.6.1
The text was updated successfully, but these errors were encountered: