diff --git a/elasticsearch/README.md b/elasticsearch/README.md index 5fb3fc262..650163f4d 100644 --- a/elasticsearch/README.md +++ b/elasticsearch/README.md @@ -100,6 +100,7 @@ helm install --name elasticsearch elastic/elasticsearch --version 7.1.1 --set im | `nodeSelector` | Configurable [nodeSelector](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector) so that you can target specific nodes for your Elasticsearch cluster | `{}` | | `tolerations` | Configurable [tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) | `[]` | | `ingress` | Configurable [ingress](https://kubernetes.io/docs/concepts/services-networking/ingress/) to expose the Elasticsearch service. See [`values.yaml`](./values.yaml) for an example | `enabled: false` | +| `schedulerName` | Name of the [alternate scheduler](https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/#specify-schedulers-for-pods) | `nil` | ## Try it out diff --git a/elasticsearch/templates/statefulset.yaml b/elasticsearch/templates/statefulset.yaml index 00f552f28..cc78da29e 100644 --- a/elasticsearch/templates/statefulset.yaml +++ b/elasticsearch/templates/statefulset.yaml @@ -45,6 +45,9 @@ spec: configchecksum: {{ include (print .Template.BasePath "/configmap.yaml") . | sha256sum | trunc 63 }} {{- end }} spec: + {{- if .Values.schedulerName }} + schedulerName: "{{ .Values.schedulerName }}" + {{- end }} securityContext: fsGroup: {{ .Values.fsGroup }} {{- with .Values.tolerations }} diff --git a/elasticsearch/tests/elasticsearch_test.py b/elasticsearch/tests/elasticsearch_test.py index 2232a89e2..a6acd1024 100755 --- a/elasticsearch/tests/elasticsearch_test.py +++ b/elasticsearch/tests/elasticsearch_test.py @@ -569,3 +569,15 @@ def test_priority_class_name(): r = helm_template(config) priority_class_name = r['statefulset'][uname]['spec']['template']['spec']['priorityClassName'] assert priority_class_name == "highest" + + +def test_scheduler_name(): + r = helm_template('') + spec = r['statefulset'][uname]['spec']['template']['spec'] + assert 'schedulerName' not in spec + + config = ''' +schedulerName: "stork" +''' + r = helm_template(config) + assert r['statefulset'][uname]['spec']['template']['spec']['schedulerName'] == "stork" diff --git a/elasticsearch/values.yaml b/elasticsearch/values.yaml index c1686e5d7..790449249 100755 --- a/elasticsearch/values.yaml +++ b/elasticsearch/values.yaml @@ -142,6 +142,11 @@ readinessProbe: # https://www.elastic.co/guide/en/elasticsearch/reference/current/cluster-health.html#request-params wait_for_status clusterHealthCheckParams: "wait_for_status=green&timeout=1s" +## Use an alternate scheduler. +## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ +## +schedulerName: "" + imagePullSecrets: [] nodeSelector: {} tolerations: []