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.