Skip to content

Commit d870cf5

Browse files
committed
add PDB to make sure at least 1 pod is always available during upgrade
1 parent 0fecf3f commit d870cf5

7 files changed

Lines changed: 190 additions & 0 deletions
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{- if .Values.options.catalogd.enabled }}
2+
{{- if .Values.options.catalogd.podDisruptionBudget.enabled }}
3+
apiVersion: policy/v1
4+
kind: PodDisruptionBudget
5+
metadata:
6+
name: catalogd-controller-manager
7+
namespace: {{ .Values.namespaces.olmv1.name }}
8+
labels:
9+
app.kubernetes.io/name: catalogd
10+
{{- include "olmv1.labels" . | nindent 4 }}
11+
annotations:
12+
{{- include "olmv1.annotations" . | nindent 4 }}
13+
spec:
14+
{{- if .Values.options.catalogd.podDisruptionBudget.minAvailable }}
15+
minAvailable: {{ .Values.options.catalogd.podDisruptionBudget.minAvailable }}
16+
{{- end }}
17+
{{- if .Values.options.catalogd.podDisruptionBudget.maxUnavailable }}
18+
maxUnavailable: {{ .Values.options.catalogd.podDisruptionBudget.maxUnavailable }}
19+
{{- end }}
20+
selector:
21+
matchLabels:
22+
control-plane: catalogd-controller-manager
23+
{{- end }}
24+
{{- end }}
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{{- if .Values.options.operatorController.enabled }}
2+
{{- if .Values.options.operatorController.podDisruptionBudget.enabled }}
3+
apiVersion: policy/v1
4+
kind: PodDisruptionBudget
5+
metadata:
6+
name: operator-controller-controller-manager
7+
namespace: {{ .Values.namespaces.olmv1.name }}
8+
labels:
9+
app.kubernetes.io/name: operator-controller
10+
{{- include "olmv1.labels" . | nindent 4 }}
11+
annotations:
12+
{{- include "olmv1.annotations" . | nindent 4 }}
13+
spec:
14+
{{- if .Values.options.operatorController.podDisruptionBudget.minAvailable }}
15+
minAvailable: {{ .Values.options.operatorController.podDisruptionBudget.minAvailable }}
16+
{{- end }}
17+
{{- if .Values.options.operatorController.podDisruptionBudget.maxUnavailable }}
18+
maxUnavailable: {{ .Values.options.operatorController.podDisruptionBudget.maxUnavailable }}
19+
{{- end }}
20+
selector:
21+
matchLabels:
22+
control-plane: operator-controller-controller-manager
23+
{{- end }}
24+
{{- end }}

helm/olmv1/values.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ options:
1212
features:
1313
enabled: []
1414
disabled: []
15+
podDisruptionBudget:
16+
enabled: true
17+
minAvailable: 1
1518
catalogd:
1619
enabled: true
1720
deployment:
@@ -20,6 +23,9 @@ options:
2023
features:
2124
enabled: []
2225
disabled: []
26+
podDisruptionBudget:
27+
enabled: true
28+
minAvailable: 1
2329
certManager:
2430
enabled: false
2531
e2e:

manifests/experimental-e2e.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,40 @@ spec:
8787
- Ingress
8888
- Egress
8989
---
90+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml
91+
apiVersion: policy/v1
92+
kind: PodDisruptionBudget
93+
metadata:
94+
name: catalogd-controller-manager
95+
namespace: olmv1-system
96+
labels:
97+
app.kubernetes.io/name: catalogd
98+
app.kubernetes.io/part-of: olm
99+
annotations:
100+
olm.operatorframework.io/feature-set: experimental-e2e
101+
spec:
102+
minAvailable: 1
103+
selector:
104+
matchLabels:
105+
control-plane: catalogd-controller-manager
106+
---
107+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml
108+
apiVersion: policy/v1
109+
kind: PodDisruptionBudget
110+
metadata:
111+
name: operator-controller-controller-manager
112+
namespace: olmv1-system
113+
labels:
114+
app.kubernetes.io/name: operator-controller
115+
app.kubernetes.io/part-of: olm
116+
annotations:
117+
olm.operatorframework.io/feature-set: experimental-e2e
118+
spec:
119+
minAvailable: 1
120+
selector:
121+
matchLabels:
122+
control-plane: operator-controller-controller-manager
123+
---
90124
# Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml
91125
apiVersion: v1
92126
kind: ServiceAccount

