feat(gpu): OVHcloud AI Training as a governed engine (server-side)#629
Merged
Conversation
… client keys)
Adds OVH AI Training (managed GPU batch jobs) as `--provider ovhai`. Governed:
the API submits the OVH job SERVER-SIDE via the signed OVH API using the org's
stored `ovhcloud` credential — the application/secret/consumer keys never reach
the client. COMMAND runs in --image on --gpu-count GPUs; the SDK polls + streams
status/logs; the job auto-stops when the command exits.
- API: gpu_provision.ovh_training_create/status/logs/terminate (reuses the
existing OVH signed-API helpers) + POST /gpu/ai-training/run + GET
/gpu/ai-training/{id}.
- SDK: GpuAPIClient.ovh_training_run/status, run_ovh_training_sync, `gpu run
--provider ovhai` routing. Guidance updated (no OVH volumes — data via
OpenRunner). Bumps 2.40.0.
- Tests (mocked OVH): job create body (no volumes), state mapping, log join, SDK
submit+stream.
NOTE: NOT deployed — the OVH /ai/job schema needs a live-account smoke test first.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The /ai-training endpoints were declared on the /gpu-prefixed router as '/gpu/ai-training/*' (would register at /gpu/gpu/...); corrected to '/ai-training/*'. Rebumps to 2.40.1 since #630 shipped 2.40.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
# Conflicts: # CHANGELOG.md # sdk/openrunner/__init__.py # sdk/openrunner/gpu/runner.py # sdk/pyproject.toml # src/api/app/api/v1/gpu.py
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adds OVHcloud AI Training (managed GPU batch jobs) as
--provider ovhai, completing the "no provider token on the client" model for OVH's AI service.Governed, server-side
openrunner gpu run --provider ovhai --image <img> --gpu-count N "<cmd>"→ the API signs the OVH call with the org's storedovhcloudcredential (application_key/secret/consumer_key) and submits/cloud/project/{sid}/ai/job. The OVH keys never reach the client. COMMAND runs in the image on N GPUs; the SDK polls/gpu/ai-training/{id}and streams status+logs; the job auto-stops on exit.No OVH object-storage
--volumemounts — data comes from OpenRunner (datasets/artifacts), per design.Changes
gpu_provision:ovh_training_create/status/logs/terminate(reuse the existing OVH signed-API helpers) +POST /gpu/ai-training/run+GET /gpu/ai-training/{id}.ovh_training_run/status,run_ovh_training_sync,gpu run --provider ovhai. Guidance updated. Bumps 2.40.0.The OVH
/ai/jobrequest/response shape follows the OVH API but I could not smoke-test it against a live OVH account (no keys here). Needs a live verification (field names:id,status.state,resources.gpu,/log,/kill) before enabling in prod. Opening as review-only.🤖 Generated with Claude Code