-
Notifications
You must be signed in to change notification settings - Fork 432
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[proto] Add core api definitions as protobuf message #93
Conversation
- Add cluster, config and error api definition
// Required. Group name of the current worker group | ||
string group_name = 1; | ||
// Optional. The computeTemplate of head node group | ||
string compute_template = 2; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@chenk008 I change to string instead. WDYT? We can make this concept persisted and resuable. If we use message ComputeTemplate
, user need to fetch the object as well and they may modified the fields. I feel using reference key is easier
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It makes sense to me.
google.protobuf.Timestamp deleted_at = 8; | ||
} | ||
|
||
message ClusterSpec { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There're only HeadGroupSpec
and WorkerGroupSpec
object under ClusterSpec
, do you think this is helpful? We can also move HeadGroupSpec
and WorkerGroupSpec
directly to message Cluster
. I am ok with both way @chenk008
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes ,we can simplify it to move HeadGroupSpec
and WorkerGroupSpec
into Cluster
.
// Required field. This field indicates ray cluster configuration | ||
ClusterSpec cluster_spec = 6; | ||
|
||
// Output. The time that the Cluster created. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
In our downsteam version, we expose a service endpoint here. However, I feel it's kind of hard to write an endpoint since service expose dashboard, client, redis port. What's your opinion? @chenk008
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think it is required to expose head service endpoint. The devops platform will show the information.
this PR only shows the GRPC part, we need to discuss the GRPC interface, and whether it will be optional to expose and how? (via a flag, --grpc-interface=false)? The second point I have is about the image template, it seems to me we are mixing pipeline builds with operations. Can you please clarify why image template is part of an operator API? |
This would a separate backend service deployment. For people who are not familiar with kubernetes, they can use this service. the gprc service definition and gateway part would be a separate PR. @chenk008 gave some suggestion to split story into smaller chunks so people can pick them up from the issue list
@akanso I think this won't be operator API, but API on top of operator. We have a use case that data scientist doesn't like to build docker images by themselves, they like a tool/api to build the images so that don't have to write Dockerfile and manage container registry credential etc. The proto message here is to define API. Technically, we can build a gPRC service on top of it. the service can kick off a job to build images inside Kubernetes and automatically handles image uploads. In that case, user just need to let the service know which python package they need and it simplifies the user experiences. |
I think we need a design doc for this feature. |
@akanso That's a good idea. I will draft one and share with you guys. |
I think cluster related definition has corresponding design doc in #98 For the image part, it may worth creating a separate doc later. Currently, what I am thinking is to leverage https://github.com/GoogleContainerTools/kaniko + Docker Template to build images and managed tags/versions/ registry credential etc so user just need to fill the template without worrying about other stuff.
Steps
Template:
|
* Add protobuf core definitions - Add cluster, config and error api definition * Update protobuf definitions
Why are these changes needed?
Related issue number
Part of #53 #82
Checks
This is just api definition and we will test changes later with business logic together