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
This directory contains the Nebius provider implementation for the compute package.
4
+
5
+
## Overview
6
+
7
+
The Nebius provider implements the CloudClient interface defined in `pkg/v1` to provide access to Nebius AI Cloud infrastructure. This implementation is based on the official Nebius API documentation at https://github.com/nebius/api and uses the Nebius Go SDK.
8
+
9
+
## Supported Features
10
+
11
+
Based on the Nebius API documentation, the following features are **SUPPORTED**:
12
+
13
+
### Instance Management
14
+
- ✅ **Create Instance**: `InstanceService.Create` in compute/v1/instance_service.proto
15
+
- ✅ **Get Instance**: `InstanceService.Get` and `InstanceService.GetByName`
16
+
- ✅ **List Instances**: `InstanceService.List` with pagination support
- ✅ **List Images**: `ImageService.List` with filtering support
35
+
36
+
### Quota Management
37
+
- ✅ **Get Quotas**: `QuotaAllowanceService` in quotas/v1/quota_allowance_service.proto
38
+
39
+
## Unsupported Features
40
+
41
+
The following features are **NOT SUPPORTED** (no clear API endpoints found):
42
+
43
+
### Instance Operations
44
+
- ❌ **Reboot Instance**: No reboot endpoint found in instance_service.proto
45
+
- ❌ **General Instance Updates**: Nebius InstanceService.Update exists but most InstanceSpec fields are immutable; only specific updates like tags and instance type are supported through dedicated CloudClient methods
46
+
47
+
### Volume Management
48
+
- ❌ **Resize Instance Volume**: Volume resizing not clearly documented
49
+
50
+
### Location Management
51
+
- ❌ **Get Locations**: No location listing service found
52
+
53
+
### Firewall Management
54
+
- ❌ **Firewall Rules**: Network security handled through VPC service, not instance-level firewall rules
55
+
56
+
## Implementation Approach
57
+
58
+
This implementation uses the `NotImplCloudClient` pattern for unsupported features:
59
+
- Supported features have TODO implementations with API service references
60
+
- Unsupported features return `ErrNotImplemented` (handled by embedded NotImplCloudClient)
61
+
- Full CloudClient interface compliance is maintained
62
+
63
+
## Nebius API
64
+
65
+
The provider integrates with the Nebius AI Cloud API:
66
+
- Base URL: `{service-name}.api.nebius.cloud:443` (gRPC)
67
+
- Authentication: Service account based (JWT tokens)
68
+
- SDK: `github.com/nebius/gosdk`
69
+
- Documentation: https://github.com/nebius/api
70
+
- API Type: Locational (location-specific endpoints)
71
+
72
+
## Key Features
73
+
74
+
Nebius AI Cloud is known for:
75
+
- GPU instances and GPU clusters for AI/ML workloads
76
+
- Comprehensive compute, storage, and networking services
77
+
- gRPC-based API with strong typing
78
+
- Service account authentication with JWT tokens
79
+
- Location-specific API endpoints
80
+
- Advanced operations tracking and idempotency
81
+
- Integration with VPC, IAM, billing, and quota services
82
+
- Container registry and managed services
83
+
84
+
## TODO
85
+
86
+
-[ ] Implement actual API integration for supported features
87
+
-[ ] Add proper service account authentication handling
88
+
-[ ] Add comprehensive error handling and retry logic
89
+
-[ ] Add logging and monitoring
90
+
-[ ] Add comprehensive testing
91
+
-[ ] Investigate VPC integration for networking features
92
+
-[ ] Verify instance type changes work correctly via ResourcesSpec.preset field
0 commit comments