From 1b6baf9248ceebf8457cab3ffa8dc50b0dd643cc Mon Sep 17 00:00:00 2001 From: Sathya Balakrishnan Date: Wed, 29 May 2019 18:14:04 -0700 Subject: [PATCH 1/3] add capability to specify alternalte scheduler Signed-off-by: Sathya Balakrishnan --- elasticsearch/README.md | 1 + elasticsearch/templates/statefulset.yaml | 3 +++ elasticsearch/values.yaml | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/elasticsearch/README.md b/elasticsearch/README.md index f8024616e..cd9c43e66 100644 --- a/elasticsearch/README.md +++ b/elasticsearch/README.md @@ -100,6 +100,7 @@ helm install --name elasticsearch elastic/elasticsearch --version 7.1.0 --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 (e.g. stork) | `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/values.yaml b/elasticsearch/values.yaml index af8c6e1ff..f61a375ca 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, e.g. "stork". +## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ +## +# schedulerName: + imagePullSecrets: [] nodeSelector: {} tolerations: [] From e2c5b6bf91f4106484b0a7444981f169f9cc5c7e Mon Sep 17 00:00:00 2001 From: Sathya Balakrishnan Date: Mon, 3 Jun 2019 09:40:04 -0700 Subject: [PATCH 2/3] update README/values; Add test for schedulerName Signed-off-by: Sathya Balakrishnan --- elasticsearch/README.md | 2 +- elasticsearch/tests/elasticsearch_test.py | 12 ++++++++++++ elasticsearch/values.yaml | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/elasticsearch/README.md b/elasticsearch/README.md index cd9c43e66..8340961b1 100644 --- a/elasticsearch/README.md +++ b/elasticsearch/README.md @@ -100,7 +100,7 @@ helm install --name elasticsearch elastic/elasticsearch --version 7.1.0 --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 (e.g. stork) | `nil` | +| `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/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 f61a375ca..a601a86f7 100755 --- a/elasticsearch/values.yaml +++ b/elasticsearch/values.yaml @@ -142,7 +142,7 @@ 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, e.g. "stork". +## Use an alternate scheduler. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ ## # schedulerName: From e5d888a1dfe370737719a5271f7a865c7bdb1484 Mon Sep 17 00:00:00 2001 From: Sathya Balakrishnan Date: Thu, 6 Jun 2019 10:47:40 -0700 Subject: [PATCH 3/3] update values for default schedulerName Signed-off-by: Sathya Balakrishnan --- elasticsearch/values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elasticsearch/values.yaml b/elasticsearch/values.yaml index a601a86f7..788769eeb 100755 --- a/elasticsearch/values.yaml +++ b/elasticsearch/values.yaml @@ -145,7 +145,7 @@ clusterHealthCheckParams: "wait_for_status=green&timeout=1s" ## Use an alternate scheduler. ## ref: https://kubernetes.io/docs/tasks/administer-cluster/configure-multiple-schedulers/ ## -# schedulerName: +schedulerName: "" imagePullSecrets: [] nodeSelector: {}