• Stefy Lanza (nextime / spora )'s avatar
    runpod: global volumes and a region allow-list (v0.3.0) · 88edb84f
    Stefy Lanza (nextime / spora ) authored
    Weights in one place, pods wherever a card is free.
    
    `global_volume_id` attaches a RunPod GLOBAL volume (beta since Sept 2026):
    region-independent storage, so unlike `network_volume_id` it does NOT pin the
    pod's data centre — which is the only reason to use one. Resolved by its own
    function precisely so the two cannot be confused: the region lookup stays under
    the network-volume branch, and a test holds them apart.
    
    `data_centers` is the other half. A single `data_center` pins one region and a
    blank one lets RunPod pick any region on earth, so there was no way to say
    "anywhere in the EU" — which is what data that may not leave the EU requires.
    The list is tried in order, and each (card, region) pair becomes its own
    candidate so the capacity fallback that already walks GPU options walks regions
    too, with no new control flow. The pod handle records the region it actually
    got, not the pool's first choice.
    
    Two honest limits, both documented in the code and the guide. A global volume
    must be created in the RunPod CONSOLE: POST /v2/network-volumes allows only
    STANDARD|HIGH_PERFORMANCE and demands a dataCenter. And attaching is
    console-documented only — no field exists in the Pod API reference, and the v1
    REST validator accepts unknown body keys silently, so a wrong name cannot be
    caught by probing; it yields a pod with no volume that re-downloads its
    weights. We send globalNetworkVolumeId, overridable by
    CODERAI_RUNPOD_GLOBAL_VOLUME_FIELD, and it must be verified on a real pod.
    Co-Authored-By: 's avatarClaude Opus 5 <noreply@anthropic.com>
    88edb84f
test_runpod_fleet_status.py 4.15 KB