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
* Discover and set instance's internal_ip (PodIP)
* Fix region mismatch
* Add `privileged: true` support
* [runner] Set RLIMIT_MEMLOCK to unlimited. Fixes issues with
InfiniBand/RDMA
Part-of: #3126
-**Offline providers** offer static machine configurations that are not frequently updated.
29
29
`gpuhunt` collects offline providers' instance offers on an hourly basis.
30
-
Examples: `aws`, `gcp`, `azure`, etc.
30
+
Examples: `aws`, `gcp`, `azure`, etc.
31
31
-**Online providers** offer dynamic machine configurations that are available at the very moment
32
32
when you fetch configurations (e.g., GPU marketplaces).
33
33
`gpuhunt` collects online providers' instance offers each time a `dstack` user provisions a new instance.
34
34
Examples: `tensordock`, `vastai`, etc.
35
35
36
36
### 1.3. Create the provider class
37
37
38
-
Create the provider class file under `src/gpuhunt/providers`.
38
+
Create the provider class file under `src/gpuhunt/providers`.
39
39
40
40
Make sure your class extends the [`AbstractProvider`](https://github.com/dstackai/gpuhunt/blob/main/src/gpuhunt/providers/__init__.py)
41
41
base class. See its docstrings for descriptions of the methods that your class should implement.
@@ -69,13 +69,13 @@ Refer to examples: [test_datacrunch.py](https://github.com/dstackai/gpuhunt/blob
69
69
70
70
### 1.6. Submit a pull request
71
71
72
-
Once the cloud provider is added, submit a pull request.
72
+
Once the cloud provider is added, submit a pull request.
73
73
74
74
> Anything unclear? Ask questions on the [Discord server](https://discord.gg/u8SmfwPpMd).
75
75
76
76
## 2. Integrate the cloud provider to dstackai/dstack
77
77
78
-
Once the provider is added to `gpuhunt`, we can proceed with implementing
78
+
Once the provider is added to `gpuhunt`, we can proceed with implementing
79
79
the corresponding backend with `dstack`. Follow the steps below.
80
80
81
81
### 2.1. Determine if you will implement a VM-based or a container-based backend
@@ -124,10 +124,10 @@ Then add these models to `AnyBackendConfig*` unions in [`src/dstack/_internal/co
124
124
125
125
The script also generates `*BackendStoredConfig` that extends `*BackendConfig` to be able to store extra parameters in the DB. By the same logic, it generates `*Config` that extends `*BackendStoredConfig` with creds and uses it as the main `Backend` and `Compute` config instead of using `*BackendConfigWithCreds` directly.
[azure](https://github.com/dstackai/dstack/blob/master/src/dstack/_internal/core/backends/azure/configurator.py), etc.
153
153
154
154
Register configurator by appending it to `_CONFIGURATOR_CLASSES` in [`src/dstack/_internal/core/backends/configurators.py`](https://github.com/dstackai/dstack/blob/master/src/dstack/_internal/core/backends/configurators.py).
@@ -181,6 +181,9 @@ The agent controls the VM and starts Docker containers for users' jobs.
181
181
Since `dstack` controls the entire VM, VM-based backends can support more features,
182
182
such as blocks, instance volumes, privileged containers, and reusable instances.
183
183
184
+
Note, all VM-based backend `Compute`s should sublass the `ComputeWithPrivilegedSupport` mixin,
185
+
as the `dstack-shim` agent provides this functionality OOTB.
186
+
184
187
To support a VM-based backend, `dstack` expects the following:
0 commit comments