Skip to content

How to maintain CRD version for the resources with 2 different active branches based on Kubernetes platform #130552

Open
@rameshganapathi

Description

@rameshganapathi

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

Install tools

Container runtime (CRI) and version (if applicable)

Related plugins (CNI, CSI, ...) and versions (if applicable)

Metadata

Metadata

Assignees

No one assigned

    Labels

    kind/supportCategorizes issue or PR as a support question.lifecycle/staleDenotes an issue or PR has remained open with no activity and has become stale.needs-sigIndicates an issue or PR lacks a `sig/foo` label and requires one.needs-triageIndicates an issue or PR lacks a `triage/foo` label and requires one.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions