-
Notifications
You must be signed in to change notification settings - Fork 272
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
[Question] Using garden to deploy ML models with seldon #814
Comments
Hey @timonbimon! Thanks for the kind words :) Happy to help with that. First thing I notice is that
This should make sure the CRDs and operator are configured before trying to deploy something that needs the CRD. What I'm less sure about is the error when deploying the operator. It's possible that their Helm chart references a native Kubernetes resource that isn't yet supported in your version of K8s. Which Kubernetes version are you running? I'm kinda browsing the Seldon docs to figure out how best to approach that part, but it looks to me like you might need to take the That is, if the service needs to be exposed through ingress. Nice thing about the container tests, is that they actually run inside the cluster. The test container should be able to reach the service directly via the You probably don't need those keywords, since you're not using hot reloading or tasks for those services. The reference is here if you need it though. I hope that's useful. We'll think on how we could improve our docs as well. Meanwhile, keep the questions coming, we're happy to assist. Also you're welcome to join our Slack if you'd like! |
Cool, thanks for the detailed reply! :)
It also depends on the ml-service-image as far as I understand. => Unfortunately I am still getting the same exact two errors as noted above. Do you have any other ideas?
|
When I look at the Helm guide for developing charts (https://helm.sh/docs/developing_charts/) - it says "apiVersion: The chart API version, always "v1" (required)" - so it seems like the v1 thing is pretty standard for helm charts, so not sure why this would throw an error... |
Hmm I am starting to feel this might be a problem on Garden's side. I can install the chart via helm. Here is the minimal setup, maybe you can reproduce the error on your side? Project level
in a folder called seldon-core-operator
|
Ah, maybe it is a Garden issue. If it is, we'll fix it ahead of our next release. I'll test it and see what I find. |
i just saw i copy-pasted the same garden.yml twice 🙈 just updated the comment above |
I think I've fixed this in #826, which will be in our next release (0.10), hopefully out next week. Turns out this belonged to a class of issues relating to our API wrapper for Kubernetes, and how we were handling certain resource types. Sorry about that! I do see one more thing in your config. You should put |
do you already have an ETA for the next release? :) |
We hope to have an RC today or tomorrow, release shortly after :) |
@timonbimon our first RC is ready: https://github.com/garden-io/garden/releases/tag/v0.10.0-0 If you can try it and see if the problem is fixed, we can make 100% sure it's all set before the final 0.10 release. We'll probably do one more RC and then final release. Your Docker for Mac version should be fine btw, anything fairly recent should do nicely. Then our 0.10 release adds much improved support for remote clusters, so if you have a dev cluster somewhere you can use that instead of running K8s locally, whichever works best. |
Ok, great, we seem to get a little bit ahead, unfortunately there is still an error left. :/ Current status of my garden.ymls Project-level
seldon-single-model
seldon-core-operator
ml-service-image
ambassador
And here is the detailed error log, if that helps:
Any idea what to do with this? |
Can you reproduce the same error? |
Yep, I figured this out. It's a case that I hadn't seen anywhere before: Their Helm chart includes a |
You can actually work around this in the meantime by setting |
Ok, great, that works! One more question that now just concerns my usage of garden: I need to pass the name of the docker image built by
The above is wrong since version just gives the tag of the docker image if I understand correctly. How do I get the full name of the image including the tag? I tried having a look around the docs (and found this: https://docs.garden.io/reference/template-strings) but couldn't find how to do it. Thanks a lot for your patience and sticking through this with me :) |
Of course, we're most happy to help :) You've actually caught a weak spot in our documentation there, we should explain much better what's available in template strings. What you want is something like this:
That's a bit of a handful, but basically this compiles a string with both the deployment image name and the module version as the tag. This is shown in a couple of Helm project examples but not properly documented yet, so no wonder you missed that. Hope that does the trick! |
Great, that does the trick! As an aside: are you interested in me making a PR if I figure out the |
Disclaimer
Garden looks awesome, thanks for building it!!!. :)
I am very new to the whole Kubernetes kerfuffle and due to my inexperience with Kubernetes I am not sure which of the questions that follow are due to me misunderstanding something/missing something and thus misusing/misconfiguring something and which are good questions in the sense of missing support on the Garden (or possibly seldon-core) side of things.
Also I know this is a pretty long issue/question, but hopefully this can
Context for my question
I want to deploy a machine learning model using seldon-core. If you look at an example workflow here, you can see that it involves many consecutive steps of messing with kubectl, so I thought Garden would be a great way to bring some structure to the insanity.
What I currently have are three services (aka helm charts -
seldon-core-operator
,seldon-single-model
andambassador
; the first two can be found here) and one custom container module (that I calledml-service-image
that shoud be deployed viaseldon-single-model
) that defines my machine learning model I want to deploy.Here are the garden.yml files I currently have.
Project-level
Seldon Core Operator
Seldon Single Model
ML Service Image
Ambassador
You can have a look here for the full setup.
Questions
garden build
works fine. When runninggarden deploy
I get the following error:How can I fix this? It seems related to the fact that seldon uses custom resource definitions that garden cannot find.
I am not sure how to add the Ambassador ingress to the seldon-single-model service which is a helm chart (that's why there is some uncommented stuff) - I could not find anything like this in the other examples. How would I do this the right way?
I could not really find good documentation on the serviceResource and containerModule key words for helm modules. I added it in the garden.yml for
seldon-single-model
, because I saw it in some of the other examples, but I am not sure if it is needed. Is it?Thanks a lot for your help! :)
The text was updated successfully, but these errors were encountered: