Nebius Topology Provider

View as Markdown

The Nebius topology provider uses the Nebius AI Cloud SDK for Go. The Services().Compute().V1().Instance().List() method returns a list of compute instances for a specified project. Each instance may include a Status.InfinibandTopologyPath field, which is an array of three network IDs. If present, these IDs describe the path through the three-tier network, from the root switch down to the leaf switch.

To use the API, you must provide authorization. There are two ways to do this: using account credentials or an authorization token.

Using credentials:

Nebius credentials consist of the following fields:

  • projectId
  • serviceAccountId
  • publicKeyId
  • privateKey

The projectId field is optional. If it is omitted, the project ID is retrieved from /mnt/cloud-metadata/parent-id.

You can provide credentials either in the Topology configuration file or directly in the topology request payload.

Credentials via File

Store your credentials in a YAML file:

1projectId: <PROJECT-ID>
2serviceAccountId: <SERVICE-ACCOUNT-ID>
3publicKeyId: <PUBLIC-KEY-ID>
4privateKey: <PRIVATE-KEY>

Then reference this file in your Topograph config:

1http:
2 port: 49021
3 ssl: false
4
5provider: nebius
6engine: slurm
7
8credentialsPath: /path/to/credentials.yaml

Credentials via API Request Payload

Pass credentials directly in the topology request payload:

1{
2 "provider": {
3 "creds": {
4 "projectId": "PROJECT-ID",
5 "serviceAccountId": "<SERVICE-ACCOUNT-ID>",
6 "publicKeyId": "<PUBLIC-KEY-ID>",
7 "privateKey": "<PRIVATE-KEY>"
8 }
9 }
10}

Using authorization token

You can provide an authorization token in one of two ways:

  • Via the environment variable IAM_TOKEN
  • By placing the token in the file /mnt/cloud-metadata/token