Description
Problem
Some volume mounts are not crucial for runs, e.g. if they are only used for caching. However, specifying such mounts in the run configuration limits the backends and regions available for the run, so the best offers can be filtered out.
Example 1 (instance volumes). I am using an instance volume for caching. This limits my run to VM-based backends. But I actually don't mind running the configuration on container-based backends without mounting a volume if these backends provide better offers.
Example 2 (network volumes). I am using RunPod volumes for caching. I created a volume in a few regions that I use the most and specified them in a single mount point in my run configuration. This limits my run to the regions where I have a volume. But I actually don't mind running the configuration in other regions without mounting a volume if these regions provide better offers.
Solution
Add a new boolean field optional
to volume mounts in run configurations.
type: dev-environment
ide: vscode
volumes:
- instance_path: /dstack-cache/pip
path: /root/.cache/pip
optional: true
The field can be set for both:
- instance volume mounts
- network volume mounts
If a mount is optional: false
(the default), the configuration can only run in the backends and regions where this mount is available, the volume is always mounted.
If a mount is optional: true
, the configuration can run in any backends and regions, the volume is only mounted if it is available in the chosen backend and region.
Workaround
Apply the run configuration with and without volume mounts, compare the offers, decide if you want to run with or without volumes.
Would you like to help us implement this feature by sending a PR?
Yes