This document provides guidance on extending and maintaining the Kyverno API
- https://kubernetes.io/docs/reference/using-api/api-concepts/
- https://kubernetes.io/docs/reference/using-api/
- https://kubernetes.io/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definition-versioning/
All Kyverno resources are currently defined in the kyverno.io
API group.
This kyverno.io
has the following versions:
- v1apha1
- v1apha2
- v1beta1
- v1
- v2Beta1
The v1
version is currently the preferred storage version, but is being deprecated.
The goal is to eventually make v2 the preferred version and remove all v1* versions.
New types should not be added to v1
but should be introduced as v2alpha1
and then promoted as they stabilize.
New attributes can be added to existing resources without impacting compatibility. They do not require a new version.
Attributes cannot be deleted in a version. They should be marked for deprecation and removed after 3 minor releases.
Attributes cannot be modified in a version. The existing attribute should be marked for deprecation and a new attribute should be added following version compatibity guidelines.
Within the API, newer versions can reference older stable types, but not the other way around. For example, a v1
resource should not refer to a v2alpha1
type. However, a v2alpha1
type can reference v1
types.