Skip to content

Commit 8774bae

Browse files
committed
Fix testing plan and add additional PRR question
1 parent 790dafa commit 8774bae

File tree

1 file changed

+70
-15
lines changed
  • keps/sig-api-machinery/2896-openapi-v3

1 file changed

+70
-15
lines changed

keps/sig-api-machinery/2896-openapi-v3/README.md

Lines changed: 70 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@ Architecture for cross-cutting KEPs). -->
7676
- [OpenAPI V3 Proto](#openapi-v3-proto)
7777
- [Clients](#clients)
7878
- [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)
7983
- [Graduation Criteria](#graduation-criteria)
8084
- [Alpha](#alpha)
8185
- [Beta](#beta)
@@ -416,28 +420,75 @@ kubectl will be updated to use OpenAPI V3.
416420

417421
### Test Plan
418422

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+
-->
420431

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.
424435

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
428437

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+
-->
432442

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.
434461
-->
435462

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.
439464

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.
441492

442493
### Graduation Criteria
443494

@@ -781,6 +832,10 @@ memory. OpenAPI v3 will avoid aggregating the entire spec and only aggregate (if
781832
necessary) per group/version, decreasing the runtime and memory usage to a
782833
negligible amount.
783834

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+
784839
### Troubleshooting
785840

786841
<!-- This section must be completed when targeting beta to a release.

0 commit comments

Comments
 (0)