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.
Files changed (376) hide show
  1. {skypilot_nightly-1.0.0.dev20250320/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250322}/PKG-INFO +16 -7
  2. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/README.md +5 -6
  3. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/cloudflare.py +16 -5
  5. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/kubernetes.py +2 -1
  6. skypilot_nightly-1.0.0.dev20250322/sky/adaptors/nebius.py +232 -0
  7. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/cloud_vm_ray_backend.py +3 -1
  8. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/benchmark/benchmark_utils.py +3 -2
  9. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/check.py +114 -114
  10. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/cloud_stores.py +66 -0
  11. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/aws.py +14 -7
  12. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/azure.py +13 -6
  13. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/cloud.py +34 -10
  14. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/cudo.py +3 -2
  15. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/do.py +3 -2
  16. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/fluidstack.py +3 -2
  17. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/gcp.py +8 -9
  18. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/ibm.py +15 -6
  19. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/kubernetes.py +3 -1
  20. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/lambda_cloud.py +3 -1
  21. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/nebius.py +59 -11
  22. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/oci.py +15 -6
  23. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/paperspace.py +3 -2
  24. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/runpod.py +7 -1
  25. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/scp.py +3 -1
  26. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/kubernetes_catalog.py +3 -1
  27. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/vast.py +3 -2
  28. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/vsphere.py +3 -2
  29. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/core.py +6 -4
  30. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/data_transfer.py +75 -0
  31. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/data_utils.py +34 -0
  32. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/mounting_utils.py +18 -0
  33. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/storage.py +540 -10
  34. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/storage_utils.py +102 -84
  35. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/exceptions.py +2 -0
  36. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/global_user_state.py +12 -33
  37. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/core.py +1 -1
  38. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/utils.py +5 -0
  39. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/optimizer.py +10 -5
  40. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/resources.py +6 -1
  41. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/setup_files/dependencies.py +3 -1
  42. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/task.py +16 -5
  43. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/command_runner.py +2 -0
  44. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/controller_utils.py +8 -5
  45. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/gpu_labeler.py +4 -4
  46. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/kubernetes_deploy_utils.py +4 -3
  47. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322/skypilot_nightly.egg-info}/PKG-INFO +16 -7
  48. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/requires.txt +5 -0
  49. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_global_user_state.py +2 -1
  50. skypilot_nightly-1.0.0.dev20250320/sky/adaptors/nebius.py +0 -110
  51. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/LICENSE +0 -0
  52. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/MANIFEST.in +0 -0
  53. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/pyproject.toml +0 -0
  54. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/setup.cfg +0 -0
  55. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/setup.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/__init__.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/aws.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/azure.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/common.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/cudo.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/do.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/docker.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/gcp.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/ibm.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/oci.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/runpod.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/vast.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/adaptors/vsphere.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/admin_policy.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/authentication.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/__init__.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/backend.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/backend_utils.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/docker_utils.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/local_docker_backend.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/backends/wheel_utils.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/benchmark/__init__.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/benchmark/benchmark_state.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/cli.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/__init__.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/cli.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/common.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/client/sdk.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/__init__.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/__init__.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/common.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/config.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/constants.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/do_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/__init__.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/aws_utils.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/azure_utils.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/gcp_utils.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/oci_utils.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/clouds/utils/scp_utils.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/dag.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/data/__init__.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/execution.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/__init__.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/client/__init__.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/client/sdk.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/constants.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/controller.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/dashboard/dashboard.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/dashboard/static/favicon.ico +0 -0
  130. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/dashboard/templates/index.html +0 -0
  131. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/recovery_strategy.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/scheduler.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/__init__.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/dashboard_utils.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/server/server.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/jobs/state.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/models.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/__init__.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/__init__.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/config.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/instance.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/aws/utils.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/__init__.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/azure-config-template.json +0 -0
  145. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/config.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/azure/instance.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/common.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/constants.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/__init__.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/config.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/cudo_machine_type.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/cudo_utils.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/cudo_wrapper.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/cudo/instance.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/__init__.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/config.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/constants.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/instance.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/do/utils.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/docker_utils.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/__init__.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/config.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/fluidstack/instance.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/__init__.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/config.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/constants.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/instance.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/instance_utils.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/gcp/mig_utils.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/instance_setup.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/__init__.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/config.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/constants.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/instance.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  177. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  178. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/network.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/network_utils.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/kubernetes/utils.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/__init__.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/config.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/instance.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/logging.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/metadata_utils.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/__init__.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/config.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/instance.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/nebius/utils.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/config.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/instance.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/oci/query_utils.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/__init__.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/config.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/constants.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/instance.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/paperspace/utils.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/provisioner.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/__init__.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/api/__init__.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/api/commands.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/api/pods.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/config.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/instance.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/runpod/utils.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/__init__.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/config.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/instance.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vast/utils.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/__init__.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/__init__.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/custom_script.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/id_generator.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/service_manager.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/common/vim_utils.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/config.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/instance.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/provision/vsphere/vsphere_utils.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/autoscalers.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/client/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/client/sdk.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/constants.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/controller.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/load_balancer.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/load_balancing_policies.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/replica_managers.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/serve_state.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/serve_utils.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/server/__init__.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/server/core.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/server/server.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/service.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/serve/service_spec.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/__init__.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/common.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/constants.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/html/log.html +0 -0
  247. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/__init__.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/event_loop.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/executor.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/payloads.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/preconditions.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/queues/__init__.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/queues/mp_queue.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/requests.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/serializers/__init__.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/serializers/decoders.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/requests/serializers/encoders.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/server.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/stream_utils.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/server/uvicorn.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/setup_files/MANIFEST.in +0 -0
  262. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/setup_files/setup.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/sky_logging.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/LICENSE +0 -0
  265. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/__init__.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/attempt_skylet.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/autostop_lib.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/configs.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/constants.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/events.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/job_lib.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/log_lib.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/log_lib.pyi +0 -0
  274. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/command_runner.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/node_provider.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/utils.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/scp/__init__.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/scp/config.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/providers/scp/node_provider.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/__init__.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  285. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/cli.py.patch +0 -0
  286. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  287. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  288. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  289. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/updater.py.patch +0 -0
  290. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/ray_patches/worker.py.patch +0 -0
  291. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/skylet.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skylet/subprocess_daemon.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/skypilot_config.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/aws-ray.yml.j2 +0 -0
  295. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/azure-ray.yml.j2 +0 -0
  296. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/cudo-ray.yml.j2 +0 -0
  297. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/do-ray.yml.j2 +0 -0
  298. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  299. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/gcp-ray.yml.j2 +0 -0
  300. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/ibm-ray.yml.j2 +0 -0
  301. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/jobs-controller.yaml.j2 +0 -0
  302. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  303. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  304. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  305. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  306. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  307. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/lambda-ray.yml.j2 +0 -0
  308. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/local-ray.yml.j2 +0 -0
  309. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/nebius-ray.yml.j2 +0 -0
  310. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/oci-ray.yml.j2 +0 -0
  311. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/paperspace-ray.yml.j2 +0 -0
  312. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/runpod-ray.yml.j2 +0 -0
  313. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/scp-ray.yml.j2 +0 -0
  314. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  315. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  316. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/vast-ray.yml.j2 +0 -0
  317. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/vsphere-ray.yml.j2 +0 -0
  318. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/templates/websocket_proxy.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/usage/__init__.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/usage/constants.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/usage/usage_lib.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/__init__.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/accelerator_registry.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/admin_policy_utils.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/annotations.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/cli_utils/__init__.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/cli_utils/status_utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/cluster_utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/command_runner.pyi +0 -0
  330. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/common.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/common_utils.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/config_utils.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/control_master_utils.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/dag_utils.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/db_utils.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/env_options.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/__init__.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/create_cluster.sh +0 -0
  339. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  340. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  341. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  344. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  345. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  346. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  347. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/kubernetes_enums.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/log_utils.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/message_utils.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/registry.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/resources_utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/rich_utils.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/schemas.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/status_lib.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/subprocess_utils.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/timeline.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/ux_utils.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/sky/utils/validator.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  361. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  362. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  363. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/skypilot_nightly.egg-info/top_level.txt +0 -0
  364. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_api.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_cli.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_config.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_jobs.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_jobs_and_serve.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_list_accelerators.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_optimizer_dryruns.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_optimizer_random_dag.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_serve_autoscaler.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_smoke.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_storage.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250320 → skypilot_nightly-1.0.0.dev20250322}/tests/test_wheels.py +0 -0
  376. {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.dev20250320
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
- * [Managed Spot](https://docs.skypilot.co/en/latest/examples/managed-jobs.html): 3-6x cost savings using spot instances, with preemption auto-recovery
226
- * Optimizer: auto-selects the cheapest & most available infra
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
- * [Managed Spot](https://docs.skypilot.co/en/latest/examples/managed-jobs.html): 3-6x cost savings using spot instances, with preemption auto-recovery
65
- * Optimizer: auto-selects the cheapest & most available infra
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 = 'a480f342522afcd17a3b30a20086f28333ddb7b5'
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.dev20250320'
38
+ __version__ = '1.0.0.dev20250322'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -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 exceptions
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() -> Tuple[bool, Optional[str]]:
152
- return check_storage_credentials()
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]]:
@@ -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'~/.kube/config and is valid.\n{suffix}')
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 = storage_lib.get_cached_enabled_storage_clouds_or_refresh(
176
- raise_if_no_cloud_access=True)
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 = [