11
11
- [ Implementation Details] ( #implementation-details )
12
12
- [ Design] ( #design )
13
13
- [ Test Plan] ( #test-plan )
14
- - [ Needed Tests] ( #needed-tests )
14
+ - [ Prerequisite testing updates] ( #prerequisite-testing-updates )
15
+ - [ Unit tests] ( #unit-tests )
16
+ - [ Integration tests] ( #integration-tests )
17
+ - [ e2e tests] ( #e2e-tests )
15
18
- [ Graduation Criteria] ( #graduation-criteria )
16
19
- [ Upgrade / Downgrade Strategy] ( #upgrade--downgrade-strategy )
17
20
- [ Production Readiness Review Questionnaire] ( #production-readiness-review-questionnaire )
@@ -65,11 +68,80 @@ This proposal aims to:
65
68
66
69
## Design
67
70
71
+ [ X] I/we understand the owners of the involved components may require updates to
72
+ existing tests to make this code solid enough prior to committing the changes necessary
73
+ to implement this enhancement.
74
+
68
75
### Test Plan
69
76
70
- #### Needed Tests
77
+ ##### Prerequisite testing updates
78
+
79
+ <!--
80
+ Based on reviewers feedback describe what additional tests need to be added prior
81
+ implementing this enhancement to ensure the enhancements have also solid foundations.
82
+ -->
83
+
84
+ ##### Unit tests
85
+
86
+ <!--
87
+ In principle every added code should have complete unit test coverage, so providing
88
+ the exact set of tests will not bring additional value.
89
+ However, if complete unit test coverage is not possible, explain the reason of it
90
+ together with explanation why this is acceptable.
91
+ -->
92
+
93
+ <!--
94
+ Additionally, for Alpha try to enumerate the core package you will be touching
95
+ to implement this enhancement and provide the current unit coverage for those
96
+ in the form of:
97
+ - <package>: <date> - <current test coverage>
98
+ The data can be easily read from:
99
+ https://testgrid.k8s.io/sig-testing-canaries#ci-kubernetes-coverage-unit
100
+ This can inform certain test coverage improvements that we want to do before
101
+ extending the production code to implement this enhancement.
102
+ -->
103
+
104
+ The main unit test coverage is in the cgroup manager kubelet package under ` pkg/kubelet/cm ` .
105
+ Kubelet uses the existing
106
+ [ libcontainer] ( https://github.com/opencontainers/runc/tree/main/libcontainer )
107
+ library to manage cgroups so we will primarily be targeting integration testing
108
+ to verify the feature is working as intended.
109
+
110
+ ##### Integration tests
111
+
112
+ <!--
113
+ This question should be filled when targeting a release.
114
+ For Alpha, describe what tests will be added to ensure proper quality of the enhancement.
115
+ For Beta and GA, add links to added tests together with links to k8s-triage for those tests:
116
+ https://storage.googleapis.com/k8s-triage/index.html
117
+ -->
118
+
119
+ Please see below under e2e tests
120
+
121
+ ##### e2e tests
122
+
123
+ <!--
124
+ This question should be filled when targeting a release.
125
+ For Alpha, describe what tests will be added to ensure proper quality of the enhancement.
126
+ For Beta and GA, add links to added tests together with links to k8s-triage for those tests:
127
+ https://storage.googleapis.com/k8s-triage/index.html
128
+ We expect no non-infra related flakes in the last month as a GA graduation criteria.
129
+ -->
130
+
131
+ We would like to ensure that kubelet e2e node tests are tested under both
132
+ variants (cgroupv1 and cgroupv2) based OS images.
133
+ We currently have the following cgroupv2 jobs:
134
+
135
+ - https://testgrid.k8s.io/sig-node-containerd#cos-cgroupv2-containerd-e2e / https://storage.googleapis.com/k8s-triage/index.html?job=sig-node-containerd%23cos-cgroupv2-containerd-e2e
136
+ - https://testgrid.k8s.io/sig-node-containerd#cos-cgroupv2-containerd-node-e2e / https://storage.googleapis.com/k8s-triage/index.html?job=cos-cgroupv2-containerd-node-e2e
137
+ - https://testgrid.k8s.io/sig-node-containerd#cos-cgroupv2-containerd-node-features / https://storage.googleapis.com/k8s-triage/index.html?job=cos-cgroupv2-containerd-node-features
138
+ - https://testgrid.k8s.io/sig-node-containerd#cos-cgroupv2-containerd-node-e2e-serial / https://storage.googleapis.com/k8s-triage/index.html?job=cos-cgroupv2-containerd-node-e2e-serial
139
+ - https://testgrid.k8s.io/sig-node-cri-o#ci-crio-cgroupv2-node-e2e-conformance / https://storage.googleapis.com/k8s-triage/index.html?job=ci-crio-cgroupv2-node-e2e-conformance
140
+
141
+ As part of graduation to GA, we plan to rename the cgroupv1 based jobs as
142
+ ` cgroupv1 ` and ensure node e2e test grid have clearly labelled cgroupv1 and cgroupv2 jobs for SIG node based test categories (` e2e ` , ` node-e2e ` ,
143
+ ` node-features ` , and ` node-e2e-serial ` ).
71
144
72
- - Run E2E tests on a cgroup v2 enabled host.
73
145
74
146
### Graduation Criteria
75
147
@@ -84,7 +156,6 @@ This proposal aims to:
84
156
85
157
- GA: Assuming no negative user feedback based on production
86
158
experience, promote after 2 releases in beta.
87
- * TBD* whether phase 2 must be implemented for GA.
88
159
89
160
### Upgrade / Downgrade Strategy
90
161
0 commit comments