Skip to content
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

Reduce complexity of Helm chart's Dockerfiles and define expectations #524

Closed
2 tasks done
consideRatio opened this issue Apr 6, 2022 · 1 comment · Fixed by #533
Closed
2 tasks done

Reduce complexity of Helm chart's Dockerfiles and define expectations #524

consideRatio opened this issue Apr 6, 2022 · 1 comment · Fixed by #533

Comments

@consideRatio
Copy link
Collaborator

consideRatio commented Apr 6, 2022

We have two Dockerfiles that we build and use within the Helm chart:

Reduce complexity - respect setup.py's install_requires

I'd like to make these images install dask-gateway and dask-gateway-server in a more straight forward manner. Currently we first install conda-forge provided dependencies matching those we know we need by a hardcoded list and ignore the dependency details specified in setup.py.

This adds complexity to this project! For example in #522 (comment) I thought that setup.py defined restrictions on a dependency that caused test failures for us would be respected also in the images we build for our k8s tests - but it wasn't and I kept looking for other reasons of failing k8s tests.

Document expectations - how they intended to be used?

These images are around, but it isn't clear for us maintainers or end users how they are to be used. My perception is that end users are not to derive their own images from these, but instead install dask-gateway with a package manager in their own image whenever they want to customize a scheduler or worker image.

In practice, I think we should declare that the images are not meant to be used as base images, nor are the Dockerfile's, which instead describe that users are supposed to do a conda-forge installation in their custom image to acquire a scheduler and a worker suitable image.

Related

Action points

@consideRatio
Copy link
Collaborator Author

In a meeting with @jcrist and @jacobtomlinson we discussed this. My conclusions is that it was found acceptable if we would take the following actions regarding various images we have.

  1. dask/dask-gateway-server, an image used by the Helm chart's controller and api pod, should not be something end users derive their own image from. If they do for some unknown reason though, they shouldn't expect this project to respect backward compatebility or changelogs etc.
  2. dask/dask-gateway, an image used by the Helm chart as a sample image for a clusters scheduler/worker pods, should be treated as a sample image that people shouldn't derive their own scheduler/worker images from. Instead, they should build their scheduler/worker images in any way according to documentation even though that documentation may require an update.
  3. The example Dockerfile, just an example and not an image we build, is probably a bit too complicated to maintain and keep updated. As outdated examples are sometimes problematic I think the best course of action is to rely on the documentation on how to create your own image, and suggest asking users to look at the dask/dask-gateway image for practical inspiration on how you may do it.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
1 participant