Skip to content

Commit 9fb8cd0

Browse files
committed
add e2e test
1 parent 7392e5e commit 9fb8cd0

File tree

9 files changed

+132
-38
lines changed

9 files changed

+132
-38
lines changed

config/rbac/cluster/role.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ rules:
104104
- list
105105
- patch
106106
- update
107+
- watch
107108
- apiGroups:
108109
- ps.percona.com
109110
resources:

config/rbac/role.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ rules:
104104
- list
105105
- patch
106106
- update
107+
- watch
107108
- apiGroups:
108109
- ps.percona.com
109110
resources:

deploy/bundle.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11716,6 +11716,7 @@ rules:
1171611716
- list
1171711717
- patch
1171811718
- update
11719+
- watch
1171911720
- apiGroups:
1172011721
- ps.percona.com
1172111722
resources:

deploy/cw-bundle.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11716,6 +11716,7 @@ rules:
1171611716
- list
1171711717
- patch
1171811718
- update
11719+
- watch
1171911720
- apiGroups:
1172011721
- ps.percona.com
1172111722
resources:

deploy/cw-rbac.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- list
146146
- patch
147147
- update
148+
- watch
148149
- apiGroups:
149150
- ps.percona.com
150151
resources:

deploy/rbac.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@ rules:
145145
- list
146146
- patch
147147
- update
148+
- watch
148149
- apiGroups:
149150
- ps.percona.com
150151
resources:

e2e-tests/tests/init-deploy/01-assert.yaml

Lines changed: 123 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,3 +63,126 @@ status:
6363
size: 3
6464
state: ready
6565
state: ready
66+
---
67+
apiVersion: policy/v1
68+
kind: PodDisruptionBudget
69+
metadata:
70+
generation: 1
71+
labels:
72+
app.kubernetes.io/component: proxy
73+
app.kubernetes.io/instance: init-deploy
74+
app.kubernetes.io/managed-by: percona-server-mysql-operator
75+
app.kubernetes.io/name: haproxy
76+
app.kubernetes.io/part-of: percona-server
77+
app.kubernetes.io/version: v0.11.0
78+
name: init-deploy-haproxy
79+
ownerReferences:
80+
- apiVersion: apps/v1
81+
blockOwnerDeletion: true
82+
controller: true
83+
kind: StatefulSet
84+
name: init-deploy-haproxy
85+
spec:
86+
minAvailable: 1
87+
selector:
88+
matchLabels:
89+
app.kubernetes.io/component: proxy
90+
app.kubernetes.io/instance: init-deploy
91+
app.kubernetes.io/managed-by: percona-server-mysql-operator
92+
app.kubernetes.io/name: haproxy
93+
app.kubernetes.io/part-of: percona-server
94+
app.kubernetes.io/version: v0.11.0
95+
status:
96+
conditions:
97+
- message: ""
98+
observedGeneration: 1
99+
reason: SufficientPods
100+
status: "True"
101+
type: DisruptionAllowed
102+
currentHealthy: 3
103+
desiredHealthy: 1
104+
disruptionsAllowed: 2
105+
expectedPods: 3
106+
observedGeneration: 1
107+
---
108+
apiVersion: policy/v1
109+
kind: PodDisruptionBudget
110+
metadata:
111+
generation: 1
112+
labels:
113+
app.kubernetes.io/component: database
114+
app.kubernetes.io/instance: init-deploy
115+
app.kubernetes.io/managed-by: percona-server-mysql-operator
116+
app.kubernetes.io/name: mysql
117+
app.kubernetes.io/part-of: percona-server
118+
app.kubernetes.io/version: v0.11.0
119+
name: init-deploy-mysql
120+
ownerReferences:
121+
- apiVersion: apps/v1
122+
blockOwnerDeletion: true
123+
controller: true
124+
kind: StatefulSet
125+
name: init-deploy-mysql
126+
spec:
127+
maxUnavailable: 1
128+
selector:
129+
matchLabels:
130+
app.kubernetes.io/component: database
131+
app.kubernetes.io/instance: init-deploy
132+
app.kubernetes.io/managed-by: percona-server-mysql-operator
133+
app.kubernetes.io/name: mysql
134+
app.kubernetes.io/part-of: percona-server
135+
app.kubernetes.io/version: v0.11.0
136+
status:
137+
conditions:
138+
- message: ""
139+
observedGeneration: 1
140+
reason: SufficientPods
141+
status: "True"
142+
type: DisruptionAllowed
143+
currentHealthy: 3
144+
desiredHealthy: 2
145+
disruptionsAllowed: 1
146+
expectedPods: 3
147+
observedGeneration: 1
148+
---
149+
apiVersion: policy/v1
150+
kind: PodDisruptionBudget
151+
metadata:
152+
generation: 1
153+
labels:
154+
app.kubernetes.io/component: orchestrator
155+
app.kubernetes.io/instance: init-deploy
156+
app.kubernetes.io/managed-by: percona-server-mysql-operator
157+
app.kubernetes.io/name: orchestrator
158+
app.kubernetes.io/part-of: percona-server
159+
app.kubernetes.io/version: v0.11.0
160+
name: init-deploy-orchestrator
161+
ownerReferences:
162+
- apiVersion: apps/v1
163+
blockOwnerDeletion: true
164+
controller: true
165+
kind: StatefulSet
166+
name: init-deploy-orc
167+
spec:
168+
maxUnavailable: 1
169+
selector:
170+
matchLabels:
171+
app.kubernetes.io/component: orchestrator
172+
app.kubernetes.io/instance: init-deploy
173+
app.kubernetes.io/managed-by: percona-server-mysql-operator
174+
app.kubernetes.io/name: orchestrator
175+
app.kubernetes.io/part-of: percona-server
176+
app.kubernetes.io/version: v0.11.0
177+
status:
178+
conditions:
179+
- message: ""
180+
observedGeneration: 1
181+
reason: SufficientPods
182+
status: "True"
183+
type: DisruptionAllowed
184+
currentHealthy: 3
185+
desiredHealthy: 2
186+
disruptionsAllowed: 1
187+
expectedPods: 3
188+
observedGeneration: 1

