Cross-version compatibility tests #5092
Labels
kind/feature
Categorizes issue or PR as related to a new feature.
kind/test-coverage
Categorizes issue or PR as related to a gap in or problem with our test coverage.
needs-triage
Indicates an issue or PR lacks a `triage/foo` label and requires one.
priority/important-longterm
Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Eschewed features
What would you like to have added?
A test suite along the lines of https://github.com/kubernetes/api/tree/master/testdata for the Kustomization type. It could also cover Component, though that uses the same struct at time of writing. Ideally it would also cover built-in transformer types as well, since their schemas are effectively exposed through the generators/transformers fields.
Why is this needed?
To prevent backwards-incompatible and breaking changes from being made to a given version of our APIs (types) across kustomize CLI and module versions. The change in the meaning of the
patches
is a historical example of what this should prevent:kubernetes/kubernetes#116598 (comment)
Can you accomplish the motivating task without this feature, and if so, how?
We're currently relying on maintainers knowing the rules and catching violations in code review.
What other solutions have you considered?
If we only need to cover the one core type, maybe we could do something more crude more quickly? Like copy the type as is somewhere and have a test fail with a message about the API change policies to try to help reviewers notice?
Anything else we should know?
No response
Feature ownership
The text was updated successfully, but these errors were encountered: