-
-
Notifications
You must be signed in to change notification settings - Fork 149
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
Add full Istio support #488
base: main
Are you sure you want to change the base?
Conversation
Bringing the comment here from 674d8bb#commitcomment-133495956 We cannot use Dask in production because the Dask operator is injecting pod labels @jacobtomlinson can we collaborate offline to discuss options? We can connect on Gitter or via email |
@rrmistry I'd prefer to keep discussion on GitHub rather than moving to private channels. That way more people can engage and help out. We have #497 open to track enabling Istio support, however it hasn't been a high-priority activity for us lately. Do you think this is something you have the time/interest to help out with? |
Sure. I can invest some time for this as Dask is planned to be a major investment for us going forward. I will take a look at any CONTRIBUTING docs or guidelines for best practices. Thanks! |
Closes #497.
The PR aims to ensure the operator will play nicely with Istio. As discussed in #482 the way to achieve this is for the workers to have a service each and ensure all network connections within the Dask cluster are going via services rather than directly pod to pod.
To kick things off in this PR I've added a fixture that installs Istio into the kind cluster that gets created, but it is opt-in. To enable it you need to set the
TEST_ISTIO=true
env var. This means we can enable Istio in the operator CI but not the Helm or classicKubeCluster
CI.I also had to shorten the
uuid
that was being appended to the worker name because Istio was reusing that name and appending more and was hitting a character limit. We should possibly consider reducing the length of some of our naming schemes.I've then added a service in front of the workers and tried to get the Dask cluster to only speak via those. Things are not 100% working with this though.
I'm also doing some environment variable injection as discussed in #474. The use case here is so that the worker can correctly set its name.