e2e-tests/tests/init-deploy/01-create-cluster.yaml

Lines changed: 2 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -8,43 +8,6 @@ spec:
88
requests.memory: "16Gi"
99
limits.cpu: "10"
1010
limits.memory: "24Gi"
11-
commands:
12-
- script: |-
13-
null
14-
---
15-
set -o errexit
16-
set -o xtrace
17-
18-
source ../../functions
19-
20-
get_cr \
21-
| yq eval '.spec.mysql.clusterType="async"' - \
22-
| yq eval '.spec.mysql.size=3' - \
23-
| yq eval '.spec.proxy.haproxy.enabled=true' - \
24-
| yq eval '.spec.proxy.haproxy.size=3' - \
25-
| yq eval '.spec.orchestrator.enabled=true' - \
26-
| yq eval '.spec.mysql.resources.limits.cpu="1000m"' - \
27-
| yq eval '.spec.mysql.resources.limits.memory="4G"' - \
28-
| yq eval '.spec.mysql.resources.requests.cpu="400m"' - \
29-
| yq eval '.spec.mysql.resources.requests.memory="2G"' - \
30-
| yq eval '.spec.backup.resources.limits.cpu="200m"' - \
31-
| yq eval '.spec.backup.resources.limits.memory="256Mi"' - \
32-
| yq eval '.spec.backup.resources.requests.cpu="100m"' - \
33-
| yq eval '.spec.backup.resources.requests.memory="128Mi"' - \
34-
| yq eval '.spec.toolkit.resources.limits.cpu="150m"' - \
35-
| yq eval '.spec.toolkit.resources.limits.memory="256Mi"' - \
36-
| yq eval '.spec.toolkit.resources.requests.cpu="100m"' - \
37-
| yq eval '.spec.toolkit.resources.requests.memory="128Mi"' - \
38-
| yq eval '.spec.proxy.haproxy.resources.limits.cpu="600m"' - \
39-
| yq eval '.spec.proxy.haproxy.resources.limits.memory="512Mi"' - \
40-
| yq eval '.spec.proxy.haproxy.resources.requests.cpu="500m"' - \
41-
| yq eval '.spec.proxy.haproxy.resources.requests.memory="256Mi"' - \
42-
| yq eval '.spec.orchestrator.resources.limits.cpu="200m"' - \
43-
| yq eval '.spec.orchestrator.resources.limits.memory="256Mi"' - \
44-
| yq eval '.spec.orchestrator.resources.requests.cpu="100m"' - \
45-
| yq eval '.spec.orchestrator.resources.requests.memory="128Mi"' - \
46-
| yq eval '.spec.orchestrator.size=3' - \
47-
| kubectl -n "${NAMESPACE}" apply -f -
4811
---
4912
apiVersion: kuttl.dev/v1beta1
5013
kind: TestStep
@@ -63,6 +26,8 @@ commands:
6326
| yq eval '.spec.mysql.size=3' - \
6427
| yq eval '.spec.proxy.haproxy.enabled=true' - \
6528
| yq eval '.spec.proxy.haproxy.size=3' - \
29+
| yq eval '.spec.proxy.haproxy.podDisruptionBudget.minAvailable=1' - \
30+
| yq eval '.spec.proxy.haproxy.podDisruptionBudget.maxUnavailable=null' - \
6631
| yq eval '.spec.orchestrator.enabled=true' - \
6732
| yq eval '.spec.mysql.resources.limits.cpu="1000m"' - \
6833
| yq eval '.spec.mysql.resources.limits.memory="4G"' - \

pkg/controller/ps/controller.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ type PerconaServerMySQLReconciler struct {
7878
//+kubebuilder:rbac:groups="",resources=configmaps;services;secrets,verbs=get;list;watch;create;update;patch;delete
7979
//+kubebuilder:rbac:groups="",resources=pods;pods/exec,verbs=get;list;watch;create;update;patch;delete;deletecollection
8080
//+kubebuilder:rbac:groups="",resources=events,verbs=create;patch
81-
//+kubebuilder:rbac:groups=policy,resources=poddisruptionbudgets,verbs=create;get;list;patch;update
81+
//+kubebuilder:rbac:groups=policy,resources=poddisruptionbudgets,verbs=create;get;list;patch;update;watch
8282
//+kubebuilder:rbac:groups=apps,resources=statefulsets;deployments,verbs=get;list;watch;create;update;patch;delete
8383
//+kubebuilder:rbac:groups=certmanager.k8s.io;cert-manager.io,resources=issuers;certificates,verbs=get;list;watch;create;update;patch;delete;deletecollection
8484
//+kubebuilder:rbac:groups="",resources=serviceaccounts,verbs=get;list;watch;create;patch

0 commit comments

Comments
 (0)