-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
PodDisruptionBudget helm template bug with maxUnavailable #4832
Copy link
Copy link
Closed
Labels
kind/bugCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.
Description
Describe the bug
The an override values.yaml is provided with podDisruptionBudget.maxUnavailable, the podDisruptionBudget.minAvailable will still be rendered in spec.minAvailable of PodDisruptionBudget CR and cause a failure.
To Reproduce
Steps to reproduce the behavior:
- Create
values-test.yamlfile withpodDisruptionBudget: enabled: true maxUnavailable: 1 - Use
helm templateto render thePodDisruptionBudgetCRhelm template -s templates/poddisruptionbudget.yaml test external-secrets/external-secrets -f values-test.yaml --- # Source: external-secrets/templates/poddisruptionbudget.yaml apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: test-external-secrets-pdb namespace: kube-system labels: helm.sh/chart: external-secrets-0.17.0 app.kubernetes.io/name: external-secrets app.kubernetes.io/instance: test app.kubernetes.io/version: "v0.17.0" app.kubernetes.io/managed-by: Helm spec: minAvailable: 1 maxUnavailable: 1 selector: matchLabels: app.kubernetes.io/name: external-secrets app.kubernetes.io/instance: test - The same issue should exists in
cert-controller-poddisruptionbudget.yamlandwebhook-poddisruptionbudget.yaml - The issue should be easily fixed by updating the
poddisruptionbudget.yamlwith:diff --git a/deploy/charts/external-secrets/templates/poddisruptionbudget.yaml b/deploy/charts/external-secrets/templates/poddisruptionbudget.yaml index 7b75ca3f4..a563ca0fe 100644 --- a/deploy/charts/external-secrets/templates/poddisruptionbudget.yaml +++ b/deploy/charts/external-secrets/templates/poddisruptionbudget.yaml @@ -7,11 +7,12 @@ metadata: labels: {{- include "external-secrets.labels" . | nindent 4 }} spec: - {{- if .Values.podDisruptionBudget.minAvailable }} - minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} - {{- end }} {{- if .Values.podDisruptionBudget.maxUnavailable }} maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} + {{- else }} + {{- if .Values.podDisruptionBudget.minAvailable }} + minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} + {{- end }} {{- end }} selector: matchLabels: - The full
poddisruptionbudget.yamlshould be as follows{{- if .Values.podDisruptionBudget.enabled }} apiVersion: policy/v1 kind: PodDisruptionBudget metadata: name: {{ include "external-secrets.fullname" . }}-pdb namespace: {{ template "external-secrets.namespace" . }} labels: {{- include "external-secrets.labels" . | nindent 4 }} spec: {{- if .Values.podDisruptionBudget.maxUnavailable }} maxUnavailable: {{ .Values.podDisruptionBudget.maxUnavailable }} {{- else }} {{- if .Values.podDisruptionBudget.minAvailable }} minAvailable: {{ .Values.podDisruptionBudget.minAvailable }} {{- end }} {{- end }} selector: matchLabels: {{- include "external-secrets.selectorLabels" . | nindent 6 }} {{- end }} - Kubernetes version
1.32 - ESO version
v0.17.0
The expectation is that with specifyingpodDisruptionBudget.maxUnavailable, thehelmchart should render a correctPodDisruptionBudgetCR.
Additional context
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
kind/bugCategorizes issue or PR as related to a bug.Categorizes issue or PR as related to a bug.
