From 75ceb1af5a496614ff424ed7caa2d034e4c96f85 Mon Sep 17 00:00:00 2001 From: Yves Blusseau <90z7oey02@sneakemail.com> Date: Mon, 21 Oct 2019 15:51:02 +0200 Subject: [PATCH] Fix PodDisruptionBudget template (#88) * Fix bad selectors. * Fix bad calculation of maxUnavailable. Signed-off-by: JrCs <90z7oey02@sneakemail.com> --- templates/_helpers.tpl | 2 +- templates/server-disruptionbudget.yaml | 4 ++-- test/unit/server-ha-disruptionbudget.bats | 24 ++++++++++++++++++++++- 3 files changed, 26 insertions(+), 4 deletions(-) diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl index 0ee70b6..3e79144 100644 --- a/templates/_helpers.tpl +++ b/templates/_helpers.tpl @@ -42,7 +42,7 @@ Add a special case for replicas=1, where it should default to 0 as well. {{- else if .Values.server.ha.disruptionBudget.maxUnavailable -}} {{ .Values.server.ha.disruptionBudget.maxUnavailable -}} {{- else -}} -{{- ceil (sub (div (int .Values.server.ha.replicas) 2) 1) -}} +{{- div (sub (div (mul (int .Values.server.ha.replicas) 10) 2) 1) 10 -}} {{- end -}} {{- end -}} diff --git a/templates/server-disruptionbudget.yaml b/templates/server-disruptionbudget.yaml index d617520..f41aedd 100644 --- a/templates/server-disruptionbudget.yaml +++ b/templates/server-disruptionbudget.yaml @@ -16,7 +16,7 @@ spec: maxUnavailable: {{ template "vault.pdb.maxUnavailable" . }} selector: matchLabels: - app: {{ template "vault.name" . }} - release: "{{ .Release.Name }}" + app.kubernetes.io/name: {{ include "vault.name" . }} + app.kubernetes.io/instance: {{ .Release.Name }} component: server {{- end -}} diff --git a/test/unit/server-ha-disruptionbudget.bats b/test/unit/server-ha-disruptionbudget.bats index c5dc971..6e60707 100755 --- a/test/unit/server-ha-disruptionbudget.bats +++ b/test/unit/server-ha-disruptionbudget.bats @@ -43,6 +43,17 @@ load _helpers [ "${actual}" = "false" ] } +@test "server/DisruptionBudget: correct maxUnavailable with n=1" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/server-disruptionbudget.yaml \ + --set 'server.ha.enabled=true' \ + --set 'server.ha.replicas=1' \ + . | tee /dev/stderr | + yq '.spec.maxUnavailable' | tee /dev/stderr) + [ "${actual}" = "0" ] +} + @test "server/DisruptionBudget: correct maxUnavailable with n=3" { cd `chart_dir` local actual=$(helm template \ @@ -51,5 +62,16 @@ load _helpers --set 'server.ha.replicas=3' \ . | tee /dev/stderr | yq '.spec.maxUnavailable' | tee /dev/stderr) - [ "${actual}" = "0" ] + [ "${actual}" = "1" ] +} + +@test "server/DisruptionBudget: correct maxUnavailable with n=5" { + cd `chart_dir` + local actual=$(helm template \ + -x templates/server-disruptionbudget.yaml \ + --set 'server.ha.enabled=true' \ + --set 'server.ha.replicas=5' \ + . | tee /dev/stderr | + yq '.spec.maxUnavailable' | tee /dev/stderr) + [ "${actual}" = "2" ] }