skypilot-nightly 1.0.0.dev20250320__tar.gz → 1.0.0.dev20250322__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {skypilot_nightly-1.0.0.dev20250320/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250322}/PKG-INFO +16 -7
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/README.md +5 -6
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/cloudflare.py +16 -5
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/kubernetes.py +2 -1
- skypilot_nightly-1.0.0.dev20250322/sky/adaptors/nebius.py +232 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/cloud_vm_ray_backend.py +3 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/benchmark/benchmark_utils.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/check.py +114 -114
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/cloud_stores.py +66 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/aws.py +14 -7
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/azure.py +13 -6
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/cloud.py +34 -10
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/cudo.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/do.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/fluidstack.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/gcp.py +8 -9
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/ibm.py +15 -6
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/kubernetes.py +3 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/lambda_cloud.py +3 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/nebius.py +59 -11
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/oci.py +15 -6
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/paperspace.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/runpod.py +7 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/scp.py +3 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/kubernetes_catalog.py +3 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/vast.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/vsphere.py +3 -2
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/core.py +6 -4
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/data_transfer.py +75 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/data_utils.py +34 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/mounting_utils.py +18 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/storage.py +540 -10
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/storage_utils.py +102 -84
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/exceptions.py +2 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/global_user_state.py +12 -33
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/core.py +1 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/utils.py +5 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/optimizer.py +10 -5
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/resources.py +6 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/setup_files/dependencies.py +3 -1
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/task.py +16 -5
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/command_runner.py +2 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/controller_utils.py +8 -5
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/gpu_labeler.py +4 -4
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/kubernetes_deploy_utils.py +4 -3
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322/skypilot_nightly.egg-info}/PKG-INFO +16 -7
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/requires.txt +5 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_global_user_state.py +2 -1
- skypilot_nightly-1.0.0.dev20250320/sky/adaptors/nebius.py +0 -110
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/dashboard_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20250322
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -108,6 +108,11 @@ Provides-Extra: vsphere
|
|
108
108
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
|
109
109
|
Provides-Extra: nebius
|
110
110
|
Requires-Dist: nebius>=0.2.0; extra == "nebius"
|
111
|
+
Requires-Dist: urllib3<2; extra == "nebius"
|
112
|
+
Requires-Dist: awscli>=1.27.10; extra == "nebius"
|
113
|
+
Requires-Dist: botocore>=1.29.10; extra == "nebius"
|
114
|
+
Requires-Dist: boto3>=1.26.1; extra == "nebius"
|
115
|
+
Requires-Dist: colorama<0.4.5; extra == "nebius"
|
111
116
|
Provides-Extra: all
|
112
117
|
Requires-Dist: urllib3<2; extra == "all"
|
113
118
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
@@ -151,6 +156,11 @@ Requires-Dist: azure-common; extra == "all"
|
|
151
156
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
152
157
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
153
158
|
Requires-Dist: nebius>=0.2.0; extra == "all"
|
159
|
+
Requires-Dist: urllib3<2; extra == "all"
|
160
|
+
Requires-Dist: awscli>=1.27.10; extra == "all"
|
161
|
+
Requires-Dist: botocore>=1.29.10; extra == "all"
|
162
|
+
Requires-Dist: boto3>=1.26.1; extra == "all"
|
163
|
+
Requires-Dist: colorama<0.4.5; extra == "all"
|
154
164
|
Dynamic: author
|
155
165
|
Dynamic: classifier
|
156
166
|
Dynamic: description
|
@@ -222,8 +232,8 @@ SkyPilot **unifies multiple clusters, clouds, and hardware**:
|
|
222
232
|
|
223
233
|
SkyPilot **cuts your cloud costs & maximizes GPU availability**:
|
224
234
|
* Autostop: automatic cleanup of idle resources
|
225
|
-
* [
|
226
|
-
*
|
235
|
+
* [Spot instance support](https://docs.skypilot.co/en/latest/examples/managed-jobs.html#running-on-spot-instances): 3-6x cost savings, with preemption auto-recovery
|
236
|
+
* Intelligent scheduling: automatically run on the cheapest & most available infra
|
227
237
|
|
228
238
|
SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code changes.
|
229
239
|
|
@@ -238,6 +248,9 @@ To get the latest features and fixes, use the nightly build or [install from sou
|
|
238
248
|
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]"
|
239
249
|
```
|
240
250
|
|
251
|
+
<p align="center">
|
252
|
+
<img src="docs/source/_static/intro.gif" alt="SkyPilot">
|
253
|
+
</p>
|
241
254
|
|
242
255
|
Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
|
243
256
|
RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
|
@@ -300,10 +313,6 @@ SkyPilot then performs the heavy-lifting for you, including:
|
|
300
313
|
4. Run the task's `setup` commands to prepare the VM for running the task
|
301
314
|
5. Run the task's `run` commands
|
302
315
|
|
303
|
-
<p align="center">
|
304
|
-
<img src="https://i.imgur.com/TgamzZ2.gif" alt="SkyPilot Demo"/>
|
305
|
-
</p>
|
306
|
-
|
307
316
|
|
308
317
|
See [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
|
309
318
|
|
@@ -61,8 +61,8 @@ SkyPilot **unifies multiple clusters, clouds, and hardware**:
|
|
61
61
|
|
62
62
|
SkyPilot **cuts your cloud costs & maximizes GPU availability**:
|
63
63
|
* Autostop: automatic cleanup of idle resources
|
64
|
-
* [
|
65
|
-
*
|
64
|
+
* [Spot instance support](https://docs.skypilot.co/en/latest/examples/managed-jobs.html#running-on-spot-instances): 3-6x cost savings, with preemption auto-recovery
|
65
|
+
* Intelligent scheduling: automatically run on the cheapest & most available infra
|
66
66
|
|
67
67
|
SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code changes.
|
68
68
|
|
@@ -77,6 +77,9 @@ To get the latest features and fixes, use the nightly build or [install from sou
|
|
77
77
|
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]"
|
78
78
|
```
|
79
79
|
|
80
|
+
<p align="center">
|
81
|
+
<img src="docs/source/_static/intro.gif" alt="SkyPilot">
|
82
|
+
</p>
|
80
83
|
|
81
84
|
Current supported infra: Kubernetes, AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack,
|
82
85
|
RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai,
|
@@ -142,10 +145,6 @@ SkyPilot then performs the heavy-lifting for you, including:
|
|
142
145
|
4. Run the task's `setup` commands to prepare the VM for running the task
|
143
146
|
5. Run the task's `run` commands
|
144
147
|
|
145
|
-
<p align="center">
|
146
|
-
<img src="https://i.imgur.com/TgamzZ2.gif" alt="SkyPilot Demo"/>
|
147
|
-
</p>
|
148
|
-
|
149
148
|
|
150
149
|
See [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
|
151
150
|
|
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = '139a09e3445956740743049d352cd1cb6d202479'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250322'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
{skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/cloudflare.py
RENAMED
@@ -6,7 +6,9 @@ import os
|
|
6
6
|
import threading
|
7
7
|
from typing import Dict, Optional, Tuple
|
8
8
|
|
9
|
+
from sky import exceptions
|
9
10
|
from sky.adaptors import common
|
11
|
+
from sky.clouds import cloud
|
10
12
|
from sky.utils import annotations
|
11
13
|
from sky.utils import ux_utils
|
12
14
|
|
@@ -23,7 +25,6 @@ R2_CREDENTIALS_PATH = '~/.cloudflare/r2.credentials'
|
|
23
25
|
R2_PROFILE_NAME = 'r2'
|
24
26
|
_INDENT_PREFIX = ' '
|
25
27
|
NAME = 'Cloudflare'
|
26
|
-
SKY_CHECK_NAME = 'Cloudflare (for R2 object store)'
|
27
28
|
|
28
29
|
|
29
30
|
@contextlib.contextmanager
|
@@ -130,8 +131,8 @@ def client(service_name: str, region):
|
|
130
131
|
@common.load_lazy_modules(_LAZY_MODULES)
|
131
132
|
def botocore_exceptions():
|
132
133
|
"""AWS botocore exception."""
|
133
|
-
from botocore import exceptions
|
134
|
-
return
|
134
|
+
from botocore import exceptions as boto_exceptions
|
135
|
+
return boto_exceptions
|
135
136
|
|
136
137
|
|
137
138
|
def create_endpoint():
|
@@ -148,8 +149,18 @@ def create_endpoint():
|
|
148
149
|
return endpoint
|
149
150
|
|
150
151
|
|
151
|
-
def check_credentials(
|
152
|
-
|
152
|
+
def check_credentials(
|
153
|
+
cloud_capability: cloud.CloudCapability) -> Tuple[bool, Optional[str]]:
|
154
|
+
if cloud_capability == cloud.CloudCapability.COMPUTE:
|
155
|
+
# for backward compatibility,
|
156
|
+
# we check storage credentials for compute.
|
157
|
+
# TODO(seungjin): properly return not supported error for compute.
|
158
|
+
return check_storage_credentials()
|
159
|
+
elif cloud_capability == cloud.CloudCapability.STORAGE:
|
160
|
+
return check_storage_credentials()
|
161
|
+
else:
|
162
|
+
raise exceptions.NotSupportedError(
|
163
|
+
f'{NAME} does not support {cloud_capability}.')
|
153
164
|
|
154
165
|
|
155
166
|
def check_storage_credentials() -> Tuple[bool, Optional[str]]:
|
{skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/kubernetes.py
RENAMED
@@ -79,10 +79,11 @@ def _load_config(context: Optional[str] = None):
|
|
79
79
|
' If you were running a local Kubernetes '
|
80
80
|
'cluster, run `sky local up` to start the cluster.')
|
81
81
|
else:
|
82
|
+
kubeconfig_path = os.environ.get('KUBECONFIG', '~/.kube/config')
|
82
83
|
err_str = (
|
83
84
|
f'Failed to load Kubernetes configuration for {context!r}. '
|
84
85
|
'Please check if your kubeconfig file exists at '
|
85
|
-
f'
|
86
|
+
f'{kubeconfig_path} and is valid.\n{suffix}')
|
86
87
|
err_str += '\nTo disable Kubernetes for SkyPilot: run `sky check`.'
|
87
88
|
with ux_utils.print_exception_no_traceback():
|
88
89
|
raise ValueError(err_str) from None
|
@@ -0,0 +1,232 @@
|
|
1
|
+
"""Nebius cloud adaptor."""
|
2
|
+
import os
|
3
|
+
import threading
|
4
|
+
from typing import Optional
|
5
|
+
|
6
|
+
from sky.adaptors import common
|
7
|
+
from sky.utils import annotations
|
8
|
+
from sky.utils import ux_utils
|
9
|
+
|
10
|
+
NEBIUS_TENANT_ID_FILENAME = 'NEBIUS_TENANT_ID.txt'
|
11
|
+
NEBIUS_IAM_TOKEN_FILENAME = 'NEBIUS_IAM_TOKEN.txt'
|
12
|
+
NEBIUS_PROJECT_ID_FILENAME = 'NEBIUS_PROJECT_ID.txt'
|
13
|
+
NEBIUS_CREDENTIALS_FILENAME = 'credentials.json'
|
14
|
+
NEBIUS_TENANT_ID_PATH = '~/.nebius/' + NEBIUS_TENANT_ID_FILENAME
|
15
|
+
NEBIUS_IAM_TOKEN_PATH = '~/.nebius/' + NEBIUS_IAM_TOKEN_FILENAME
|
16
|
+
NEBIUS_PROJECT_ID_PATH = '~/.nebius/' + NEBIUS_PROJECT_ID_FILENAME
|
17
|
+
NEBIUS_CREDENTIALS_PATH = '~/.nebius/' + NEBIUS_CREDENTIALS_FILENAME
|
18
|
+
|
19
|
+
DEFAULT_REGION = 'eu-north1'
|
20
|
+
|
21
|
+
NEBIUS_PROFILE_NAME = 'nebius'
|
22
|
+
|
23
|
+
MAX_RETRIES_TO_DISK_CREATE = 120
|
24
|
+
MAX_RETRIES_TO_INSTANCE_STOP = 120
|
25
|
+
MAX_RETRIES_TO_INSTANCE_START = 120
|
26
|
+
MAX_RETRIES_TO_INSTANCE_READY = 240
|
27
|
+
|
28
|
+
MAX_RETRIES_TO_DISK_DELETE = 120
|
29
|
+
MAX_RETRIES_TO_INSTANCE_WAIT = 120 # Maximum number of retries
|
30
|
+
|
31
|
+
POLL_INTERVAL = 5
|
32
|
+
|
33
|
+
_iam_token = None
|
34
|
+
_sdk = None
|
35
|
+
_tenant_id = None
|
36
|
+
_project_id = None
|
37
|
+
|
38
|
+
_IMPORT_ERROR_MESSAGE = ('Failed to import dependencies for Nebius AI Cloud.'
|
39
|
+
'Try pip install "skypilot[nebius]"')
|
40
|
+
|
41
|
+
nebius = common.LazyImport(
|
42
|
+
'nebius',
|
43
|
+
import_error_message=_IMPORT_ERROR_MESSAGE,
|
44
|
+
# https://github.com/grpc/grpc/issues/37642 to avoid spam in console
|
45
|
+
set_loggers=lambda: os.environ.update({'GRPC_VERBOSITY': 'NONE'}))
|
46
|
+
boto3 = common.LazyImport('boto3', import_error_message=_IMPORT_ERROR_MESSAGE)
|
47
|
+
botocore = common.LazyImport('botocore',
|
48
|
+
import_error_message=_IMPORT_ERROR_MESSAGE)
|
49
|
+
|
50
|
+
_LAZY_MODULES = (boto3, botocore, nebius)
|
51
|
+
_session_creation_lock = threading.RLock()
|
52
|
+
_INDENT_PREFIX = ' '
|
53
|
+
NAME = 'Nebius'
|
54
|
+
SKY_CHECK_NAME = 'Nebius (for Nebius Object Storae)'
|
55
|
+
|
56
|
+
|
57
|
+
def request_error():
|
58
|
+
return nebius.aio.service_error.RequestError
|
59
|
+
|
60
|
+
|
61
|
+
def compute():
|
62
|
+
# pylint: disable=import-outside-toplevel
|
63
|
+
from nebius.api.nebius.compute import v1 as compute_v1
|
64
|
+
return compute_v1
|
65
|
+
|
66
|
+
|
67
|
+
def iam():
|
68
|
+
# pylint: disable=import-outside-toplevel
|
69
|
+
from nebius.api.nebius.iam import v1 as iam_v1
|
70
|
+
return iam_v1
|
71
|
+
|
72
|
+
|
73
|
+
def nebius_common():
|
74
|
+
# pylint: disable=import-outside-toplevel
|
75
|
+
from nebius.api.nebius.common import v1 as common_v1
|
76
|
+
return common_v1
|
77
|
+
|
78
|
+
|
79
|
+
def vpc():
|
80
|
+
# pylint: disable=import-outside-toplevel
|
81
|
+
from nebius.api.nebius.vpc import v1 as vpc_v1
|
82
|
+
return vpc_v1
|
83
|
+
|
84
|
+
|
85
|
+
def get_iam_token():
|
86
|
+
global _iam_token
|
87
|
+
if _iam_token is None:
|
88
|
+
try:
|
89
|
+
with open(os.path.expanduser(NEBIUS_IAM_TOKEN_PATH),
|
90
|
+
encoding='utf-8') as file:
|
91
|
+
_iam_token = file.read().strip()
|
92
|
+
except FileNotFoundError:
|
93
|
+
return None
|
94
|
+
return _iam_token
|
95
|
+
|
96
|
+
|
97
|
+
def is_token_or_cred_file_exist():
|
98
|
+
return (os.path.exists(os.path.expanduser(NEBIUS_IAM_TOKEN_PATH)) or
|
99
|
+
os.path.exists(os.path.expanduser(NEBIUS_CREDENTIALS_PATH)))
|
100
|
+
|
101
|
+
|
102
|
+
def get_project_id():
|
103
|
+
global _project_id
|
104
|
+
if _project_id is None:
|
105
|
+
try:
|
106
|
+
with open(os.path.expanduser(NEBIUS_PROJECT_ID_PATH),
|
107
|
+
encoding='utf-8') as file:
|
108
|
+
_project_id = file.read().strip()
|
109
|
+
except FileNotFoundError:
|
110
|
+
return None
|
111
|
+
return _project_id
|
112
|
+
|
113
|
+
|
114
|
+
def get_tenant_id():
|
115
|
+
global _tenant_id
|
116
|
+
if _tenant_id is None:
|
117
|
+
try:
|
118
|
+
with open(os.path.expanduser(NEBIUS_TENANT_ID_PATH),
|
119
|
+
encoding='utf-8') as file:
|
120
|
+
_tenant_id = file.read().strip()
|
121
|
+
except FileNotFoundError:
|
122
|
+
return None
|
123
|
+
return _tenant_id
|
124
|
+
|
125
|
+
|
126
|
+
def sdk():
|
127
|
+
global _sdk
|
128
|
+
if _sdk is None:
|
129
|
+
if get_iam_token() is not None:
|
130
|
+
_sdk = nebius.sdk.SDK(credentials=get_iam_token())
|
131
|
+
return _sdk
|
132
|
+
_sdk = nebius.sdk.SDK(
|
133
|
+
credentials_file_name=os.path.expanduser(NEBIUS_CREDENTIALS_PATH))
|
134
|
+
return _sdk
|
135
|
+
|
136
|
+
|
137
|
+
def get_nebius_credentials(boto3_session):
|
138
|
+
"""Gets the Nebius credentials from the boto3 session object.
|
139
|
+
|
140
|
+
Args:
|
141
|
+
boto3_session: The boto3 session object.
|
142
|
+
Returns:
|
143
|
+
botocore.credentials.ReadOnlyCredentials object with the R2 credentials.
|
144
|
+
"""
|
145
|
+
nebius_credentials = boto3_session.get_credentials()
|
146
|
+
if nebius_credentials is None:
|
147
|
+
with ux_utils.print_exception_no_traceback():
|
148
|
+
raise ValueError('Nebius credentials not found. Run '
|
149
|
+
'`sky check` to verify credentials are '
|
150
|
+
'correctly set up.')
|
151
|
+
return nebius_credentials.get_frozen_credentials()
|
152
|
+
|
153
|
+
|
154
|
+
# lru_cache() is thread-safe and it will return the same session object
|
155
|
+
# for different threads.
|
156
|
+
# Reference: https://docs.python.org/3/library/functools.html#functools.lru_cache # pylint: disable=line-too-long
|
157
|
+
@annotations.lru_cache(scope='global')
|
158
|
+
def session():
|
159
|
+
"""Create an AWS session."""
|
160
|
+
# Creating the session object is not thread-safe for boto3,
|
161
|
+
# so we add a reentrant lock to synchronize the session creation.
|
162
|
+
# Reference: https://github.com/boto/boto3/issues/1592
|
163
|
+
# However, the session object itself is thread-safe, so we are
|
164
|
+
# able to use lru_cache() to cache the session object.
|
165
|
+
with _session_creation_lock:
|
166
|
+
session_ = boto3.session.Session(profile_name=NEBIUS_PROFILE_NAME)
|
167
|
+
return session_
|
168
|
+
|
169
|
+
|
170
|
+
@annotations.lru_cache(scope='global')
|
171
|
+
def resource(resource_name: str, region: str = DEFAULT_REGION, **kwargs):
|
172
|
+
"""Create a Nebius resource.
|
173
|
+
|
174
|
+
Args:
|
175
|
+
resource_name: Nebius resource name (e.g., 's3').
|
176
|
+
kwargs: Other options.
|
177
|
+
"""
|
178
|
+
# Need to use the resource retrieved from the per-thread session
|
179
|
+
# to avoid thread-safety issues (Directly creating the client
|
180
|
+
# with boto3.resource() is not thread-safe).
|
181
|
+
# Reference: https://stackoverflow.com/a/59635814
|
182
|
+
|
183
|
+
session_ = session()
|
184
|
+
nebius_credentials = get_nebius_credentials(session_)
|
185
|
+
endpoint = create_endpoint(region)
|
186
|
+
|
187
|
+
return session_.resource(
|
188
|
+
resource_name,
|
189
|
+
endpoint_url=endpoint,
|
190
|
+
aws_access_key_id=nebius_credentials.access_key,
|
191
|
+
aws_secret_access_key=nebius_credentials.secret_key,
|
192
|
+
region_name=region,
|
193
|
+
**kwargs)
|
194
|
+
|
195
|
+
|
196
|
+
@annotations.lru_cache(scope='global')
|
197
|
+
def client(service_name: str, region):
|
198
|
+
"""Create an Nebius client of a certain service.
|
199
|
+
|
200
|
+
Args:
|
201
|
+
service_name: Nebius service name (e.g., 's3').
|
202
|
+
kwargs: Other options.
|
203
|
+
"""
|
204
|
+
# Need to use the client retrieved from the per-thread session
|
205
|
+
# to avoid thread-safety issues (Directly creating the client
|
206
|
+
# with boto3.client() is not thread-safe).
|
207
|
+
# Reference: https://stackoverflow.com/a/59635814
|
208
|
+
|
209
|
+
session_ = session()
|
210
|
+
nebius_credentials = get_nebius_credentials(session_)
|
211
|
+
endpoint = create_endpoint(region)
|
212
|
+
|
213
|
+
return session_.client(service_name,
|
214
|
+
endpoint_url=endpoint,
|
215
|
+
aws_access_key_id=nebius_credentials.access_key,
|
216
|
+
aws_secret_access_key=nebius_credentials.secret_key,
|
217
|
+
region_name=region)
|
218
|
+
|
219
|
+
|
220
|
+
@common.load_lazy_modules(_LAZY_MODULES)
|
221
|
+
def botocore_exceptions():
|
222
|
+
"""AWS botocore exception."""
|
223
|
+
# pylint: disable=import-outside-toplevel
|
224
|
+
from botocore import exceptions
|
225
|
+
return exceptions
|
226
|
+
|
227
|
+
|
228
|
+
def create_endpoint(region: Optional[str] = DEFAULT_REGION) -> str:
|
229
|
+
"""Reads accountid necessary to interact with Nebius Object Storage"""
|
230
|
+
if region is None:
|
231
|
+
region = DEFAULT_REGION
|
232
|
+
return f'https://storage.{region}.nebius.cloud:443'
|
@@ -38,6 +38,7 @@ from sky import sky_logging
|
|
38
38
|
from sky import task as task_lib
|
39
39
|
from sky.backends import backend_utils
|
40
40
|
from sky.backends import wheel_utils
|
41
|
+
from sky.clouds import cloud as sky_cloud
|
41
42
|
from sky.clouds import service_catalog
|
42
43
|
from sky.clouds.utils import gcp_utils
|
43
44
|
from sky.data import data_utils
|
@@ -1981,7 +1982,8 @@ class RetryingVmProvisioner(object):
|
|
1981
1982
|
# is running. Here we check the enabled clouds and expiring credentials
|
1982
1983
|
# and raise a warning to the user.
|
1983
1984
|
if task.is_controller_task():
|
1984
|
-
enabled_clouds = sky_check.get_cached_enabled_clouds_or_refresh(
|
1985
|
+
enabled_clouds = sky_check.get_cached_enabled_clouds_or_refresh(
|
1986
|
+
sky_cloud.CloudCapability.COMPUTE)
|
1985
1987
|
expirable_clouds = backend_utils.get_expirable_clouds(
|
1986
1988
|
enabled_clouds)
|
1987
1989
|
|
@@ -172,8 +172,9 @@ def _create_benchmark_bucket() -> Tuple[str, str]:
|
|
172
172
|
bucket_name = f'sky-bench-{uuid.uuid4().hex[:4]}-{getpass.getuser()}'
|
173
173
|
|
174
174
|
# Select the bucket type.
|
175
|
-
enabled_clouds =
|
176
|
-
|
175
|
+
enabled_clouds = (
|
176
|
+
storage_lib.get_cached_enabled_storage_cloud_names_or_refresh(
|
177
|
+
raise_if_no_cloud_access=True))
|
177
178
|
# Sky Benchmark only supports S3 (see _download_remote_dir and
|
178
179
|
# _delete_remote_dir).
|
179
180
|
enabled_clouds = [
|