|
13 | 13 | - [Design Details](#design-details)
|
14 | 14 | - [Implications to drain](#implications-to-drain)
|
15 | 15 | - [Test Plan](#test-plan)
|
| 16 | + - [Prerequisite testing updates](#prerequisite-testing-updates) |
| 17 | + - [Unit tests](#unit-tests) |
| 18 | + - [Integration tests](#integration-tests) |
| 19 | + - [e2e tests](#e2e-tests) |
16 | 20 | - [Graduation Criteria](#graduation-criteria)
|
17 | 21 | - [Production Readiness Review Questionnaire](#production-readiness-review-questionnaire)
|
18 | 22 | - [Feature Enablement and Rollback](#feature-enablement-and-rollback)
|
@@ -141,6 +145,30 @@ pod). If the old pod delays deletion, then the new pod has a chance to accept ha
|
141 | 145 | * Testing should set up conflicting rules like HostPort and verify that surge fails and the correct daemonset condition is set and events are generated.
|
142 | 146 | * A test should cover a pod going unready during rollout and verifying it is immediately replaced.
|
143 | 147 |
|
| 148 | + |
| 149 | +#### Prerequisite testing updates |
| 150 | +[x] I/we understand the owners of the involved components may require updates to existing tests to make this code solid enough prior to committing the changes necessary to implement this enhancement. |
| 151 | + |
| 152 | +##### Unit tests |
| 153 | + |
| 154 | +``` |
| 155 | +`k8s.io/kubernetes/pkg/apis/apps/validation` `06/06/2022`: `90.6% of statements` `The tests added for the current feature in this package touches the daemonSet Spec field. No new tests are needed for promotion to GA` |
| 156 | +`k8s.io/kubernetes/pkg/apis/apps/validation/validation.go:387`: `06/06/2022`: `100.0% of statements` |
| 157 | +`k8s.io/kubernetes/pkg/controller/daemon`: `06/06/2022`: `70.7% of statements` `The tests added for the current feature in this package touches the daemonSet update strategies. No new tests are needed for promotion to GA` |
| 158 | +`k8s.io/kubernetes/pkg/registry/apps/daemonset`: `06/06/2022`: `31.1% of statements` `The tests added for the current feature in this package makes sure that the kubernetes version upgrades/downgrades won't have any impact on the new field to the daemonSet api when persisting to etcd. No new tests are needed for promotion to GA` |
| 159 | +`k8s.io/kubernetes/pkg/registry/apps/daemonset/strategy.go:129`: `06/06/2022`: `100.0% of statements` |
| 160 | +``` |
| 161 | +##### Integration tests |
| 162 | + |
| 163 | +A new integration which exercises maxSurge when `RollingUpdate` is used as update strategy will be added to [DS integration test suite](https://github.com/kubernetes/kubernetes/blob/master/test/integration/daemonset/daemonset_test.go) |
| 164 | + |
| 165 | +##### e2e tests |
| 166 | + |
| 167 | +An e2e test which exercises maxSurge when `RollingUpdate` is used as update strategy is added for daemonsets. |
| 168 | + |
| 169 | +- should surge pods onto nodes when spec was updated and update strategy is RollingUpdate: [test grid](https://storage.googleapis.com/k8s-triage/index.html?test=should%20surge%20pods) |
| 170 | + |
| 171 | + |
144 | 172 | ### Graduation Criteria
|
145 | 173 |
|
146 | 174 | This will be added as a alpha field enhancement to DaemonSets with a backward compatible default. After sufficient exposure this field would be promoted to beta, and then to GA in successive releases. The feature gate for this field will be `DaemonSetUpdateSurge`.
|
@@ -224,7 +252,7 @@ _This section must be completed when targeting beta graduation to a release._
|
224 | 252 |
|
225 | 253 | * **Were upgrade and rollback tested? Was the upgrade->downgrade->upgrade path tested?**
|
226 | 254 | Manually tested. No issues were found when we enabled the feature gate -> disabled it ->
|
227 |
| - re-enabled the feature gate. We still need to test upgrade -> downgrade -> upgrade scenario. |
| 255 | + re-enabled the feature gate. Upgrade -> downgrade -> upgrade scenario was tested manually. |
228 | 256 |
|
229 | 257 | * **Is the rollout accompanied by any deprecations and/or removals of features, APIs,
|
230 | 258 | fields of API types, flags, etc.?**
|
@@ -345,4 +373,5 @@ This feature will not work if the API server or etcd is unavailable as the contr
|
345 | 373 |
|
346 | 374 | - 2021-02-09: Initial KEP merged
|
347 | 375 | - 2021-03-05: Initial implementation merged
|
348 |
| -- 2021-04-30: Graduate the feature to Beta proposed |
| 376 | +- 2021-04-30: Graduate the feature to Beta proposed |
| 377 | +- 2022-05-10: Graduate the feature to stable proposed |
0 commit comments