Skip to content

Implement gRPC API#91

Draft
anmazzotti wants to merge 4 commits intorancher-sandbox:mainfrom
anmazzotti:implement-grpc-api
Draft

Implement gRPC API#91
anmazzotti wants to merge 4 commits intorancher-sandbox:mainfrom
anmazzotti:implement-grpc-api

Conversation

@anmazzotti
Copy link
Collaborator

Very early gRPC API implementation.

The goal of this API is to provide a better way to reconcile remote hosts.
Currently this is performed by polling the Elemental HTTP API every 10s by default.

A bi-directional gRPC stream can be used instead to reduce the exchange of data to a bare minimum.
The server will only propagate new ElementalHost generations.
The client can only send updates when machine mutation occur.

The drawback from using gRPC are:

  1. Machines need to keep a TCP connection alive. This could be hard when network is unstable. This really depends on the gRPC stream handshake cost compared to the HTTP patch request
  2. provider rollouts will break all connections on pod shutdown, and just after all agents will try to re-connect at the same time

Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
Signed-off-by: Andrea Mazzotti <andrea.mazzotti@suse.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant