Currently in this project, we use different apiversions for management of
different resources.
However, the frequency of change of different resources is not the same,
which leads to management confusion.

E.g

ApisixRoute -> v2beta2
ApisixUpstream -> v1
ApisixTls -> v1
ApisixConsumer -> v2alpha1
ApisixClusterConfig -> v2alpha1

Users who are not familiar with this project may be confused about this,
and because of the possible lag in the documentation, users may use the old
version.

This aspect will increase the user's learning cost. On the other hand, it
will increase the maintenance cost of the project.
We have to maintain mutual references of multiple resources in the code.

So I propose to use a unified CRD apiversion.

In order to achieve this, we can implement it step by step:`

Introduce the `v2beta3` apiversion in the APISIX Ingress v1.4, unify all
resources to this version, and deprecate all alpha version resources.

Release `v2` apiversion in APISIX Ingress v1.5 and mark all beta versions
as deprecated.

Reply via email to