File tree Expand file tree Collapse file tree 4 files changed +77
-0
lines changed Expand file tree Collapse file tree 4 files changed +77
-0
lines changed Original file line number Diff line number Diff line change
1
+ {{- if .Values.podDisruptionBudget.enabled }}
2
+ ---
3
+ apiVersion : policy/v1
4
+ kind : PodDisruptionBudget
5
+ metadata :
6
+ name : {{ include "autoneg.fullname" . }}-pdb
7
+ namespace : {{ include "autoneg.namespace" . | quote }}
8
+ labels :
9
+ {{- include "autoneg.labels" . | nindent 4 }}
10
+ spec :
11
+ selector :
12
+ matchLabels :
13
+ {{- include "autoneg.selectorLabels" . | nindent 6 }}
14
+ {{- if .Values.podDisruptionBudget.minAvailable }}
15
+ minAvailable : {{ .Values.podDisruptionBudget.minAvailable }}
16
+ {{- else if .Values.podDisruptionBudget.maxUnavailable }}
17
+ maxUnavailable : {{ .Values.podDisruptionBudget.maxUnavailable }}
18
+ {{- end }}
19
+ {{- end }}
Original file line number Diff line number Diff line change @@ -21,6 +21,14 @@ autoscaling: {}
21
21
22
22
replicas : 1
23
23
24
+ # Pod Disruption Budget configuration
25
+ podDisruptionBudget :
26
+ # Enable or disable PDB creation
27
+ enabled : true
28
+ # Specify either minAvailable or maxUnavailable, not both
29
+ minAvailable : 1
30
+ # maxUnavailable: 1
31
+
24
32
serviceAccount :
25
33
create : true
26
34
name : autoneg-controller-manager
Original file line number Diff line number Diff line change @@ -382,3 +382,39 @@ resource "kubernetes_deployment" "deployment_autoneg_controller_manager" {
382
382
kubernetes_cluster_role_binding . clusterrolebinding_autoneg_proxy_rolebinding ,
383
383
]
384
384
}
385
+
386
+ resource "kubernetes_pod_disruption_budget" "pdb_autoneg_controller" {
387
+ count = var. pod_disruption_budget . enabled ? 1 : 0
388
+
389
+ metadata {
390
+ name = " autoneg-controller-manager-pdb"
391
+ namespace = kubernetes_namespace. namespace_autoneg_system . metadata [0 ]. name
392
+ labels = {
393
+ app = " autoneg"
394
+ control-plane = " controller-manager"
395
+ }
396
+ }
397
+
398
+ spec {
399
+ dynamic "min_available" {
400
+ for_each = var. pod_disruption_budget . min_available != null ? [var . pod_disruption_budget . min_available ] : []
401
+ content {
402
+ value = min_available. value
403
+ }
404
+ }
405
+
406
+ dynamic "max_unavailable" {
407
+ for_each = var. pod_disruption_budget . max_unavailable != null ? [var . pod_disruption_budget . max_unavailable ] : []
408
+ content {
409
+ value = max_unavailable. value
410
+ }
411
+ }
412
+
413
+ selector {
414
+ match_labels = {
415
+ app = " autoneg"
416
+ control-plane = " controller-manager"
417
+ }
418
+ }
419
+ }
420
+ }
Original file line number Diff line number Diff line change @@ -70,3 +70,17 @@ variable "priority_class_name" {
70
70
type = string
71
71
default = null
72
72
}
73
+
74
+ variable "pod_disruption_budget" {
75
+ description = " Pod Disruption Budget configuration"
76
+ type = object ({
77
+ enabled = bool
78
+ min_available = optional (number )
79
+ max_unavailable = optional (number )
80
+ })
81
+ default = {
82
+ enabled = true
83
+ min_available = 1
84
+ max_unavailable = null
85
+ }
86
+ }
You can’t perform that action at this time.
0 commit comments