add service disruption back for HA setup
This commit is contained in:
parent
21216ec700
commit
81b11691ae
4 changed files with 35 additions and 6 deletions
|
@ -36,9 +36,9 @@ Compute the maximum number of unavailable replicas for the PodDisruptionBudget.
|
||||||
This defaults to (n/2)-1 where n is the number of members of the server cluster.
|
This defaults to (n/2)-1 where n is the number of members of the server cluster.
|
||||||
*/}}
|
*/}}
|
||||||
{{- define "vault.pdb.maxUnavailable" -}}
|
{{- define "vault.pdb.maxUnavailable" -}}
|
||||||
{{- if .Values.server.disruptionBudget.maxUnavailable -}}
|
{{- if .Values.serverHA.disruptionBudget.maxUnavailable -}}
|
||||||
{{ .Values.server.disruptionBudget.maxUnavailable -}}
|
{{ .Values.serverHA.disruptionBudget.maxUnavailable -}}
|
||||||
{{- else -}}
|
{{- else -}}
|
||||||
{{- ceil (sub (div (int .Values.server.replicas) 2) 1) -}}
|
{{- ceil (sub (div (int .Values.serverHA.replicas) 2) 1) -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
{{- end -}}
|
{{- end -}}
|
||||||
|
|
20
templates/server-disruptionbudget.yaml
Normal file
20
templates/server-disruptionbudget.yaml
Normal file
|
@ -0,0 +1,20 @@
|
||||||
|
# PodDisruptionBudget to prevent degrading the server cluster through
|
||||||
|
# voluntary cluster changes.
|
||||||
|
{{- if (and .Values.serverHA.disruptionBudget.enabled (or (and (ne (.Values.serverHA.enabled | toString) "-") .Values.serverHA.enabled) (and (eq (.Values.serverHA.enabled | toString) "-") .Values.global.enabled))) }}
|
||||||
|
apiVersion: policy/v1beta1
|
||||||
|
kind: PodDisruptionBudget
|
||||||
|
metadata:
|
||||||
|
name: {{ template "vault.fullname" . }}-ha-server
|
||||||
|
labels:
|
||||||
|
app: {{ template "vault.name" . }}
|
||||||
|
chart: {{ template "vault.chart" . }}
|
||||||
|
heritage: {{ .Release.Service }}
|
||||||
|
release: {{ .Release.Name }}
|
||||||
|
spec:
|
||||||
|
maxUnavailable: {{ template "vault.pdb.maxUnavailable" . }}
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: {{ template "vault.name" . }}
|
||||||
|
release: "{{ .Release.Name }}"
|
||||||
|
component: server
|
||||||
|
{{- end }}
|
|
@ -6,6 +6,7 @@ load _helpers
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
-x templates/server-disruptionbudget.yaml \
|
-x templates/server-disruptionbudget.yaml \
|
||||||
|
--set 'serverHA.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
|
@ -16,7 +17,7 @@ load _helpers
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
-x templates/server-disruptionbudget.yaml \
|
-x templates/server-disruptionbudget.yaml \
|
||||||
--set 'global.enabled=false' \
|
--set 'global.enabled=false' \
|
||||||
--set 'server.enabled=true' \
|
--set 'serverHA.enabled=true' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "true" ]
|
[ "${actual}" = "true" ]
|
||||||
|
@ -26,7 +27,7 @@ load _helpers
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
-x templates/server-disruptionbudget.yaml \
|
-x templates/server-disruptionbudget.yaml \
|
||||||
--set 'server.enabled=false' \
|
--set 'serverHA.enabled=false' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq 'length > 0' | tee /dev/stderr)
|
yq 'length > 0' | tee /dev/stderr)
|
||||||
[ "${actual}" = "false" ]
|
[ "${actual}" = "false" ]
|
||||||
|
@ -56,7 +57,8 @@ load _helpers
|
||||||
cd `chart_dir`
|
cd `chart_dir`
|
||||||
local actual=$(helm template \
|
local actual=$(helm template \
|
||||||
-x templates/server-disruptionbudget.yaml \
|
-x templates/server-disruptionbudget.yaml \
|
||||||
--set 'server.replicas=3' \
|
--set 'serverHA.enabled=true' \
|
||||||
|
--set 'serverHA.replicas=3' \
|
||||||
. | tee /dev/stderr |
|
. | tee /dev/stderr |
|
||||||
yq '.spec.maxUnavailable' | tee /dev/stderr)
|
yq '.spec.maxUnavailable' | tee /dev/stderr)
|
||||||
[ "${actual}" = "0" ]
|
[ "${actual}" = "0" ]
|
||||||
|
|
|
@ -128,6 +128,13 @@ serverHA:
|
||||||
# - type: secret (or "configMap")
|
# - type: secret (or "configMap")
|
||||||
# name: my-secret
|
# name: my-secret
|
||||||
# load: false # if true, will add to `-config` to load by Vault
|
# load: false # if true, will add to `-config` to load by Vault
|
||||||
|
|
||||||
|
disruptionBudget:
|
||||||
|
enabled: true
|
||||||
|
|
||||||
|
# maxUnavailable will default to (n/2)-1 where n is the number of
|
||||||
|
# replicas. If you'd like a custom value, you can specify an override here.
|
||||||
|
maxUnavailable: null
|
||||||
|
|
||||||
# Configuration for DNS configuration within the Kubernetes cluster.
|
# Configuration for DNS configuration within the Kubernetes cluster.
|
||||||
# This creates a service that routes to all agents (client or server)
|
# This creates a service that routes to all agents (client or server)
|
||||||
|
|
Loading…
Reference in a new issue