Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 1 addition & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,10 +61,7 @@ See [SECURITY.md](docs/SECURITY.md) for complete security specifications and imp
- **NVIDIA Cloud Partners (NCPs)** looking to offer Brev-compatible GPU compute
- **Infra teams** building cluster-aware systems or abstractions on raw compute
- **Cloud providers** interested in contributing to a shared interface for accelerated compute

---

---
- **Compute brokers & marketplaces (aggregators)** offering multi-cloud compute

## Documentation

Expand Down
14 changes: 14 additions & 0 deletions docs/how-to-add-a-provider.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,20 @@ Patterns to follow:

---

---
## Compute Brokers & Marketplaces (Aggregators)

This SDK supports providers that aggregate compute from multiple upstream sources (multi-cloud brokers, marketplaces, or exchanges). When implementing an aggregator, use these to differentiate where the compute comes from while keeping the interface consistent:

- Provider (CloudProviderID): Identify your aggregator (e.g., "mybroker"). If you expose underlying vendors, include that metadata on returned resources (e.g., tags/labels) or encode it in stable IDs that you control.
- Location and SubLocation: Map upstream regions/zones into `Location` and `SubLocation` so users can choose placement consistently across sources. For example, `Location="us-west"` and `SubLocation="vendorA/zone-2"` or `SubLocation="sv15/DC3"` for finer placement.
- InstanceType IDs: If upstream vendors don’t provide stable, cross-market IDs, generate stable IDs using `MakeGenericInstanceTypeID` and include upstream hints in IDs or metadata. Ensure stability over time to avoid breaking consumers.
- InstanceType attributes (recommended): Use instance type attributes to delineate behavior differences across upstream sources (e.g., performance, network, storage, locality). There is also a `provider` attribute on the instance type you can use to indicate the originating vendor/source.

Notes:
- Capabilities represent what your broker can support. Differences between upstream vendors should be reflected in instance type attributes rather than reducing declared capabilities to the lowest common denominator.
- Keep your `Location`/`SubLocation` stable even if upstream identifiers change; translate upstream → broker-stable naming.
- Conform to the default-deny inbound model; document any upstream limitations under `internal/{provider}/SECURITY.md`.
## Directory Layout

Create a new provider folder:
Expand Down
Loading