feat: controlplane gateway API + CLI, part 0 - skeleton #17
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR brings the skeleton of the control plane and tries to tie together the CLI, control plane, shared data structures and the data plane.
There are three parts:
The first one - the controlplane initializes its gRPC gateway, runs built-in modules, which we decided to put into a single binary, waits them to be registered and then just proxies all requests to them.
Also there are several utility services, such as logging, that allows to dynamically change logging level.
Proxying is implemented without gRPC reflection, but this can be changed later. For now, we just proxy each request to a module to the module itself, but we will change this in the near future by implementing a transactional API.
CLI is implemented as a separate set of binaries united under the core one, which also proxies command-line arguments to a specific one.