Skip to content
This repository has been archived by the owner on Feb 1, 2022. It is now read-only.

Multi-version support in xgboost-operator #72

Closed
Jeffwan opened this issue May 14, 2020 · 10 comments · Fixed by #82
Closed

Multi-version support in xgboost-operator #72

Jeffwan opened this issue May 14, 2020 · 10 comments · Fixed by #82

Comments

@Jeffwan
Copy link
Member

Jeffwan commented May 14, 2020

Currently, xgboost uses v1alpha1 API and it has separate folder https://github.com/kubeflow/xgboost-operator/tree/master/pkg/apis/xgboostjob/v1alpha1

However, controller folder doesn't have multi-version at the beginning, https://github.com/kubeflow/xgboost-operator/tree/master/pkg/controller has one controller implementation.

In order to upgrade to v1 and use latest kubeflow/common, what's your options on multi-version support? Seems Ant financial and Tencent are using this in prod environment, it would be better to safely apply new breaking changes.

  1. only have new version of API like v1beta1 or v1, update controller implementation directly. This solution doesn't support multi-version, master won't be stable until we finish all the tests. If your environment has a stable version, I think it's still fine.

  2. have a new folder for controller like below, each version of controller will use corresponding API version. With this, user can still build an alpha version. In the meanwhile, we can make changes to beta or v1.

pkg/controller
   v1alpha1/
   v1beta1/
   v1/

Any thoughts?
@merlintang @terrytangyuan @hustcat

@issue-label-bot
Copy link

Issue-Label Bot is automatically applying the labels:

Label Probability
area/operator 0.72
kind/feature 0.88

Please mark this comment with 👍 or 👎 to give our bot feedback!
Links: app homepage, dashboard and code for this bot.

@merlintang
Copy link
Contributor

I check the TF-operator, it supports multiple version controller. https://github.com/kubeflow/tf-operator/tree/master/pkg. thus, if it is not too many works to do, we can implement the v1 version controller

@terrytangyuan
Copy link
Member

terrytangyuan commented May 14, 2020

Yes we should support multi version controllers which other operators are already doing. MPI Operator is improving its v1 controller as well that will be the candidate for graduation.

Maybe I can cut a v0.1.0 release first and then we can fork a v1 controller from the existing v1alpha1 controller?

@merlintang
Copy link
Contributor

yes, cut the release is good.

@Jeffwan
Copy link
Member Author

Jeffwan commented May 14, 2020

Yeah, cut a release will help, since project will have different folder for difference version, it's ok and we can still patch v1alpha1 version while working on v1 graduation.

So the plan is to graduate from v1alpha1 to v1 directly, no need to have v1beta, right?

@merlintang
Copy link
Contributor

merlintang commented May 14, 2020 via email

@terrytangyuan
Copy link
Member

Yeah, cut a release will help, since project will have different folder for difference version, it's ok and we can still patch v1alpha1 version while working on v1 graduation.

Exactly.

So the plan is to graduate from v1alpha1 to v1 directly, no need to have v1beta, right?

Yes.

@terrytangyuan
Copy link
Member

I just cut a release here: https://github.com/kubeflow/xgboost-operator/releases/tag/v0.1.0

This includes your recent fix on logs but excludes the bump of k8s and controller runtime version.

@Jeffwan
Copy link
Member Author

Jeffwan commented May 16, 2020

If anyone is interested in the migration, please leave a comment. Otherwise, I will pick it up.

@terrytangyuan
Copy link
Member

@Jeffwan I can help set up the folder structures and skeleton code of the v1 controller and then everyone in the community who are interested can work together on maturing it.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants