We need to determine what versions of of Cassandra and k8s we will support and when we will deprecate support. We would like to obtain input from the community to ensure that we are not leaving anyone behind prematurely.
Note that support is what is under discussion, not availability. We intend that all built images will remain available, and, as a reminder, we are an open source project and the full history of the project remains available in Git for those who wish to build from source.
What we are addressing is whether new versions of k8ssandra will be guaranteed compatible with older versions of k8s and Cassandra. For example, when we release K8ssandra 1.4, what is the oldest version of Cassandra and Kubernetes that we should have tests for?
My proposals follow:
Cassandra
- We should support the latest patch version for the latest minor version, and the two latest major versions.
- As of now, this means we would support 3.11.11, 4.0.0.
- Once 4.1 is released, versions of k8ssandra released after 4.1 (for example, 1.4) deprecate support of 4.0.
- The next K8ssandra minor version release (1.5) would then remove support entirely (although things may continue to work, we would stop testing against 4.0 and would no longer fix bugs).
K8s
- We support k8s versions under support from the k8s project. This means that sometimes a k8s version may only be supported for as little as 12 months.
- We will trigger deprecation when a version is 3 minor versions behind latest, and remove support of versions 4 minor versions behind latest. This means if you tried to run K8ssandra under 1.19 as of now, you’d receive deprecation warnings.
- At present, we would support k8s 1.19 - 1.22, but we would plan to drop support of k8s 1.19 in K8ssandra 1.14.
- We should have full test coverage for all supported versions.
I would like to invoke lazy consensus with the 72 hour window for comment commencing now.