Skip to content

Commit c113377

Browse files
Gackodkostyrev
authored andcommitted
Chart: Add defaultBackend.maxUnavailable. (kubernetes#11995)
1 parent 08b2637 commit c113377

File tree

4 files changed

+26
-1
lines changed

4 files changed

+26
-1
lines changed

charts/ingress-nginx/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -516,7 +516,7 @@ As of version `1.26.0` of this chart, by simply not providing any clusterIP valu
516516
| defaultBackend.livenessProbe.periodSeconds | int | `10` | |
517517
| defaultBackend.livenessProbe.successThreshold | int | `1` | |
518518
| defaultBackend.livenessProbe.timeoutSeconds | int | `5` | |
519-
| defaultBackend.minAvailable | int | `1` | Minimum available pods set in PodDisruptionBudget. |
519+
| defaultBackend.minAvailable | int | `1` | Minimum available pods set in PodDisruptionBudget. Define either 'minAvailable' or 'maxUnavailable', never both. |
520520
| defaultBackend.minReadySeconds | int | `0` | `minReadySeconds` to avoid killing pods before we are ready # |
521521
| defaultBackend.name | string | `"defaultbackend"` | |
522522
| defaultBackend.networkPolicy.enabled | bool | `false` | Enable 'networkPolicy' or not |

charts/ingress-nginx/templates/default-backend-poddisruptionbudget.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ spec:
2020
matchLabels:
2121
{{- include "ingress-nginx.selectorLabels" . | nindent 6 }}
2222
app.kubernetes.io/component: default-backend
23+
{{- if and .Values.defaultBackend.minAvailable (not (hasKey .Values.defaultBackend "maxUnavailable")) }}
2324
minAvailable: {{ .Values.defaultBackend.minAvailable }}
25+
{{- else if .Values.defaultBackend.maxUnavailable }}
26+
maxUnavailable: {{ .Values.defaultBackend.maxUnavailable }}
27+
{{- end }}
2428
{{- end }}
2529
{{- end }}

charts/ingress-nginx/tests/default-backend-poddisruptionbudget_test.yaml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,3 +46,20 @@ tests:
4646
asserts:
4747
- hasDocuments:
4848
count: 0
49+
50+
- it: should create a PodDisruptionBudget without `minAvailable` and with `maxUnavailable` if `defaultBackend.minAvailable` and `defaultBackend.maxUnavailable` are set
51+
set:
52+
defaultBackend.enabled: true
53+
defaultBackend.replicaCount: 2
54+
defaultBackend.minAvailable: 1
55+
defaultBackend.maxUnavailable: 1
56+
asserts:
57+
- hasDocuments:
58+
count: 1
59+
- isKind:
60+
of: PodDisruptionBudget
61+
- notExists:
62+
path: spec.minAvailable
63+
- equal:
64+
path: spec.maxUnavailable
65+
value: 1

charts/ingress-nginx/values.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,7 +1097,11 @@ defaultBackend:
10971097
podAnnotations: {}
10981098
replicaCount: 1
10991099
# -- Minimum available pods set in PodDisruptionBudget.
1100+
# Define either 'minAvailable' or 'maxUnavailable', never both.
11001101
minAvailable: 1
1102+
# -- Maximum unavailable pods set in PodDisruptionBudget. If set, 'minAvailable' is ignored.
1103+
# maxUnavailable: 1
1104+
11011105
resources: {}
11021106
# limits:
11031107
# cpu: 10m

0 commit comments

Comments
 (0)