From bd54b2a69d8fcd340832f02b29deeb49c9d85645 Mon Sep 17 00:00:00 2001 From: ChiefAlexander Date: Mon, 2 Mar 2020 14:50:49 -0600 Subject: [PATCH 1/3] Update logstash chart to support custom ports --- logstash/README.md | 1 + logstash/templates/statefulset.yaml | 3 +++ logstash/values.yaml | 5 +++++ 3 files changed, 9 insertions(+) diff --git a/logstash/README.md b/logstash/README.md index 3b2a06934..0ada889af 100644 --- a/logstash/README.md +++ b/logstash/README.md @@ -73,6 +73,7 @@ helm install --name logstash elastic/logstash --set imageTag=7.6.0 | `imagePullSecrets` | Configuration for [imagePullSecrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-pod-that-uses-your-secret) so that you can use a private registry for your image | `[]` | | `imageTag` | The Logstash docker image tag | `7.6.0` | | `httpPort` | The http port that Kubernetes will use for the healthchecks and the service. | `9600` | +| `ports` | An array of ports to open on the pod | `[]` | | `labels` | Configurable [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) applied to all Logstash pods | `{}` | | `lifecycle` | Allows you to add lifecycle configuration. See [values.yaml](https://github.com/elastic/helm-charts/tree/master/logstash/values.yaml) for an example of the formatting. | `{}` | | `livenessProbe` | Configuration fields for the [livenessProbe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) | `failureThreshold: 3`
`initialDelaySeconds: 300`
`periodSeconds: 10`
`successThreshold: 3`
`timeoutSeconds: 5` | diff --git a/logstash/templates/statefulset.yaml b/logstash/templates/statefulset.yaml index f953ec890..c4cb0889e 100644 --- a/logstash/templates/statefulset.yaml +++ b/logstash/templates/statefulset.yaml @@ -150,6 +150,9 @@ spec: ports: - name: http containerPort: {{ .Values.httpPort }} + {{- if .Values.ports }} + {{- toYaml .Values.ports | nindent 8 }} + {{- end }} resources: {{ toYaml .Values.resources | indent 10 }} env: diff --git a/logstash/values.yaml b/logstash/values.yaml index 498136a5d..9b7fe1979 100755 --- a/logstash/values.yaml +++ b/logstash/values.yaml @@ -124,6 +124,11 @@ podManagementPolicy: "Parallel" httpPort: 9600 +# Custom ports to add to logstash +ports: [] + # - name: beats + # containerPort: 5001 + updateStrategy: RollingUpdate # This is the max unavailable setting for the pod disruption budget From 156c07e2fbe948a4cb333cef07b73366de4f22f8 Mon Sep 17 00:00:00 2001 From: ChiefAlexander Date: Sat, 7 Mar 2020 10:22:33 -0600 Subject: [PATCH 2/3] Update based on code review --- logstash/README.md | 2 +- logstash/templates/statefulset.yaml | 4 ++-- logstash/tests/logstash_test.py | 14 ++++++++++++++ logstash/values.yaml | 2 +- 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/logstash/README.md b/logstash/README.md index 0ada889af..cd14fff5b 100644 --- a/logstash/README.md +++ b/logstash/README.md @@ -73,7 +73,7 @@ helm install --name logstash elastic/logstash --set imageTag=7.6.0 | `imagePullSecrets` | Configuration for [imagePullSecrets](https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/#create-a-pod-that-uses-your-secret) so that you can use a private registry for your image | `[]` | | `imageTag` | The Logstash docker image tag | `7.6.0` | | `httpPort` | The http port that Kubernetes will use for the healthchecks and the service. | `9600` | -| `ports` | An array of ports to open on the pod | `[]` | +| `extraPorts` | An array of extra ports to open on the pod | `[]` | | `labels` | Configurable [labels](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/) applied to all Logstash pods | `{}` | | `lifecycle` | Allows you to add lifecycle configuration. See [values.yaml](https://github.com/elastic/helm-charts/tree/master/logstash/values.yaml) for an example of the formatting. | `{}` | | `livenessProbe` | Configuration fields for the [livenessProbe](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-probes/) | `failureThreshold: 3`
`initialDelaySeconds: 300`
`periodSeconds: 10`
`successThreshold: 3`
`timeoutSeconds: 5` | diff --git a/logstash/templates/statefulset.yaml b/logstash/templates/statefulset.yaml index c4cb0889e..6c9838d3a 100644 --- a/logstash/templates/statefulset.yaml +++ b/logstash/templates/statefulset.yaml @@ -150,8 +150,8 @@ spec: ports: - name: http containerPort: {{ .Values.httpPort }} - {{- if .Values.ports }} - {{- toYaml .Values.ports | nindent 8 }} + {{- if .Values.extraPorts }} + {{- toYaml .Values.extraPorts | nindent 8 }} {{- end }} resources: {{ toYaml .Values.resources | indent 10 }} diff --git a/logstash/tests/logstash_test.py b/logstash/tests/logstash_test.py index b37e22fe8..9b395d74a 100755 --- a/logstash/tests/logstash_test.py +++ b/logstash/tests/logstash_test.py @@ -180,6 +180,20 @@ def test_adding_a_extra_container(): } in extraContainer +def test_adding_a_extra_port(): + config = """ +extraPorts: + - name: foo + containerPort: 30000 +""" + r = helm_template(config) + extraPorts = r["statefulset"][name]["spec"]["template"]["spec"]["containers"][0]["ports"] + assert { + "name": "foo", + "containerPort": 30000, + } in extraPorts + + def test_adding_a_extra_init_container(): config = """ extraInitContainers: | diff --git a/logstash/values.yaml b/logstash/values.yaml index 9b7fe1979..434a2a261 100755 --- a/logstash/values.yaml +++ b/logstash/values.yaml @@ -125,7 +125,7 @@ podManagementPolicy: "Parallel" httpPort: 9600 # Custom ports to add to logstash -ports: [] +extraPorts: [] # - name: beats # containerPort: 5001 From 3f87ed9b58d512d7ef5c9733954788cd05e1af69 Mon Sep 17 00:00:00 2001 From: Alex Harder <13860012+ChiefAlexander@users.noreply.github.com> Date: Mon, 9 Mar 2020 08:39:50 -0500 Subject: [PATCH 3/3] Update logstash/tests/logstash_test.py Co-Authored-By: Julien Mailleret --- logstash/tests/logstash_test.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/logstash/tests/logstash_test.py b/logstash/tests/logstash_test.py index 9b395d74a..ed798a496 100755 --- a/logstash/tests/logstash_test.py +++ b/logstash/tests/logstash_test.py @@ -187,11 +187,10 @@ def test_adding_a_extra_port(): containerPort: 30000 """ r = helm_template(config) - extraPorts = r["statefulset"][name]["spec"]["template"]["spec"]["containers"][0]["ports"] - assert { - "name": "foo", - "containerPort": 30000, - } in extraPorts + extraPorts = r["statefulset"][name]["spec"]["template"]["spec"]["containers"][0][ + "ports" + ] + assert {"name": "foo", "containerPort": 30000,} in extraPorts def test_adding_a_extra_init_container():