dstack icon indicating copy to clipboard operation
dstack copied to clipboard

Simplify adding new Configurator implementation

Open r4victor opened this issue 1 year ago • 1 comments

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:

  1. Document the purpose of all Configurator-related models (dstack/src/dstack/_internal/core/models/backends/__init__.py).
  2. Make some Configurator methods optional (get_default_configs(), get_config_values()). For example, if get_config_values() is implemented, the backend will support interactive configuration and won't otherwise.
  3. Make some Configurator-related models optional. For example, if get_config_values() becomes optional, then *ConfigValues and *ConfigInfoWithCredsPartial are optional.
  4. Describe in the How to add backend guide how to define Configurator-related models and what shortcuts that can be taken there.

r4victor avatar Feb 12 '24 11:02 r4victor

This issue is stale because it has been open for 30 days with no activity.

peterschmidt85 avatar Mar 14 '24 01:03 peterschmidt85