[stable/dask] Add updated Dask chart#2914
Conversation
|
Thanks for your pull request. Before we can look at your pull request, you'll need to sign a Contributor License Agreement (CLA). 📝 Please follow instructions at https://github.com/kubernetes/kubernetes/wiki/CLA-FAQ to sign the CLA. It may take a couple minutes for the CLA signature to be fully registered; after that, please reply here with a new comment and we'll verify. Thanks.
DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here. |
|
Related changes to docker image here: dask/dask-docker#5 |
|
@danielfrg if you have time to review the changes here and in dask/dask-docker#6 I would appreciate it. Charts maintainers, I'm curious about how best to go about smoothly renaming a chart. I would like to rename this from I am also curious about how best to decompose this chart so that it can be used either with or without the Jupyter notebook service. My current thought is to create a dask-core chart that does not include Jupyter, and then have the Dask chart depend on the dask-core chart. I am unfamiliar with dependencies though, and so I may be doing something naive here. I'm running the CLA past the legal department of my company. I hope for a response back in a day or so. |
|
@k8s-ci-robot I have signed the CLA |
|
Changes look good, I cannot test today but I will try to test tomorrow. Maybe lets merge the docker image one to it gets build on dockerhub first. |
There was a problem hiding this comment.
What's the reason for this? You rename the chart and decrease the version? Seems weird.
There was a problem hiding this comment.
Happy to increase the version if desired. I decreased the version to 1.0 because of the name change. I'm happy to adhere to any standard though.
|
@kubernetes/charts-maintainers The chart is about to be renamed. Is this something we can/want to handle? |
|
There has been a fair amount of work on this over at https://github.com/dask/helm-chart and things have cleaned up a bit. If review is restarting let me know and I'll push more up. |
|
@mrocklin Just keep changes coming. It probably doesn't make sense to review now if you push more substantial changes. |
|
cc @jacobtomlinson I'd like to make you aware of this. After merging current efforts you may want to consider pushing the result upstream to the stable repo here. |
|
FYI: Renaming the chart is not as easy. We'd have to keep the existing one and deprecate it. Think about if you really want this. |
|
Thanks for the comment @unguiculus Deprecating and creating a new one still sounds ideal to me. I may not be aware of maintenance costs of keeping around a deprecated chart though. |
|
Once the chart is deprecated there are no maintenance costs. Be aware that Helm doesn't really treat deprecated charts in any special way and e.g. a We need a separate PR to deprecate dask-distributed that:
This PR should be updated to just add the new dask chart and not remove dask-distributed. @danielfrg are you happy with renaming this? |
|
Yes |
This supercedes the previous dask-distributed chart, which will be deprecated. This also uses an accurate docker image for the Jupyter server, and pins docker images generally.
4df7c74 to
50028bb
Compare
|
I've updated this PR to add a new |
| @@ -0,0 +1,12 @@ | |||
| name: dask | |||
| version: 0.17.0 | |||
There was a problem hiding this comment.
Currently I'm pinning the version of the chart to the version of the main software package. I'm also happy to go directly to 1.0.0 and follow semver if preferred
There was a problem hiding this comment.
Add appVersion which should be 0.17.0. The chart is versioned independently.
unguiculus
left a comment
There was a problem hiding this comment.
Please read our review guidelines again:
https://github.com/kubenetes/charts/blob/master/REVIEW_GUIDELINES.md
Make sure you configure things as suggested there (e. g. images, resources).
If you use helm create with Helm 2.8+ you'll get an initial setup with current best practices applied.
| @@ -0,0 +1,12 @@ | |||
| name: dask | |||
| version: 0.17.0 | |||
There was a problem hiding this comment.
Add appVersion which should be 0.17.0. The chart is versioned independently.
|
OK, I'm currently a bit stuck on a couple things:
If anyone has any time I would value advice on either of these particular issues. There are also the issues raised by @jacobtomlinson . I would love to find a way to turn off the Jupyter server. Does anyone have any suggestions or examples of completely turning off a segment of the chart completely? |
|
In terms of turning off segments see the rbac section in zero to jupyterhub as an example. The whole template is wrapped in an if statement that just checks a boolean from the config file. |
Also, combine all jupyter documents into one file
|
Ah, that seems simple enough. Done. |
| c = get_config() | ||
| c.NotebookApp.password = '{{ .Values.jupyter.password }}' | ||
|
|
||
| --- |
There was a problem hiding this comment.
Please create separate files per resource.
|
I remain stuck on these two issues: #2914 (comment) I've raised one as a question upstream: helm/helm#3602 If anyone has thoughts on how to resolve these I would welcome advice, pointers to documentation etc.. If people have looked at these and genuinely don't know if there is a solution then that would be good feedback as well. Alternatives would be welcome. |
|
I'll try and have a look. |
|
Thank you for interceding here @unguiculus . This works flawlessly for me locally. Looking at your changes, was the issue that calling toYaml on an empty mapping was generating something like |
|
I'm going to take another pass over the README and NOTES. Is there anything else that's necessary here for a 1.0.0 release? |
|
Just checking in here. I believe all feedback so far has been handled (except for some of @jacobtomlinson's comments, which I think can probably wait for future enhancements). Is there anything else I should be doing here to move this forward? also cc @yuvipanda in case he wants to weigh in. |
| heritage: {{ .Release.Service | quote }} | ||
| release: {{ .Release.Name | quote }} | ||
| chart: {{ template "dask.chart" . }} | ||
| component: "{{ .Release.Name }}-{{ .Values.jupyter.component }}" |
There was a problem hiding this comment.
Let me ask again why you make components configurable. Also, they should not be tied to a release. I'd just hard-code them: jupyter, worker
There was a problem hiding this comment.
Thanks for the nudge. Resolved. My apologies for letting that slip earlier.
To answer the direct question of why was this here. My answer is "I don't know". This PR is a copy-paste-modify job of the current chart in stable/dask-distributed, that can hopefully be deprecated once this cleaner version is in.
|
/ok-to-test |
|
/lgtm |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: mrocklin, unguiculus The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
Thank you for your patient support everyone. I'm very glad to see this in. |
* Add Dask Chart
This supercedes the previous dask-distributed chart, which will be
deprecated.
This also uses an accurate docker image for the Jupyter server,
and pins docker images generally.
* Comment out resource limits
* Set chart version to 1.0.0, appVersion to 0.17.0
* Update README and chart information
* specify nthreads and memory-limit explicitly in values.yaml
* update notes
* avoid setting --nthreads and --memory-limit if no resource limits
* expand truncation to 63 characters, and trim "."
* bump app version number
* remove change to dask-distributed chart
* remove NOTES.txt
* use explicit repository and image tags
* respond to feedback
* remove specification of containerPorts
* update README
* resolve linting issues in values.yaml
* Clarify extra packages in README
* replace pip/conda/apt packages with generic env solution
* Add option to turn off Jupyter
Also, combine all jupyter documents into one file
* add missing {{ end }}
* split dask-jupyter to multiple files
* Fix Yaml issues
* Fix values.yaml
* Update README with instructions for installing custom packages
* Remove configurable components
* Add Dask Chart
This supercedes the previous dask-distributed chart, which will be
deprecated.
This also uses an accurate docker image for the Jupyter server,
and pins docker images generally.
* Comment out resource limits
* Set chart version to 1.0.0, appVersion to 0.17.0
* Update README and chart information
* specify nthreads and memory-limit explicitly in values.yaml
* update notes
* avoid setting --nthreads and --memory-limit if no resource limits
* expand truncation to 63 characters, and trim "."
* bump app version number
* remove change to dask-distributed chart
* remove NOTES.txt
* use explicit repository and image tags
* respond to feedback
* remove specification of containerPorts
* update README
* resolve linting issues in values.yaml
* Clarify extra packages in README
* replace pip/conda/apt packages with generic env solution
* Add option to turn off Jupyter
Also, combine all jupyter documents into one file
* add missing {{ end }}
* split dask-jupyter to multiple files
* Fix Yaml issues
* Fix values.yaml
* Update README with instructions for installing custom packages
* Remove configurable components
Signed-off-by: voron <av@arilot.com>
This creates a new Dask chart that replaces the dask-distributed chart. In addition to a slimmed down name this uses more modern docker images, supports environment customization through environment variables, links cpu and memory limits to dask cpu and memory limits, ...
See #2912
cc @danielfrg