Replies: 8 comments 6 replies
-
There is still lots to unpack here, I'll make sure to update the post as we make some progress during community meetings. |
Beta Was this translation helpful? Give feedback.
-
Thank you @vincepri for everything you've done over the past few years to get us to this point! |
Beta Was this translation helpful? Give feedback.
-
recording of today's office hours where this was discussed: https://www.youtube.com/watch?v=WmCXrMRIsGY |
Beta Was this translation helpful? Give feedback.
-
The one place that we haven't is Rule #4a here: https://kubernetes.io/docs/reference/using-api/deprecation-policy/ Specifically:
We have been operating somewhere between Alpha and Beta here in that we support conversion from the n-1 release for the purposes of upgrades. If we are to adhere to the upstream Beta API policy, we would have to maintain conversion support for older versions much longer than we do today, and have to support more than just the upgrade use case, but also external components interacting with the older types. If things were primarily changing within specific types (or moving common fields shared by child types to parent types), this wouldn't cause me too much hesitation, as we could generally recreate the data as needed. I'm not sure there is an answer when we are adding new abstractions or moving functionality from one abstraction to another (like the introduction of the Control Plane provider in v1alpha3, the proposed LoadBalancer provider, etc). Are we willing to say that we are done building new abstractions and/or going to require any new abstractions provide forward/backwards compatible conversions that would support the 3 release deprecation policy? |
Beta Was this translation helpful? Give feedback.
-
I also think it's important to discuss how beta or GA (and the respective stability guarantees) are handled in various providers. While I think that most of the providers are currently keeping up with the main project, I'm not entirely sure all can / have enough maintainers to do so. For example, in CAPO we're imho currently able to keep up with the main project. But I think it will be probably a completely different discussion, if we have to keep up with the main project and also have to provide stability guarantees for example of 3 releases (I guess we're talking about probably a year) including up and downwards compatibility. I want to emphasize, that in my opinion, this should not block the main project and the providers, which are able to do so, from graduating to beta or GA and provide stability guarantees accordingly. I just think we should consider the variance we have between providers regarding production readiness and ability to maintain long term stability guarantees. It's probably enough to have ClusterAPI-wide guidelines what alpha/beta/GA means and individual providers can graduate accordingly on their own pace. |
Beta Was this translation helpful? Give feedback.
-
With the outstanding work in Cluster Class, Load Balancer Provider, etc., do we still feel like we are going to hit a beta by the end of the year? Would we want to have a alpha5 release with Cluster Class to get some mileage prior to cutting beta1? This might be an unpopular point of view, but we may have to draw a line for big feature work and be strict with our cutoff dates if we are going to meet our goal of getting to beta by the end of the year, or more agressively, by KubeCon US. |
Beta Was this translation helpful? Give feedback.
-
cross-referencing the mailing list thread: https://groups.google.com/g/kubernetes-sig-cluster-lifecycle/c/YBCBJzTO1o8?pli=1
|
Beta Was this translation helpful? Give feedback.
-
We are on v1beta1 since some time now, but we forgot to close this discussion! |
Beta Was this translation helpful? Give feedback.
-
Hi everyone,
Let's chat about our roadmap to v1beta1 APIs and v1.0 🚀 . In the past few years we've gone through several iterations of our alpha APIs:
Our projects has been effectively operating like a GA project, most of our APIs have been supported for 1 year (or more in the case of v1alpha3), and we've started providing conversion webhooks between our types starting from v1alpha2.
While there is still lots to do, we've heard multiple feedback coming from different sources that new users don't necessarily trust the "alpha" in our API versioning, which makes total sense. If one is building a new production project, why trust an alpha API?
As we focus more on stability and keep our foundations in place, I'd like to put forward a plan to get to v1beta1 and release our 1.0 (!!) release by KubeCon US this year.
How would we get to v1beta1?
So far, we've always planned a roadmap based on the features we wanted to build. This time around, a possible alternative would be to instead focus on the lingering issues and technical debt. What's missing in the current APIs? How do we setup ourselves for success? What's currently missing in Cluster API to be a production ready environment?
What about new features? Let's pick a few good ones that are the most pressing and the most important.
Our current processes and compatibility promises don't need to change. Truthfully, we've been operating at a beta level (by Kubernetes definition, minor some bits) for quite a while. The only thing left for us is to make it official.
Thoughts, questions, concerns?
Let's open this discussion up and please bring your thoughts to the table. We'd like to hear from you if you're contributing today, just using or exploring Cluster API. Feedback is welcome!
Beta Was this translation helpful? Give feedback.
All reactions