manifests/experimental.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,40 @@ spec:
8787
- Ingress
8888
- Egress
8989
---
90+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml
91+
apiVersion: policy/v1
92+
kind: PodDisruptionBudget
93+
metadata:
94+
name: catalogd-controller-manager
95+
namespace: olmv1-system
96+
labels:
97+
app.kubernetes.io/name: catalogd
98+
app.kubernetes.io/part-of: olm
99+
annotations:
100+
olm.operatorframework.io/feature-set: experimental
101+
spec:
102+
minAvailable: 1
103+
selector:
104+
matchLabels:
105+
control-plane: catalogd-controller-manager
106+
---
107+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml
108+
apiVersion: policy/v1
109+
kind: PodDisruptionBudget
110+
metadata:
111+
name: operator-controller-controller-manager
112+
namespace: olmv1-system
113+
labels:
114+
app.kubernetes.io/name: operator-controller
115+
app.kubernetes.io/part-of: olm
116+
annotations:
117+
olm.operatorframework.io/feature-set: experimental
118+
spec:
119+
minAvailable: 1
120+
selector:
121+
matchLabels:
122+
control-plane: operator-controller-controller-manager
123+
---
90124
# Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml
91125
apiVersion: v1
92126
kind: ServiceAccount

manifests/standard-e2e.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,40 @@ spec:
8787
- Ingress
8888
- Egress
8989
---
90+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml
91+
apiVersion: policy/v1
92+
kind: PodDisruptionBudget
93+
metadata:
94+
name: catalogd-controller-manager
95+
namespace: olmv1-system
96+
labels:
97+
app.kubernetes.io/name: catalogd
98+
app.kubernetes.io/part-of: olm
99+
annotations:
100+
olm.operatorframework.io/feature-set: standard-e2e
101+
spec:
102+
minAvailable: 1
103+
selector:
104+
matchLabels:
105+
control-plane: catalogd-controller-manager
106+
---
107+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml
108+
apiVersion: policy/v1
109+
kind: PodDisruptionBudget
110+
metadata:
111+
name: operator-controller-controller-manager
112+
namespace: olmv1-system
113+
labels:
114+
app.kubernetes.io/name: operator-controller
115+
app.kubernetes.io/part-of: olm
116+
annotations:
117+
olm.operatorframework.io/feature-set: standard-e2e
118+
spec:
119+
minAvailable: 1
120+
selector:
121+
matchLabels:
122+
control-plane: operator-controller-controller-manager
123+
---
90124
# Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml
91125
apiVersion: v1
92126
kind: ServiceAccount

manifests/standard.yaml

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,6 +87,40 @@ spec:
8787
- Ingress
8888
- Egress
8989
---
90+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-catalogd.yml
91+
apiVersion: policy/v1
92+
kind: PodDisruptionBudget
93+
metadata:
94+
name: catalogd-controller-manager
95+
namespace: olmv1-system
96+
labels:
97+
app.kubernetes.io/name: catalogd
98+
app.kubernetes.io/part-of: olm
99+
annotations:
100+
olm.operatorframework.io/feature-set: standard
101+
spec:
102+
minAvailable: 1
103+
selector:
104+
matchLabels:
105+
control-plane: catalogd-controller-manager
106+
---
107+
# Source: olmv1/templates/poddisruptionbudget-olmv1-system-operator-controller.yml
108+
apiVersion: policy/v1
109+
kind: PodDisruptionBudget
110+
metadata:
111+
name: operator-controller-controller-manager
112+
namespace: olmv1-system
113+
labels:
114+
app.kubernetes.io/name: operator-controller
115+
app.kubernetes.io/part-of: olm
116+
annotations:
117+
olm.operatorframework.io/feature-set: standard
118+
spec:
119+
minAvailable: 1
120+
selector:
121+
matchLabels:
122+
control-plane: operator-controller-controller-manager
123+
---
90124
# Source: olmv1/templates/serviceaccount-olmv1-system-common-controller-manager.yml
91125
apiVersion: v1
92126
kind: ServiceAccount

0 commit comments

Comments
 (0)