mirror of
https://github.com/helm/charts.git
synced 2026-08-23 22:37:45 +00:00
[stable/dask] Dask ingress (#16787)
* [stable/dask] Add ingress Signed-off-by: Harald Haas <harald.haas@cloudpilots.com> * [stable/dask] Update and lint dask/README.md Signed-off-by: Harald Haas <harald.haas@cloudpilots.com> * [stable/dask] Bump chart version to 3.1.0 Signed-off-by: Harald Haas <harald.haas@cloudpilots.com> * [stable/dask] Fix missing EOF newline values.yaml Signed-off-by: Harald Haas <harald.haas@cloudpilots.com> * [stable/dask] fix default ingress tls secretName Signed-off-by: Harald Haas <harald.haas@cloudpilots.com> * [stable/dask] Add tls secretName to README and values Signed-off-by: Harald Haas <harald.haas@cloudpilots.com>
This commit is contained in:
committed by
Kubernetes Prow Robot
parent
b8b063784b
commit
1c90df1b53
@@ -1,7 +1,7 @@
|
||||
---
|
||||
apiVersion: v1
|
||||
name: dask
|
||||
version: 3.0.0
|
||||
version: 3.1.0
|
||||
appVersion: 1.1.5
|
||||
description: Distributed computation in Python with task scheduling
|
||||
home: https://dask.org
|
||||
|
||||
+54
-44
@@ -15,7 +15,7 @@ This chart will deploy the following:
|
||||
- All using Kubernetes Deployments
|
||||
|
||||
> **Tip**: See the [Kubernetes Service Type Docs](https://kubernetes.io/docs/concepts/services-networking/service/#publishing-services-service-types)
|
||||
for the differences between ClusterIP, NodePort, and LoadBalancer.
|
||||
> for the differences between ClusterIP, NodePort, and LoadBalancer.
|
||||
|
||||
## Installing the Chart
|
||||
|
||||
@@ -35,50 +35,60 @@ their default values.
|
||||
|
||||
### Dask scheduler
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| -------------------------- | -------------------------| -----------------|
|
||||
| `scheduler.name` | Dask scheduler name | `scheduler` |
|
||||
| `scheduler.image` | Container image name | `daskdev/dask` |
|
||||
| `scheduler.imageTag` | Container image tag | `1.1.5` |
|
||||
| `scheduler.replicas` | k8s deployment replicas | `1` |
|
||||
| `scheduler.tolerations` | Tolerations | `[]` |
|
||||
| `scheduler.nodeSelector` | nodeSelector | `{}` |
|
||||
| `scheduler.affinity` | Container affinity | `{}` |
|
||||
| Parameter | Description | Default |
|
||||
| ------------------------ | ----------------------- | -------------- |
|
||||
| `scheduler.name` | Dask scheduler name | `scheduler` |
|
||||
| `scheduler.image` | Container image name | `daskdev/dask` |
|
||||
| `scheduler.imageTag` | Container image tag | `1.1.5` |
|
||||
| `scheduler.replicas` | k8s deployment replicas | `1` |
|
||||
| `scheduler.tolerations` | Tolerations | `[]` |
|
||||
| `scheduler.nodeSelector` | nodeSelector | `{}` |
|
||||
| `scheduler.affinity` | Container affinity | `{}` |
|
||||
|
||||
### Dask webUI
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-----------------------|-------------------|-----------|
|
||||
| `webUI.name` | Dask webui name | `webui` |
|
||||
| `webUI.servicePort` | k8s service port | `80` |
|
||||
| Parameter | Description | Default |
|
||||
| --------------------------- | ---------------------------------- | -------------------- |
|
||||
| `webUI.name` | Dask webui name | `webui` |
|
||||
| `webUI.servicePort` | k8s service port | `80` |
|
||||
| `webUI.ingress.enabled` | Enable ingress controller resource | false |
|
||||
| `webUI.ingress.hostname` | Ingress resource hostnames | dask-ui.example.com |
|
||||
| `webUI.ingress.tls` | Ingress TLS configuration | false |
|
||||
| `webUI.ingress.secretName` | Ingress TLS secret name | `dask-scheduler-tls` |
|
||||
| `webUI.ingress.annotations` | Ingress annotations configuration | null |
|
||||
|
||||
### Dask worker
|
||||
|
||||
| Parameter | Description | Default |
|
||||
| ----------------------- | ---------------------------------| ---------------|
|
||||
| `worker.name` | Dask worker name | `worker` |
|
||||
| `worker.image` | Container image name | `daskdev/dask` |
|
||||
| `worker.imageTag` | Container image tag | `1.1.5` |
|
||||
| `worker.replicas` | k8s hpa and deployment replicas | `3` |
|
||||
| `worker.resources` | Container resources | `{}` |
|
||||
| `worker.tolerations` | Tolerations | `[]` |
|
||||
| `worker.nodeSelector` | nodeSelector | `{}` |
|
||||
| `worker.affinity` | Container affinity | `{}` |
|
||||
| Parameter | Description | Default |
|
||||
| --------------------- | ------------------------------- | -------------- |
|
||||
| `worker.name` | Dask worker name | `worker` |
|
||||
| `worker.image` | Container image name | `daskdev/dask` |
|
||||
| `worker.imageTag` | Container image tag | `1.1.5` |
|
||||
| `worker.replicas` | k8s hpa and deployment replicas | `3` |
|
||||
| `worker.resources` | Container resources | `{}` |
|
||||
| `worker.tolerations` | Tolerations | `[]` |
|
||||
| `worker.nodeSelector` | nodeSelector | `{}` |
|
||||
| `worker.affinity` | Container affinity | `{}` |
|
||||
|
||||
### Jupyter
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|-------------------------|----------------------------------|--------------------------|
|
||||
| `jupyter.name` | Jupyter name | `jupyter` |
|
||||
| `jupyter.enabled` | Include optional Jupyter server | `true` |
|
||||
| `jupyter.image` | Container image name | `daskdev/dask-notebook` |
|
||||
| `jupyter.imageTag` | Container image tag | `1.1.5` |
|
||||
| `jupyter.replicas` | k8s deployment replicas | `1` |
|
||||
| `jupyter.servicePort` | k8s service port | `80` |
|
||||
| `jupyter.resources` | Container resources | `{}` |
|
||||
| `jupyter.tolerations` | Tolerations | `[]` |
|
||||
| `jupyter.nodeSelector` | nodeSelector | `{}` |
|
||||
| `jupyter.affinity` | Container affinity | `{}` |
|
||||
| Parameter | Description | Default |
|
||||
| ----------------------------- | ---------------------------------- | ----------------------- |
|
||||
| `jupyter.name` | Jupyter name | `jupyter` |
|
||||
| `jupyter.enabled` | Include optional Jupyter server | `true` |
|
||||
| `jupyter.image` | Container image name | `daskdev/dask-notebook` |
|
||||
| `jupyter.imageTag` | Container image tag | `1.1.5` |
|
||||
| `jupyter.replicas` | k8s deployment replicas | `1` |
|
||||
| `jupyter.servicePort` | k8s service port | `80` |
|
||||
| `jupyter.resources` | Container resources | `{}` |
|
||||
| `jupyter.tolerations` | Tolerations | `[]` |
|
||||
| `jupyter.nodeSelector` | nodeSelector | `{}` |
|
||||
| `jupyter.affinity` | Container affinity | `{}` |
|
||||
| `jupyter.ingress.enabled` | Enable ingress controller resource | false |
|
||||
| `jupyter.ingress.hostname` | Ingress resource hostnames | dask-ui.example.com |
|
||||
| `jupyter.ingress.tls` | Ingress TLS configuration | false |
|
||||
| `jupyter.ingress.secretName` | Ingress TLS secret name | `dask-jupyter-tls` |
|
||||
| `jupyter.ingress.annotations` | Ingress annotations configuration | null |
|
||||
|
||||
#### Jupyter Password
|
||||
|
||||
@@ -140,14 +150,14 @@ helm install --name my-release --set jupyter.enabled=false stable/dask
|
||||
### Customizing Python Environment
|
||||
|
||||
The default `daskdev/dask` images have a standard Miniconda installation along
|
||||
with some common packages like NumPy and Pandas. You can install custom packages
|
||||
with either Conda or Pip using optional environment variables. This happens
|
||||
when your container starts up.
|
||||
with some common packages like NumPy and Pandas. You can install custom packages
|
||||
with either Conda or Pip using optional environment variables. This happens
|
||||
when your container starts up.
|
||||
|
||||
> **Note**: The `IP:PORT` of this chart's services will not be accessible until
|
||||
extra packages finish installing. Expect to wait at least a minute for the
|
||||
Jupyter Server to be accessible if adding packages below, like `numba`. This
|
||||
time will vary depending on which extra packages you choose to install.
|
||||
> extra packages finish installing. Expect to wait at least a minute for the
|
||||
> Jupyter Server to be accessible if adding packages below, like `numba`. This
|
||||
> time will vary depending on which extra packages you choose to install.
|
||||
|
||||
Consider the following YAML config as an example:
|
||||
|
||||
@@ -168,5 +178,5 @@ worker:
|
||||
```
|
||||
|
||||
> **Note**: The Jupyter and Dask-worker environments should have matching
|
||||
software environments, at least where a user is likely to distribute that
|
||||
functionality.
|
||||
> software environments, at least where a user is likely to distribute that
|
||||
> functionality.
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
{{- if .Values.jupyter.ingress.enabled -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ template "dask.fullname" . }}-jupyter
|
||||
labels:
|
||||
app: {{ template "dask.fullname" . }}-jupyter
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
heritage: "{{ .Release.Service }}"
|
||||
annotations:
|
||||
{{ toYaml .Values.jupyter.ingress.annotations | indent 4 }}
|
||||
spec:
|
||||
{{- if .Values.jupyter.ingress.tls }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ .Values.jupyter.ingress.hostname | quote }}
|
||||
secretName: {{ .Values.jupyter.ingress.secretName | default (printf "%s-jupyter-tls" (include "dask.fullname" .)) }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ .Values.jupyter.ingress.hostname }}
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: {{ template "dask.fullname" . }}-jupyter
|
||||
servicePort: {{ .Values.jupyter.servicePort }}
|
||||
{{- end -}}
|
||||
@@ -0,0 +1,27 @@
|
||||
{{- if .Values.webUI.ingress.enabled -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ template "dask.fullname" . }}-scheduler
|
||||
labels:
|
||||
app: {{ template "dask.fullname" . }}-scheduler
|
||||
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
|
||||
release: "{{ .Release.Name }}"
|
||||
heritage: "{{ .Release.Service }}"
|
||||
annotations:
|
||||
{{ toYaml .Values.webUI.ingress.annotations | indent 4 }}
|
||||
spec:
|
||||
{{- if .Values.webUI.ingress.tls }}
|
||||
tls:
|
||||
- hosts:
|
||||
- {{ .Values.webUI.ingress.hostname | quote }}
|
||||
secretName: {{ .Values.webUI.ingress.secretName | default (printf "%s-scheduler-tls" (include "dask.fullname" .)) }}
|
||||
{{- end }}
|
||||
rules:
|
||||
- host: {{ .Values.webUI.ingress.hostname }}
|
||||
http:
|
||||
paths:
|
||||
- backend:
|
||||
serviceName: {{ template "dask.fullname" . }}-scheduler
|
||||
servicePort: {{ .Values.webUI.servicePort }}
|
||||
{{- end -}}
|
||||
@@ -30,6 +30,15 @@ scheduler:
|
||||
webUI:
|
||||
name: webui
|
||||
servicePort: 80
|
||||
ingress:
|
||||
enabled: false
|
||||
tls: false
|
||||
# secretName: dask-scheduler-tls
|
||||
hostname: dask-ui.example.com
|
||||
annotations:
|
||||
# kubernetes.io/ingress.class: "nginx"
|
||||
# secretName: my-tls-cert
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
|
||||
worker:
|
||||
name: worker
|
||||
@@ -95,3 +104,12 @@ jupyter:
|
||||
tolerations: []
|
||||
nodeSelector: {}
|
||||
affinity: {}
|
||||
ingress:
|
||||
enabled: false
|
||||
tls: false
|
||||
# secretName: dask-jupyter-tls
|
||||
hostname: dask-jupyter.example.com
|
||||
annotations:
|
||||
# kubernetes.io/ingress.class: "nginx"
|
||||
# secretName: my-tls-cert
|
||||
# kubernetes.io/tls-acme: "true"
|
||||
|
||||
Reference in New Issue
Block a user