You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When 3rd party registers custom proto models (for 3rd party plugins), they have not the ability to use Configurator service (or agentctl config) to configure the agent remotely.
This is because the ConfiguratorService uses pre-defined proto message Config for retrieving or modifyng the configuration and it contains only configuration(models) in the official vpp-agent. For it to be able to use it for custom models, users would need to edit the proto file definition which could only be done via forking the vpp-agent repo which is not maintainable.
Solution
Agentctl uses non-generic configurator. We should change it to generic client configurator that could use its known models method from API that contains also 3rd party models (they are registered). Then transform the models into proto-generated go structures(using dynamic tool) that can be used with generic configuration client (see example) to configure it the same way as before but with 3rd party models. We need also write conversion in opposite direction (proto-generated go struct to model from known models) to replace configuration client in whole agentctl's config submodule.
Considered Alternatives
Add repeated google.proto.Any field to the Config message in the configurator.proto model that could contain 3rp party custom models
Problems with supporting 2 ways how to configure data, mixing dynamic/static configuration (possible setting of static part in with dynamic configuration=problem), it doesn't solve future additions in existing configurations (for agentctl yaml config update)
The text was updated successfully, but these errors were encountered:
Problem
When 3rd party registers custom proto models (for 3rd party plugins), they have not the ability to use
Configurator
service (oragentctl config
) to configure the agent remotely.This is because the
ConfiguratorService
uses pre-defined proto messageConfig
for retrieving or modifyng the configuration and it contains only configuration(models) in the official vpp-agent. For it to be able to use it for custom models, users would need to edit the proto file definition which could only be done via forking the vpp-agent repo which is not maintainable.Solution
Agentctl uses non-generic configurator. We should change it to generic client configurator that could use its known models method from API that contains also 3rd party models (they are registered). Then transform the models into proto-generated go structures(using dynamic tool) that can be used with generic configuration client (see example) to configure it the same way as before but with 3rd party models. We need also write conversion in opposite direction (proto-generated go struct to model from known models) to replace configuration client in whole agentctl's config submodule.
Considered Alternatives
google.proto.Any
field to theConfig
message in the configurator.proto model that could contain 3rp party custom modelsProblems with supporting 2 ways how to configure data, mixing dynamic/static configuration (possible setting of static part in with dynamic configuration=problem), it doesn't solve future additions in existing configurations (for agentctl yaml config update)
The text was updated successfully, but these errors were encountered: