add kubespray to the XTesting as it provides newer version of kubenetes and can be...
[it/test.git] / XTesting / kubespray / docs / test_cases.md
1 # Node Layouts
2
3 There are four node layout types: `default`, `separate`, `ha`, and `scale`.
4
5 `default` is a non-HA two nodes setup with one separate `kube_node`
6 and the `etcd` group merged with the `kube_control_plane`.
7
8 `separate` layout is when there is only node of each type, which includes
9  a kube_control_plane, kube_node, and etcd cluster member.
10
11 `ha` layout consists of two etcd nodes, two control planes and a single worker node,
12 with role intersection.
13
14 `scale` layout can be combined with above layouts (`ha-scale`, `separate-scale`). It includes 200 fake hosts
15 in the Ansible inventory. This helps test TLS certificate generation at scale
16 to prevent regressions and profile certain long-running tasks. These nodes are
17 never actually deployed, but certificates are generated for them.
18
19 Note, the canal network plugin deploys flannel as well plus calico policy controller.
20
21 ## Test cases
22
23 The [CI Matrix](/docs/ci.md) displays OS, Network Plugin and Container Manager tested.
24
25 All tests are breakdown into 3 "stages" ("Stage" means a build step of the build pipeline) as follows:
26
27 - _unit_tests_: Linting, markdown, vagrant & terraform validation etc...
28 - _part1_: Molecule and AIO tests
29 - _part2_: Standard tests with different layouts and OS/Runtime/Network
30 - _part3_: Upgrade jobs, terraform jobs and recover control plane tests
31 - _special_: Other jobs (manuals)
32
33 The steps are ordered as `unit_tests->part1->part2->part3->special`.