@@ -76,6 +76,10 @@ Architecture for cross-cutting KEPs). -->
76
76
- [ OpenAPI V3 Proto] ( #openapi-v3-proto )
77
77
- [ Clients] ( #clients )
78
78
- [ Test Plan] ( #test-plan )
79
+ - [ Prerequisite testing updates] ( #prerequisite-testing-updates )
80
+ - [ Unit tests] ( #unit-tests )
81
+ - [ Integration tests] ( #integration-tests )
82
+ - [ e2e tests] ( #e2e-tests )
79
83
- [ Graduation Criteria] ( #graduation-criteria )
80
84
- [ Alpha] ( #alpha )
81
85
- [ Beta] ( #beta )
@@ -416,28 +420,75 @@ kubectl will be updated to use OpenAPI V3.
416
420
417
421
### Test Plan
418
422
419
- <!-- **Note:** *Not required until targeted at a release.*
423
+ <!--
424
+ **Note:** *Not required until targeted at a release.*
425
+ The goal is to ensure that we don't accept encements with inadequate testing.
426
+ All code is expected to have adequate tests (eventually with coverage
427
+ expectations). Please adhere to the [Kubernetes testing guidelines][testing-guidelines]
428
+ when drafting this test plan.
429
+ [testing-guidelines]: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md
430
+ -->
420
431
421
- Consider the following in developing a test plan for this enhancement:
422
- - Will there be e2e and integration tests, in addition to unit tests?
423
- - How will it be tested in isolation vs with other components?
432
+ [ x ] I/we understand the owners of the involved components may require updates to
433
+ existing tests to make this code solid enough prior to committing the changes necessary
434
+ to implement this encement.
424
435
425
- No need to outline all of the test cases, just the general strategy. Anything
426
- that would count as tricky in the implementation, and anything particularly
427
- challenging to test, should be called out.
436
+ ##### Prerequisite testing updates
428
437
429
- All code is expected to have adequate tests (eventually with coverage
430
- expectations). Please adhere to the [Kubernetes testing
431
- guidelines][testing-guidelines] when drafting this test plan.
438
+ <!--
439
+ Based on reviewers feedback describe what additional tests need to be added prior
440
+ implementing this encement to ensure the encements have also solid foundations.
441
+ -->
432
442
433
- [testing-guidelines]: https://git.k8s.io/community/contributors/devel/sig-testing/testing.md
443
+ ##### Unit tests
444
+
445
+ <!--
446
+ In principle every added code should have complete unit test coverage, so providing
447
+ the exact set of tests will not bring additional value.
448
+ However, if complete unit test coverage is not possible, explain the reason of it
449
+ together with explanation why this is acceptable.
450
+ -->
451
+
452
+ <!--
453
+ Additionally, for Alpha try to enumerate the core package you will be touching
454
+ to implement this encement and provide the current unit coverage for those
455
+ in the form of:
456
+ - <package>: <date> - <current test coverage>
457
+ The data can be easily read from:
458
+ https://testgrid.k8s.io/sig-testing-canaries#ci-kubernetes-coverage-unit
459
+ This can inform certain test coverage improvements that we want to do before
460
+ extending the production code to implement this encement.
434
461
-->
435
462
436
- For alpha, unit tests will be included to ensure that v3 schemas are properly
437
- generated and published. A validator will also be used to ensure that the spec
438
- generated is valid OpenAPI v3.
463
+ This feature is primarily implemented in kube-openapi and unit tests, validation, benchmarks and fuzzing are added there. Some packages in k/k will be modified to capture the changes in kube-openapi and unit tests accompany them.
439
464
440
- A fuzzer and performance benchmark tests will also be included.
465
+ ` k8s.io/apiextensions-apiserver/pkg/controller/openapi/builder `
466
+ ` k8s.io/kube-aggregator/pkg/controllers/openapiv3/aggregator `
467
+
468
+ ##### Integration tests
469
+
470
+ <!--
471
+ This question should be filled when targeting a release.
472
+ For Alpha, describe what tests will be added to ensure proper quality of the encement.
473
+ For Beta and GA, add links to added tests together with links to k8s-triage for those tests:
474
+ https://storage.googleapis.com/k8s-triage/index.html
475
+ -->
476
+
477
+ Tests in the following directory:
478
+
479
+ - ` test/integration/apiserver/openapi/... ` : https://storage.googleapis.com/k8s-triage/index.html?test=TestOpenAPIV3
480
+
481
+ ##### e2e tests
482
+
483
+ <!--
484
+ This question should be filled when targeting a release.
485
+ For Alpha, describe what tests will be added to ensure proper quality of the encement.
486
+ For Beta and GA, add links to added tests together with links to k8s-triage for those tests:
487
+ https://storage.googleapis.com/k8s-triage/index.html
488
+ We expect no non-infra related flakes in the last month as a GA graduation criteria.
489
+ -->
490
+
491
+ Tests will be added to ensure that OpenAPI is present for all group versions.
441
492
442
493
### Graduation Criteria
443
494
@@ -781,6 +832,10 @@ memory. OpenAPI v3 will avoid aggregating the entire spec and only aggregate (if
781
832
necessary) per group/version, decreasing the runtime and memory usage to a
782
833
negligible amount.
783
834
835
+ ###### Can enabling / using this feature result in resource exhaustion of some node resources (PIDs, sockets, inodes, etc.)?
836
+
837
+ This feature strictly operates on the control plane and has no effect on node resources.
838
+
784
839
### Troubleshooting
785
840
786
841
<!-- This section must be completed when targeting beta to a release.
0 commit comments