Description
What happened?
I have customers using 2 different releases say 1.x and 2.x.
In 1.x active branch we will be doing minor releases and patch releases like 1.1.1 (Patch release), 1.2.0 (Minor Release), 1.3.2 (Patch release) etc.; This is for customer 1. We need to support this customer with this branch for 3 years. We have to make CRD changes based on feature requests, enhancement request etc.; in this 1.x branch
Similarly in 2.x branch we will be doing minor and patch releases like 2.1.2 (Patch release), 2.3.0 (Minor release) etc.; This is for different customer 2. We need to support this customer with this branch for 3 years. We have to make CRD changes based on feature requests, enhancement requests etc.; from this customer in this 2.x branch.
We also have main branch where active development is going on for future customers in that also we will be making changes to CRD for different features.
Note : Both Minor and Patch releases are supposed to be stable version which customer deploys in production environment.
In this scenario how to handle CRD version for same CRD resource across different branches.
We understand that CRD version do not support semantic versioning and also, we do not want to use alpha, beta designations for these branches as these are production quality. We also need to handle the upgrade between Minor releases and Patch releases in which some upgrade might require webhook changes.
We request the community to shed us some light on solution recommendation for this scenario.
Thank you,
Warm Regards,
Ramesh.G
PS > My apologies for the ignorance if this is already solved problem.
What did you expect to happen?
Expect solution proposal from the community for the above problem statement.
How can we reproduce it (as minimally and precisely as possible)?
Have same CRD with 2-3 different active branches and try to maintain different versions across production releases.
Anything else we need to know?
No response
Kubernetes version
Latest K8S version also has this issue since semantic versioning is not supported in CRD.
Cloud provider
Internal deployment
OS version
# On Linux:
$ cat /etc/os-release
# paste output here
$ uname -a
# paste output here
# On Windows:
C:\> wmic os get Caption, Version, BuildNumber, OSArchitecture
# paste output here