-
Notifications
You must be signed in to change notification settings - Fork 24
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
API versioning #14
Comments
An idea would be to send the version with the AgentHello and decline agent connections with an unsupported version. |
As a first step we separate the communication between server and agent on the one hand and the control interface on the other hand in #172. |
Currently there is a very strange error message when the version of the ❯ ./ank get workloads
error: Failed to get workloads: 'Command failed: 'Failed to get complete state.
Error: Channel preliminary closed.'' In this case server and agent are v0.3.1 and Especially when there are different ways of installing server/agent and CLI this problem gets severe (e.g. when using #308). |
We at least need a concept here. |
For agents the version can be added to the Option 1:We could add a Option 2:The version can be added to the |
Current CLI behaviorThe Possible third party apps docking at the server command interface (CLI interface currently)If a third party app docks at the API to which the CLI currently connects (can be done if one wants to control Ankaios from the outside rather then from the inside using the Control Interface) the connection would also be maintained until the third party app exits (which is probably when the system is going down). Decision about versioning for the server command interfaceComparing option 1 and 2 from above and taking into account how connections are used to control the Ankaios server from outside of the cluster, it seems like option 1 sending a Control Interface versioningAs the users of the Control Interface would probably also be a small subset of workloads that are connected all the time and regularly send/receive data, it would also make more sense to add a single, initial
|
@christoph-hamm, @windsource, maybe you can have a look at the concept above and share your thoughts. |
Although I think that adding the version to the |
As we are not expecting an response with every |
I also tried to work with the semver crate for the versions, but as we need to convert multiple times from and to proto, I have to represent the version in proto:
I'll just go one step back, regard the version as string all over the place and check compatibility with a regex. This is kind of old-school, but pragmatic when taking into account the current code base. |
All done. |
Reported by @lingnoi:
Description
Currently the communication between agent/cli and server is done using the API definition in ankaios.proto. The same is used for the communication through the control interface.
Now consider the following problem:
Goals
Tasks
tbd.
The text was updated successfully, but these errors were encountered: