Skip to content

Commit 565619b

Browse files
committed
add E2E test for patch resize operation
1 parent 2bfa7a4 commit 565619b

7 files changed

Lines changed: 319 additions & 2 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ jobs:
3636
- name: Run the tests 🔎
3737
run: |
3838
echo "Running the tests"
39-
kubectl kuttl test test/e2e/ --start-kind=false
39+
kubectl kuttl test --config test/e2e/kuttl-test.yaml test/e2e/kuttl --start-kind=false
4040
4141
- name: Clean up Kind cluster ☠️
4242
if: always()

docs/e2e-test.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,5 +24,5 @@ Then build the image and install the test chart in the kind cluster
2424
And finally run the tests
2525

2626
```[sh]
27-
kubectl kuttl test code/test/e2e/ --config code/test/e2e/kuttl-tests.yaml --start-kind=false
27+
kubectl kuttl test --config test/e2e/kuttl-test.yaml test/e2e/kuttl --start-kind=false
2828
```

e2e.json

Lines changed: 267 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,267 @@
1+
{
2+
"name": "",
3+
"tests": 24,
4+
"failures": 1,
5+
"time": "59.795",
6+
"testsuite": [
7+
{
8+
"tests": 24,
9+
"failures": 1,
10+
"timestamp": "2026-03-13T13:48:30.306505082+01:00",
11+
"time": "54.322",
12+
"name": "test/e2e/kuttl",
13+
"testsuite": [
14+
{
15+
"tests": 2,
16+
"failures": 0,
17+
"timestamp": "2026-03-13T13:48:30.307384902+01:00",
18+
"time": "0.020",
19+
"name": "1-00_validate_deployments_by_overcommit",
20+
"testcase": [
21+
{
22+
"classname": "1-00_validate_deployments_by_overcommit",
23+
"name": "setup",
24+
"timestamp": "2026-03-13T13:48:30.327587629+01:00",
25+
"time": "0.000"
26+
},
27+
{
28+
"classname": "1-00_validate_deployments_by_overcommit",
29+
"name": "step 0-",
30+
"timestamp": "2026-03-13T13:48:30.327592472+01:00",
31+
"time": "0.000",
32+
"assertions": 4
33+
}
34+
]
35+
},
36+
{
37+
"tests": 2,
38+
"failures": 0,
39+
"timestamp": "2026-03-13T13:49:24.566194167+01:00",
40+
"time": "0.062",
41+
"name": "1-01_validate_default_webhook",
42+
"testcase": [
43+
{
44+
"classname": "1-01_validate_default_webhook",
45+
"name": "setup",
46+
"timestamp": "2026-03-13T13:49:24.628043486+01:00",
47+
"time": "0.000"
48+
},
49+
{
50+
"classname": "1-01_validate_default_webhook",
51+
"name": "step 0-setup",
52+
"timestamp": "2026-03-13T13:49:24.628053571+01:00",
53+
"time": "0.000",
54+
"assertions": 1
55+
}
56+
]
57+
},
58+
{
59+
"tests": 3,
60+
"failures": 0,
61+
"timestamp": "2026-03-13T13:49:18.678419386+01:00",
62+
"time": "0.215",
63+
"name": "1-02_validate_excluded_namespaces",
64+
"testcase": [
65+
{
66+
"classname": "1-02_validate_excluded_namespaces",
67+
"name": "setup",
68+
"timestamp": "2026-03-13T13:49:18.893112587+01:00",
69+
"time": "0.000"
70+
},
71+
{
72+
"classname": "1-02_validate_excluded_namespaces",
73+
"name": "step 0-setup",
74+
"timestamp": "2026-03-13T13:49:18.893132187+01:00",
75+
"time": "0.000"
76+
},
77+
{
78+
"classname": "1-02_validate_excluded_namespaces",
79+
"name": "step 1-",
80+
"timestamp": "2026-03-13T13:49:18.893141747+01:00",
81+
"time": "0.000",
82+
"assertions": 3
83+
}
84+
]
85+
},
86+
{
87+
"tests": 2,
88+
"failures": 0,
89+
"timestamp": "2026-03-13T13:49:06.64447353+01:00",
90+
"time": "0.099",
91+
"name": "1-03_validate_namespace_labeled",
92+
"testcase": [
93+
{
94+
"classname": "1-03_validate_namespace_labeled",
95+
"name": "setup",
96+
"timestamp": "2026-03-13T13:49:06.743204738+01:00",
97+
"time": "0.000"
98+
},
99+
{
100+
"classname": "1-03_validate_namespace_labeled",
101+
"name": "step 0-setup",
102+
"timestamp": "2026-03-13T13:49:06.743226684+01:00",
103+
"time": "0.000",
104+
"assertions": 1
105+
}
106+
]
107+
},
108+
{
109+
"tests": 2,
110+
"failures": 0,
111+
"timestamp": "2026-03-13T13:49:12.317621641+01:00",
112+
"time": "1.037",
113+
"name": "1-04_validate_e2e_class",
114+
"testcase": [
115+
{
116+
"classname": "1-04_validate_e2e_class",
117+
"name": "setup",
118+
"timestamp": "2026-03-13T13:49:13.354606589+01:00",
119+
"time": "0.000"
120+
},
121+
{
122+
"classname": "1-04_validate_e2e_class",
123+
"name": "step 0-setup",
124+
"timestamp": "2026-03-13T13:49:13.354635573+01:00",
125+
"time": "0.000",
126+
"assertions": 2
127+
}
128+
]
129+
},
130+
{
131+
"tests": 2,
132+
"failures": 0,
133+
"timestamp": "2026-03-13T13:48:35.635640314+01:00",
134+
"time": "0.066",
135+
"name": "1-05_validate_pod_label",
136+
"testcase": [
137+
{
138+
"classname": "1-05_validate_pod_label",
139+
"name": "setup",
140+
"timestamp": "2026-03-13T13:48:35.70170288+01:00",
141+
"time": "0.000"
142+
},
143+
{
144+
"classname": "1-05_validate_pod_label",
145+
"name": "step 0-setup",
146+
"timestamp": "2026-03-13T13:48:35.701715356+01:00",
147+
"time": "0.000",
148+
"assertions": 1
149+
}
150+
]
151+
},
152+
{
153+
"tests": 3,
154+
"failures": 0,
155+
"timestamp": "2026-03-13T13:49:01.035899521+01:00",
156+
"time": "0.067",
157+
"name": "1-06_validate_pod_without_limits",
158+
"testcase": [
159+
{
160+
"classname": "1-06_validate_pod_without_limits",
161+
"name": "setup",
162+
"timestamp": "2026-03-13T13:49:01.102912966+01:00",
163+
"time": "0.000"
164+
},
165+
{
166+
"classname": "1-06_validate_pod_without_limits",
167+
"name": "step 0-setup",
168+
"timestamp": "2026-03-13T13:49:01.102925827+01:00",
169+
"time": "0.000"
170+
},
171+
{
172+
"classname": "1-06_validate_pod_without_limits",
173+
"name": "step 1-",
174+
"timestamp": "2026-03-13T13:49:01.102931645+01:00",
175+
"time": "0.000",
176+
"assertions": 1
177+
}
178+
]
179+
},
180+
{
181+
"tests": 2,
182+
"failures": 0,
183+
"timestamp": "2026-03-13T13:48:55.690165424+01:00",
184+
"time": "0.022",
185+
"name": "1-07_validate_init_containers_mutated",
186+
"testcase": [
187+
{
188+
"classname": "1-07_validate_init_containers_mutated",
189+
"name": "setup",
190+
"timestamp": "2026-03-13T13:48:55.712273359+01:00",
191+
"time": "0.000"
192+
},
193+
{
194+
"classname": "1-07_validate_init_containers_mutated",
195+
"name": "step 0-setup",
196+
"timestamp": "2026-03-13T13:48:55.712280767+01:00",
197+
"time": "0.000",
198+
"assertions": 1
199+
}
200+
]
201+
},
202+
{
203+
"tests": 3,
204+
"failures": 0,
205+
"timestamp": "2026-03-13T13:48:49.382038741+01:00",
206+
"time": "1.086",
207+
"name": "1-08_validate_tolerations_nodeSelector",
208+
"testcase": [
209+
{
210+
"classname": "1-08_validate_tolerations_nodeSelector",
211+
"name": "setup",
212+
"timestamp": "2026-03-13T13:48:50.468274962+01:00",
213+
"time": "0.000"
214+
},
215+
{
216+
"classname": "1-08_validate_tolerations_nodeSelector",
217+
"name": "step 0-setup",
218+
"timestamp": "2026-03-13T13:48:50.468288003+01:00",
219+
"time": "0.000",
220+
"assertions": 1
221+
},
222+
{
223+
"classname": "1-08_validate_tolerations_nodeSelector",
224+
"name": "step 1-setup",
225+
"timestamp": "2026-03-13T13:48:50.468293001+01:00",
226+
"time": "0.000",
227+
"assertions": 1
228+
}
229+
]
230+
},
231+
{
232+
"tests": 3,
233+
"failures": 1,
234+
"timestamp": "2026-03-13T13:48:41.132093378+01:00",
235+
"time": "2.919",
236+
"name": "1-09_validate_inplace_resize",
237+
"testcase": [
238+
{
239+
"classname": "1-09_validate_inplace_resize",
240+
"name": "setup",
241+
"timestamp": "2026-03-13T13:48:44.050795625+01:00",
242+
"time": "0.000"
243+
},
244+
{
245+
"classname": "1-09_validate_inplace_resize",
246+
"name": "step 0-setup",
247+
"timestamp": "2026-03-13T13:48:44.0508048+01:00",
248+
"time": "0.000",
249+
"assertions": 1
250+
},
251+
{
252+
"classname": "1-09_validate_inplace_resize",
253+
"name": "step 1-setup",
254+
"timestamp": "2026-03-13T13:48:44.050807747+01:00",
255+
"time": "0.000",
256+
"assertions": 1,
257+
"failure": {
258+
"text": "command \"kubectl wait --for=condition=Ready pod/resize-test -n resize-test-n...\" failed, exit status 1",
259+
"message": "failed in step 1-setup"
260+
}
261+
}
262+
]
263+
}
264+
]
265+
}
266+
]
267+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: resize-test
5+
namespace: resize-test-ns
6+
spec:
7+
containers:
8+
- name: test
9+
resources:
10+
requests:
11+
cpu: "250m"
12+
memory: "512Mi"
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
name: resize-test-ns
5+
---
6+
apiVersion: v1
7+
kind: Pod
8+
metadata:
9+
name: resize-test
10+
namespace: resize-test-ns
11+
spec:
12+
containers:
13+
- name: test
14+
image: busybox
15+
command: ["sleep","3600"]
16+
resources:
17+
limits:
18+
cpu: "500m"
19+
memory: "1Gi"
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
apiVersion: v1
2+
kind: Pod
3+
metadata:
4+
name: resize-test
5+
namespace: resize-test-ns
6+
spec:
7+
containers:
8+
- name: test
9+
resources:
10+
requests:
11+
cpu: "500m"
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
apiVersion: kuttl.dev/v1beta1
2+
kind: TestStep
3+
commands:
4+
- command: >
5+
kubectl patch pod resize-test
6+
-n resize-test-ns
7+
--subresource=resize
8+
-p '{"spec":{"containers":[{"name":"test","resources":{"limits":{"cpu":"2"}}}]}}'

0 commit comments

Comments
 (0)