feat: Make list of supported built-in runtime server types overridable #220
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.
Motivation
Model-mesh serving makes use of a single adapter image to interface with a number of "built-in" model server types, currently comprising
triton
,mlserver
,ovms
.Currently which kind of adapter to run is controlled by the entrypoint to the adapter container within the modelmesh pods, which is set by the controller based on the
builtInAdapter.serverType
field of theServingRuntime
CRD.However this is currently validated against a hardcoded list of type strings meaning that any extensions to the runtime adapter image to support new kinds of model servers also require a code change and rebuild of the controller image.
Modifications
Move the list of supported built-in server types to a list in the global config.
Update controller validation logic and tests accordingly.
Result
The shared built-in runtime adapter can be extended to support new runtime types without requiring a code change to the controller.