You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: contributors/devel/sig-node/e2e-node-tests.md
+63-25Lines changed: 63 additions & 25 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,6 @@
1
-
# Node End-To-End tests
1
+
# Node End-To-End (e2e) tests
2
2
3
-
Node e2e tests are component tests meant for testing the Kubelet code on a custom host environment.
4
-
5
-
Tests can be run either locally or against a host running on GCE.
6
-
7
-
Node e2e tests are run as both pre- and post- submit tests by the Kubernetes project.
3
+
Node e2e tests are component tests meant for testing the Kubelet code on a custom host environment. Tests can be run either locally or against a host running on Google Compute Engine (GCE). Node e2e tests are run as both pre- and post- submit tests by the Kubernetes project.
8
4
9
5
*Note: Linux only. Mac and Windows unsupported.*
10
6
@@ -14,13 +10,13 @@ Node e2e tests are run as both pre- and post- submit tests by the Kubernetes pro
14
10
15
11
## Locally
16
12
17
-
Why run tests *Locally*? Much faster than running tests Remotely.
13
+
Why run tests *locally*? It is much faster than running tests remotely.
18
14
19
15
Prerequisites:
20
-
-[Install etcd](https://github.com/coreos/etcd/releases)on your PATH
16
+
-[Install etcd](https://github.com/coreos/etcd/releases)and include the path to the installation in your PATH
21
17
- Verify etcd is installed correctly by running `which etcd`
22
18
- Or make etcd binary available and executable at `/tmp/etcd`
23
-
-[Install ginkgo](https://github.com/onsi/ginkgo)on your PATH
19
+
-[Install ginkgo](https://github.com/onsi/ginkgo)and include the path to the installation in your PATH
24
20
- Verify ginkgo is installed correctly by running `which ginkgo`
25
21
26
22
From the Kubernetes base directory, run:
@@ -29,7 +25,7 @@ From the Kubernetes base directory, run:
29
25
make test-e2e-node
30
26
```
31
27
32
-
This will: run the *ginkgo* binary against the subdirectory *test/e2e_node*, which will in turn:
28
+
This will run the *ginkgo* binary against the subdirectory *test/e2e_node*, which will in turn:
33
29
- Ask for sudo access (needed for running some of the processes)
34
30
- Build the Kubernetes source code
35
31
- Pre-pull docker images used by the tests
@@ -48,12 +44,10 @@ make test-e2e-node PRINT_HELP=y
48
44
49
45
## Remotely
50
46
51
-
Why Run tests *Remotely*? Tests will be run in a customized pristine environment. Closely mimics what will be done
52
-
as pre- and post- submit testing performed by the project.
47
+
Why run tests *remotely*? Tests will be run in a customized testing environment. This environment closely mimics the pre- and post- submit testing performed by the project.
53
48
54
49
Prerequisites:
55
-
-[join the googlegroup](https://groups.google.com/forum/#!forum/kubernetes-dev)
However, image configuration files select test cases based on the `tests` field.
191
+
192
+
See https://github.com/kubernetes/test-infra/blob/4572dc3bf92e70f572e55e7ac1be643bdf6b2566/jobs/e2e_node/benchmark-config.yaml#L22-23 for an example configuration.
193
+
194
+
If the [Prow e2e job configuration](https://github.com/kubernetes/test-infra/blob/master/jobs/e2e_node/image-config.yaml) does **not** specify the `tests` field, FOCUS and SKIP will run as expected.
195
+
196
+
# Additional test options for both remote and local execution
183
197
184
198
## Only run a subset of the tests
185
199
@@ -202,6 +216,26 @@ For example, the [`ci-kubernetes-node-kubelet`](https://github.com/kubernetes/te
202
216
make test-e2e-node REMOTE=true FOCUS="\[NodeConformance\]" SKIP="\[Flaky\]|\[Serial\]"
203
217
```
204
218
219
+
See http://onsi.github.io/ginkgo/#focused-specs in the Grinkgo documentation to learn more about how FOCUS and SKIP work.
220
+
221
+
## Run a single test
222
+
223
+
To run a particular e2e test, simply pass the Grinkgo `It` string to the `--focus` argument.
224
+
225
+
For example, suppose we have the following test case: https://github.com/kubernetes/kubernetes/blob/0e2220b4462130ae8a22ed657e8979f7844e22c1/test/e2e_node/security_context_test.go#L175. We could select this test case by adding the argument:
226
+
227
+
```sh
228
+
--focus="should not show its pid in the non-hostpid containers \[NodeFeature:HostAccess\]"
229
+
```
230
+
231
+
## Run all tests related to a feature
232
+
233
+
In contrast, to run all node e2e tests related to the "HostAccess" feature one could run:
234
+
235
+
```sh
236
+
--focus="\[NodeFeature:HostAccess\]"
237
+
```
238
+
205
239
## Run tests continually until they fail
206
240
207
241
This is useful if you are trying to debug a flaky test failure. This will cause ginkgo to continually
@@ -253,15 +287,19 @@ For testing with the QoS Cgroup Hierarchy enabled, you can pass --cgroups-per-qo
253
287
```sh
254
288
make test_e2e_node TEST_ARGS="--cgroups-per-qos=true"
255
289
```
290
+
## Testgrid
291
+
292
+
TestGrid (https://testgrid.k8s.io) is a publicly hosted and configured automated testing framework developed by Google.
293
+
294
+
Here (https://testgrid.k8s.io/sig-node-containerd#containerd-node-features) we see an example of an e2e Prow job running e2e tests. Each gray row in the grid corresponds
295
+
to an e2e test or a stage of the job (i.e. created a VM, downloaded some files). Passed tests are colored green and failed tests are colored red.
256
296
257
297
# Notes on tests run by the Kubernetes project during pre-, post- submit.
258
298
259
299
The node e2e tests are run by the [Prow](https://prow.k8s.io/) for each Pull Request and the results published
260
-
in the status checks box at
261
-
the bottom of the Pull Request below all comments. To have prow re-run the node e2e tests against a PR add the comment
262
-
`/test pull-kubernetes-node-e2e` and **include a link to the test
263
-
failure logs if caused by a flake.**
264
-
Note that [commands to prow](https://prow.k8s.io/command-help#test) must be on separate lines from any commentary.
300
+
in the status checks box at the bottom of the Pull Request below all comments. To have Prow re-run the node e2e tests against a PR add the comment
301
+
`/test pull-kubernetes-node-e2e` and **include a link to the test failure logs if caused by a flake.**
302
+
Note that [commands to Prow](https://prow.k8s.io/command-help#test) must be on separate lines from any commentary.
265
303
266
304
For example,
267
305
@@ -270,7 +308,7 @@ For example,
270
308
271
309
The PR builder runs tests against the images listed in [image-config.yaml](https://github.com/kubernetes/test-infra/blob/master/jobs/e2e_node/image-config.yaml).
272
310
273
-
Other [node e2e prow jobs](https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes/sig-node)
311
+
Other [node e2e Prow jobs](https://github.com/kubernetes/test-infra/tree/master/config/jobs/kubernetes/sig-node)
274
312
run against different images depending on the configuration chosen in the
0 commit comments