dstack
dstack copied to clipboard
Simplify adding new Configurator implementation
Current Configurator interface and Configurator-related models have lots of components that allow for flexible backend configuration. The complexity that comes with Configurator flexibility makes it hard to implement new backends, especially for external contributors. We should consider making some of the Configurator functionality optional so that we don't lose the flexibility while simplifying the basic Configurator implementation.
Here's some steps that can be taken:
- Document the purpose of all Configurator-related models (
dstack/src/dstack/_internal/core/models/backends/__init__.py). - Make some Configurator methods optional (
get_default_configs(),get_config_values()). For example, ifget_config_values()is implemented, the backend will support interactive configuration and won't otherwise. - Make some Configurator-related models optional. For example, if
get_config_values()becomes optional, then*ConfigValuesand*ConfigInfoWithCredsPartialare optional. - Describe in the
How to add backendguide how to define Configurator-related models and what shortcuts that can be taken there.
This issue is stale because it has been open for 30 days with no activity.