diff --git a/filebeat/README.md b/filebeat/README.md index e1aa0faa9..96cf83dfe 100644 --- a/filebeat/README.md +++ b/filebeat/README.md @@ -66,6 +66,7 @@ helm install --name filebeat elastic/filebeat --set imageTag=7.3.0 | `tolerations` | Configurable [tolerations](https://kubernetes.io/docs/concepts/configuration/taint-and-toleration/) | `[]` | | `nodeSelector` | Configurable [nodeSelector](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#nodeselector) | `{}` | | `affinity` | Configurable [affinity](https://kubernetes.io/docs/concepts/configuration/assign-pod-node/#affinity-and-anti-affinity) | `{}` | +| `priorityClassName` | The [name of the PriorityClass](https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass). No default is supplied as the PriorityClass must be created first. | `` | | `updateStrategy` | The [updateStrategy](https://kubernetes.io/docs/tasks/manage-daemon/update-daemon-set/#daemonset-update-strategy) for the `DaemonSet`. By default Kubernetes will kill and recreate pods on updates. Setting this to `OnDelete` will require that pods be deleted manually. | `RollingUpdate` | ## Examples diff --git a/filebeat/templates/daemonset.yaml b/filebeat/templates/daemonset.yaml index f6e705d27..ff0b9bc8b 100644 --- a/filebeat/templates/daemonset.yaml +++ b/filebeat/templates/daemonset.yaml @@ -41,6 +41,9 @@ spec: {{- with .Values.nodeSelector }} nodeSelector: {{ toYaml . | nindent 8 }} {{- end }} + {{- if .Values.priorityClassName }} + priorityClassName: {{ .Values.priorityClassName }} + {{- end }} {{- with .Values.affinity }} affinity: {{ toYaml . | nindent 8 -}} {{- end }} diff --git a/filebeat/tests/filebeat_test.py b/filebeat/tests/filebeat_test.py index 882603208..5bd288921 100644 --- a/filebeat/tests/filebeat_test.py +++ b/filebeat/tests/filebeat_test.py @@ -216,3 +216,18 @@ def test_adding_an_affinity_rule(): r = helm_template(config) assert r['daemonset'][name]['spec']['template']['spec']['affinity']['podAntiAffinity'][ 'requiredDuringSchedulingIgnoredDuringExecution'][0]['topologyKey'] == 'kubernetes.io/hostname' + +def test_priority_class_name(): + config = ''' +priorityClassName: "" +''' + r = helm_template(config) + spec = r['daemonset'][name]['spec']['template']['spec'] + assert 'priorityClassName' not in spec + + config = ''' +priorityClassName: "highest" +''' + r = helm_template(config) + priority_class_name = r['daemonset'][name]['spec']['template']['spec']['priorityClassName'] + assert priority_class_name == "highest" diff --git a/filebeat/values.yaml b/filebeat/values.yaml index 2a735e6b0..6f15685eb 100755 --- a/filebeat/values.yaml +++ b/filebeat/values.yaml @@ -94,6 +94,10 @@ nodeSelector: {} affinity: {} +# This is the PriorityClass settings as defined in +# https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass +priorityClassName: "" + updateStrategy: RollingUpdate # Override various naming aspects of this chart