skypilot-nightly 1.0.0.dev20250530__tar.gz → 1.0.0.dev20250602__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 (461) hide show
  1. {skypilot_nightly-1.0.0.dev20250530/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250602}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/backend_utils.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/cloud_vm_ray_backend.py +3 -2
  5. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/cli.py +36 -10
  6. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/client/cli.py +36 -10
  7. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/cloud.py +20 -0
  8. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/cudo.py +2 -0
  9. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/do.py +3 -0
  10. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/fluidstack.py +3 -0
  11. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/gcp.py +10 -3
  12. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/kubernetes.py +70 -4
  13. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/lambda_cloud.py +3 -0
  14. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/nebius.py +2 -0
  15. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/paperspace.py +3 -0
  16. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/runpod.py +2 -0
  17. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/scp.py +3 -0
  18. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/vast.py +3 -0
  19. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/vsphere.py +3 -0
  20. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/404.html +1 -1
  21. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/236-7458fda7b295f305.js +6 -0
  22. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/37-b638675d511d58b4.js +6 -0
  23. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/470-4d003c441839094d.js → skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/470-9e7a479cc8303baa.js +1 -1
  24. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/682-f3f1443ed2fba42f.js → skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/682-5c12535476a21ce3.js +1 -1
  25. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/856-ab9627e7e8ac35e8.js +1 -0
  26. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-8f270e2c9c59fa1a.js +6 -0
  27. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-25edb867a41b6b20.js +6 -0
  28. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-c0c1dff3cd463d9e.js +11 -0
  29. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/css/2b3ee34e586949a3.css +3 -0
  30. skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/dev-ndwjPgd_uQ4dcXXiv/_buildManifest.js +1 -0
  31. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/clusters/[cluster].html +1 -1
  33. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/clusters.html +1 -1
  34. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/config.html +1 -1
  35. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/index.html +1 -1
  36. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/infra/[context].html +1 -1
  37. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/infra.html +1 -1
  38. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/jobs/[job].html +1 -1
  39. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/jobs.html +1 -1
  40. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/users.html +1 -1
  41. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/workspace/new.html +1 -1
  42. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/workspaces/[name].html +1 -1
  43. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/workspaces.html +1 -1
  44. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/client/sdk.py +3 -0
  45. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/constants.py +1 -1
  46. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/server/core.py +8 -3
  47. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/utils.py +31 -10
  48. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/config.py +3 -1
  49. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/constants.py +10 -0
  50. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/resources.py +44 -3
  51. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/constants.py +1 -1
  52. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/payloads.py +1 -0
  53. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/kubernetes-ray.yml.j2 +7 -0
  54. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/resources_utils.py +26 -0
  55. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/schemas.py +3 -0
  56. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  57. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/skypilot_nightly.egg-info/SOURCES.txt +12 -12
  58. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/Q32Bxr2Pby5tFDW-y5TNg/_buildManifest.js +0 -1
  59. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/236-ca00738e2f58ea65.js +0 -6
  60. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/37-64efcd0e9c54bff6.js +0 -6
  61. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/856-02e34c9fc5945066.js +0 -1
  62. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-42d3656aba9d2e78.js +0 -6
  63. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-20835df7b0c4599c.js +0 -6
  64. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-258decb65e95f520.js +0 -11
  65. skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/css/5411b9fb0a783c1c.css +0 -3
  66. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/LICENSE +0 -0
  67. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/MANIFEST.in +0 -0
  68. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/README.md +0 -0
  69. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/pyproject.toml +0 -0
  70. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/setup.cfg +0 -0
  71. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/setup.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/__init__.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/aws.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/azure.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/cloudflare.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/common.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/cudo.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/do.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/docker.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/gcp.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/ibm.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/kubernetes.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/nebius.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/oci.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/runpod.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/vast.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/adaptors/vsphere.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/admin_policy.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/authentication.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/__init__.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/backend.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/docker_utils.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/local_docker_backend.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/backends/wheel_utils.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/benchmark/__init__.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/benchmark/benchmark_state.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/benchmark/benchmark_utils.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/check.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/client/__init__.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/client/common.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/client/oauth.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/client/sdk.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/cloud_stores.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/__init__.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/aws.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/azure.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/ibm.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/oci.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/__init__.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/common.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/config.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/constants.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/do_catalog.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/ssh_catalog.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/ssh.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/utils/__init__.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/utils/aws_utils.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/utils/azure_utils.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/utils/gcp_utils.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/utils/oci_utils.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/clouds/utils/scp_utils.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/core.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dag.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/121-8f55ee3fa6301784.js +0 -0
  151. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/293-351268365226d251.js +0 -0
  152. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/614-3d29f98e0634b179.js +0 -0
  153. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/798-c0525dc3f21e488d.js +0 -0
  154. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/843-786c36624d5ff61f.js +0 -0
  155. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/937.f97f83652028e944.js +0 -0
  156. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/973-1a09cac61cfcc1e1.js +0 -0
  157. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  158. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  161. /skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/chunks/pages/_app-f19ea34b91c33950.js → /skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/chunks/pages/_app-ad1edd7fe17ea796.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/clusters-f37ff20f0af29aae.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/config-3c6a2dabf56e8cd6.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-342bc15bb78ab2e5.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/infra-7b4b8e7fa9fa0827.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/jobs-78a6c5ba3e24c0cf.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/users-89f9212b81d8897e.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-198b6e00d7d724c5.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-2ce792183b03c341.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/pages/workspaces-17d41826537196e7.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/_next/static/chunks/webpack-f27c9a32aa3d9c6d.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250530/sky/dashboard/out/_next/static/Q32Bxr2Pby5tFDW-y5TNg → skypilot_nightly-1.0.0.dev20250602/sky/dashboard/out/_next/static/dev-ndwjPgd_uQ4dcXXiv}/_ssgManifest.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/favicon.ico +0 -0
  177. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/skypilot.svg +0 -0
  178. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  179. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/data/__init__.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/data/data_transfer.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/data/data_utils.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/data/mounting_utils.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/data/storage.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/data/storage_utils.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/exceptions.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/execution.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/global_user_state.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/__init__.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/client/__init__.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/controller.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/dashboard/dashboard.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/dashboard/static/favicon.ico +0 -0
  193. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/dashboard/templates/index.html +0 -0
  194. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/recovery_strategy.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/scheduler.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/server/__init__.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/server/dashboard_utils.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/server/server.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/jobs/state.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/models.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/optimizer.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/__init__.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/aws/__init__.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/aws/config.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/aws/instance.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/aws/utils.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/azure/__init__.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/azure/azure-config-template.json +0 -0
  209. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/azure/config.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/azure/instance.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/common.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/constants.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/cudo/__init__.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/cudo/config.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/cudo/cudo_machine_type.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/cudo/cudo_utils.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/cudo/cudo_wrapper.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/cudo/instance.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/do/__init__.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/do/config.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/do/constants.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/do/instance.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/do/utils.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/docker_utils.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/fluidstack/__init__.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/fluidstack/config.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/fluidstack/instance.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/__init__.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/instance.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/instance_utils.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/mig_utils.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/gcp/volume_utils.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/instance_setup.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/config.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/constants.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/instance.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  240. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/network.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/network_utils.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/kubernetes/utils.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/lambda_cloud/__init__.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/lambda_cloud/config.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/lambda_cloud/instance.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/logging.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/metadata_utils.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/nebius/__init__.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/nebius/config.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/nebius/instance.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/nebius/utils.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/oci/__init__.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/oci/config.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/oci/instance.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/oci/query_utils.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/paperspace/__init__.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/paperspace/config.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/paperspace/constants.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/paperspace/instance.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/paperspace/utils.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/provisioner.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/__init__.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/api/__init__.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/api/commands.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/api/pods.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/config.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/instance.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/runpod/utils.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/ssh/__init__.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vast/__init__.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vast/config.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vast/instance.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vast/utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/__init__.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/custom_script.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/id_generator.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/service_manager.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/common/vim_utils.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/config.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/instance.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/provision/vsphere/vsphere_utils.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/__init__.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/autoscalers.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/client/__init__.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/client/sdk.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/constants.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/controller.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/load_balancer.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/load_balancing_policies.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/replica_managers.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/serve_state.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/serve_utils.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/server/__init__.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/server/core.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/server/server.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/service.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/service_spec.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/serve/spot_placer.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/__init__.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/common.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/config.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/html/log.html +0 -0
  311. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/html/token_page.html +0 -0
  312. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/__init__.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/event_loop.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/executor.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/preconditions.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/process.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/queues/__init__.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/queues/local_queue.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/queues/mp_queue.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/requests.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/serializers/__init__.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/serializers/decoders.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/requests/serializers/encoders.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/server.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/stream_utils.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/server/uvicorn.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/setup_files/MANIFEST.in +0 -0
  328. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/setup_files/dependencies.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/setup_files/setup.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/sky_logging.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/LICENSE +0 -0
  332. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/__init__.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/attempt_skylet.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/autostop_lib.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/configs.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/constants.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/events.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/job_lib.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/log_lib.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/log_lib.pyi +0 -0
  341. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/__init__.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/command_runner.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/ibm/__init__.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/ibm/node_provider.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/ibm/utils.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/scp/__init__.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/scp/config.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/providers/scp/node_provider.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/__init__.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  352. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/cli.py.patch +0 -0
  353. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  354. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  355. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  356. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/updater.py.patch +0 -0
  357. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/ray_patches/worker.py.patch +0 -0
  358. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/skylet.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skylet/subprocess_daemon.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/skypilot_config.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/task.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/aws-ray.yml.j2 +0 -0
  363. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/azure-ray.yml.j2 +0 -0
  364. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/cudo-ray.yml.j2 +0 -0
  365. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/do-ray.yml.j2 +0 -0
  366. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  367. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/gcp-ray.yml.j2 +0 -0
  368. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/ibm-ray.yml.j2 +0 -0
  369. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/jobs-controller.yaml.j2 +0 -0
  370. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  371. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  372. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  373. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  374. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/lambda-ray.yml.j2 +0 -0
  375. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/local-ray.yml.j2 +0 -0
  376. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/nebius-ray.yml.j2 +0 -0
  377. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/oci-ray.yml.j2 +0 -0
  378. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/paperspace-ray.yml.j2 +0 -0
  379. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/runpod-ray.yml.j2 +0 -0
  380. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/scp-ray.yml.j2 +0 -0
  381. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  382. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  383. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/vast-ray.yml.j2 +0 -0
  384. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/vsphere-ray.yml.j2 +0 -0
  385. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/templates/websocket_proxy.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/usage/__init__.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/usage/constants.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/usage/usage_lib.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/__init__.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/accelerator_registry.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/admin_policy_utils.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/annotations.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/atomic.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/aws/__init__.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/aws/get_default_security_group.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/cli_utils/__init__.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/cli_utils/status_utils.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/cluster_utils.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/command_runner.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/command_runner.pyi +0 -0
  401. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/common.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/common_utils.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/config_utils.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/context.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/context_utils.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/control_master_utils.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/controller_utils.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/dag_utils.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/db_utils.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/env_options.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/infra_utils.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/__init__.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  414. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/config_map_utils.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/create_cluster.sh +0 -0
  416. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  417. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  421. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  423. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  424. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  426. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  427. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/kubernetes_enums.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/log_utils.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/message_utils.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/registry.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/rich_console_utils.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/rich_utils.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/status_lib.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/subprocess_utils.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/timeline.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/ux_utils.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/utils/validator.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/workspaces/__init__.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/workspaces/core.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/sky/workspaces/server.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  443. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  444. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/skypilot_nightly.egg-info/requires.txt +0 -0
  445. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/skypilot_nightly.egg-info/top_level.txt +0 -0
  446. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_api.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_cli.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_config.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_db_utils.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_failover.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_global_user_state.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_jobs.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_jobs_and_serve.py +0 -0
  454. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_list_accelerators.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_optimizer_dryruns.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_optimizer_random_dag.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_serve_autoscaler.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_smoke.py +0 -0
  459. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_storage.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/tests/test_wheels.py +0 -0
  461. {skypilot_nightly-1.0.0.dev20250530 → skypilot_nightly-1.0.0.dev20250602}/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.dev20250530
3
+ Version: 1.0.0.dev20250602
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -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 = '86ea13eb24c6357ea885539fd3196d88295f5943'
8
+ _SKYPILOT_COMMIT_SHA = '9c73386fdafb1dc43a5e83fbf16e67ba3fa5dbf8'
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.dev20250530'
38
+ __version__ = '1.0.0.dev20250602'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -813,9 +813,9 @@ def write_cluster_config(
813
813
 
814
814
  # Add kubernetes config fields from ~/.sky/config
815
815
  if isinstance(cloud, clouds.Kubernetes):
816
+ cluster_config_overrides = to_provision.cluster_config_overrides
816
817
  kubernetes_utils.combine_pod_config_fields(
817
- tmp_yaml_path,
818
- cluster_config_overrides=to_provision.cluster_config_overrides)
818
+ tmp_yaml_path, cluster_config_overrides=cluster_config_overrides)
819
819
  kubernetes_utils.combine_metadata_fields(tmp_yaml_path)
820
820
  yaml_obj = common_utils.read_yaml(tmp_yaml_path)
821
821
  pod_config: Dict[str, Any] = yaml_obj['available_node_types'][
@@ -3950,11 +3950,12 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
3950
3950
  job_id: Optional[int] = None,
3951
3951
  job_name: Optional[str] = None,
3952
3952
  controller: bool = False,
3953
- follow: bool = True) -> int:
3953
+ follow: bool = True,
3954
+ tail: Optional[int] = None) -> int:
3954
3955
  # if job_name is not None, job_id should be None
3955
3956
  assert job_name is None or job_id is None, (job_name, job_id)
3956
3957
  code = managed_jobs.ManagedJobCodeGen.stream_logs(
3957
- job_name, job_id, follow, controller)
3958
+ job_name, job_id, follow, controller, tail)
3958
3959
 
3959
3960
  # With the stdin=subprocess.DEVNULL, the ctrl-c will not directly
3960
3961
  # kill the process, so we need to handle it manually here.
@@ -415,6 +415,13 @@ _TASK_OPTIONS = [
415
415
  case_sensitive=False),
416
416
  required=False,
417
417
  help=resources_utils.DiskTier.cli_help_message()),
418
+ click.option('--network-tier',
419
+ default=None,
420
+ type=click.Choice(
421
+ resources_utils.NetworkTier.supported_tiers(),
422
+ case_sensitive=False),
423
+ required=False,
424
+ help=resources_utils.NetworkTier.cli_help_message()),
418
425
  click.option(
419
426
  '--use-spot/--no-use-spot',
420
427
  required=False,
@@ -696,6 +703,7 @@ def _parse_override_params(
696
703
  image_id: Optional[str] = None,
697
704
  disk_size: Optional[int] = None,
698
705
  disk_tier: Optional[str] = None,
706
+ network_tier: Optional[str] = None,
699
707
  ports: Optional[Tuple[str, ...]] = None,
700
708
  config_override: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
701
709
  """Parses the override parameters into a dictionary."""
@@ -749,6 +757,11 @@ def _parse_override_params(
749
757
  override_params['disk_tier'] = None
750
758
  else:
751
759
  override_params['disk_tier'] = disk_tier
760
+ if network_tier is not None:
761
+ if network_tier.lower() == 'none':
762
+ override_params['network_tier'] = None
763
+ else:
764
+ override_params['network_tier'] = network_tier
752
765
  if ports:
753
766
  if any(p.lower() == 'none' for p in ports):
754
767
  if len(ports) > 1:
@@ -857,6 +870,7 @@ def _make_task_or_dag_from_entrypoint_with_overrides(
857
870
  image_id: Optional[str] = None,
858
871
  disk_size: Optional[int] = None,
859
872
  disk_tier: Optional[str] = None,
873
+ network_tier: Optional[str] = None,
860
874
  ports: Optional[Tuple[str, ...]] = None,
861
875
  env: Optional[List[Tuple[str, str]]] = None,
862
876
  field_to_ignore: Optional[List[str]] = None,
@@ -897,6 +911,7 @@ def _make_task_or_dag_from_entrypoint_with_overrides(
897
911
  image_id=image_id,
898
912
  disk_size=disk_size,
899
913
  disk_tier=disk_tier,
914
+ network_tier=network_tier,
900
915
  ports=ports,
901
916
  config_override=config_override)
902
917
  if field_to_ignore is not None:
@@ -1235,6 +1250,7 @@ def launch(
1235
1250
  env: List[Tuple[str, str]],
1236
1251
  disk_size: Optional[int],
1237
1252
  disk_tier: Optional[str],
1253
+ network_tier: Optional[str],
1238
1254
  ports: Tuple[str, ...],
1239
1255
  idle_minutes_to_autostop: Optional[int],
1240
1256
  down: bool, # pylint: disable=redefined-outer-name
@@ -1288,6 +1304,7 @@ def launch(
1288
1304
  env=env,
1289
1305
  disk_size=disk_size,
1290
1306
  disk_tier=disk_tier,
1307
+ network_tier=network_tier,
1291
1308
  ports=ports,
1292
1309
  config_override=config_override,
1293
1310
  )
@@ -1405,6 +1422,7 @@ def exec(cluster: Optional[str],
1405
1422
  memory: Optional[str],
1406
1423
  disk_size: Optional[int],
1407
1424
  disk_tier: Optional[str],
1425
+ network_tier: Optional[str],
1408
1426
  async_call: bool,
1409
1427
  config_override: Optional[Dict[str, Any]] = None):
1410
1428
  # NOTE(dev): Keep the docstring consistent between the Python API and CLI.
@@ -1500,6 +1518,7 @@ def exec(cluster: Optional[str],
1500
1518
  env=env,
1501
1519
  disk_size=disk_size,
1502
1520
  disk_tier=disk_tier,
1521
+ network_tier=network_tier,
1503
1522
  ports=ports,
1504
1523
  field_to_ignore=['cpus', 'memory', 'disk_size', 'disk_tier', 'ports'],
1505
1524
  config_override=config_override,
@@ -4216,6 +4235,7 @@ def jobs_launch(
4216
4235
  env: List[Tuple[str, str]],
4217
4236
  disk_size: Optional[int],
4218
4237
  disk_tier: Optional[str],
4238
+ network_tier: Optional[str],
4219
4239
  ports: Tuple[str],
4220
4240
  priority: Optional[int],
4221
4241
  detach_run: bool,
@@ -4262,6 +4282,7 @@ def jobs_launch(
4262
4282
  env=env,
4263
4283
  disk_size=disk_size,
4264
4284
  disk_tier=disk_tier,
4285
+ network_tier=network_tier,
4265
4286
  ports=ports,
4266
4287
  job_recovery=job_recovery,
4267
4288
  priority=priority,
@@ -4599,6 +4620,7 @@ def _generate_task_with_service(
4599
4620
  memory: Optional[str],
4600
4621
  disk_size: Optional[int],
4601
4622
  disk_tier: Optional[str],
4623
+ network_tier: Optional[str],
4602
4624
  not_supported_cmd: str,
4603
4625
  ) -> sky.Task:
4604
4626
  """Generate a task with service section from a service YAML file."""
@@ -4625,6 +4647,7 @@ def _generate_task_with_service(
4625
4647
  env=env,
4626
4648
  disk_size=disk_size,
4627
4649
  disk_tier=disk_tier,
4650
+ network_tier=network_tier,
4628
4651
  ports=ports,
4629
4652
  )
4630
4653
  if isinstance(task, sky.Dag):
@@ -4738,6 +4761,7 @@ def serve_up(
4738
4761
  memory: Optional[str],
4739
4762
  disk_size: Optional[int],
4740
4763
  disk_tier: Optional[str],
4764
+ network_tier: Optional[str],
4741
4765
  yes: bool,
4742
4766
  async_call: bool,
4743
4767
  ):
@@ -4792,6 +4816,7 @@ def serve_up(
4792
4816
  env=env,
4793
4817
  disk_size=disk_size,
4794
4818
  disk_tier=disk_tier,
4819
+ network_tier=network_tier,
4795
4820
  ports=ports,
4796
4821
  not_supported_cmd='sky serve up',
4797
4822
  )
@@ -4836,16 +4861,16 @@ def serve_up(
4836
4861
  help='Skip confirmation prompt.')
4837
4862
  @timeline.event
4838
4863
  @usage_lib.entrypoint
4839
- def serve_update(service_name: str, service_yaml: Tuple[str, ...],
4840
- workdir: Optional[str], infra: Optional[str],
4841
- cloud: Optional[str], region: Optional[str],
4842
- zone: Optional[str], num_nodes: Optional[int],
4843
- use_spot: Optional[bool], image_id: Optional[str],
4844
- env_file: Optional[Dict[str, str]], env: List[Tuple[str, str]],
4845
- gpus: Optional[str], instance_type: Optional[str],
4846
- ports: Tuple[str], cpus: Optional[str], memory: Optional[str],
4847
- disk_size: Optional[int], disk_tier: Optional[str], mode: str,
4848
- yes: bool, async_call: bool):
4864
+ def serve_update(
4865
+ service_name: str, service_yaml: Tuple[str, ...],
4866
+ workdir: Optional[str], infra: Optional[str], cloud: Optional[str],
4867
+ region: Optional[str], zone: Optional[str], num_nodes: Optional[int],
4868
+ use_spot: Optional[bool], image_id: Optional[str],
4869
+ env_file: Optional[Dict[str, str]], env: List[Tuple[str, str]],
4870
+ gpus: Optional[str], instance_type: Optional[str], ports: Tuple[str],
4871
+ cpus: Optional[str], memory: Optional[str], disk_size: Optional[int],
4872
+ disk_tier: Optional[str], network_tier: Optional[str], mode: str,
4873
+ yes: bool, async_call: bool):
4849
4874
  """Update a SkyServe service.
4850
4875
 
4851
4876
  service_yaml must point to a valid YAML file.
@@ -4895,6 +4920,7 @@ def serve_update(service_name: str, service_yaml: Tuple[str, ...],
4895
4920
  env=env,
4896
4921
  disk_size=disk_size,
4897
4922
  disk_tier=disk_tier,
4923
+ network_tier=network_tier,
4898
4924
  ports=ports,
4899
4925
  not_supported_cmd='sky serve update',
4900
4926
  )
@@ -415,6 +415,13 @@ _TASK_OPTIONS = [
415
415
  case_sensitive=False),
416
416
  required=False,
417
417
  help=resources_utils.DiskTier.cli_help_message()),
418
+ click.option('--network-tier',
419
+ default=None,
420
+ type=click.Choice(
421
+ resources_utils.NetworkTier.supported_tiers(),
422
+ case_sensitive=False),
423
+ required=False,
424
+ help=resources_utils.NetworkTier.cli_help_message()),
418
425
  click.option(
419
426
  '--use-spot/--no-use-spot',
420
427
  required=False,
@@ -696,6 +703,7 @@ def _parse_override_params(
696
703
  image_id: Optional[str] = None,
697
704
  disk_size: Optional[int] = None,
698
705
  disk_tier: Optional[str] = None,
706
+ network_tier: Optional[str] = None,
699
707
  ports: Optional[Tuple[str, ...]] = None,
700
708
  config_override: Optional[Dict[str, Any]] = None) -> Dict[str, Any]:
701
709
  """Parses the override parameters into a dictionary."""
@@ -749,6 +757,11 @@ def _parse_override_params(
749
757
  override_params['disk_tier'] = None
750
758
  else:
751
759
  override_params['disk_tier'] = disk_tier
760
+ if network_tier is not None:
761
+ if network_tier.lower() == 'none':
762
+ override_params['network_tier'] = None
763
+ else:
764
+ override_params['network_tier'] = network_tier
752
765
  if ports:
753
766
  if any(p.lower() == 'none' for p in ports):
754
767
  if len(ports) > 1:
@@ -857,6 +870,7 @@ def _make_task_or_dag_from_entrypoint_with_overrides(
857
870
  image_id: Optional[str] = None,
858
871
  disk_size: Optional[int] = None,
859
872
  disk_tier: Optional[str] = None,
873
+ network_tier: Optional[str] = None,
860
874
  ports: Optional[Tuple[str, ...]] = None,
861
875
  env: Optional[List[Tuple[str, str]]] = None,
862
876
  field_to_ignore: Optional[List[str]] = None,
@@ -897,6 +911,7 @@ def _make_task_or_dag_from_entrypoint_with_overrides(
897
911
  image_id=image_id,
898
912
  disk_size=disk_size,
899
913
  disk_tier=disk_tier,
914
+ network_tier=network_tier,
900
915
  ports=ports,
901
916
  config_override=config_override)
902
917
  if field_to_ignore is not None:
@@ -1235,6 +1250,7 @@ def launch(
1235
1250
  env: List[Tuple[str, str]],
1236
1251
  disk_size: Optional[int],
1237
1252
  disk_tier: Optional[str],
1253
+ network_tier: Optional[str],
1238
1254
  ports: Tuple[str, ...],
1239
1255
  idle_minutes_to_autostop: Optional[int],
1240
1256
  down: bool, # pylint: disable=redefined-outer-name
@@ -1288,6 +1304,7 @@ def launch(
1288
1304
  env=env,
1289
1305
  disk_size=disk_size,
1290
1306
  disk_tier=disk_tier,
1307
+ network_tier=network_tier,
1291
1308
  ports=ports,
1292
1309
  config_override=config_override,
1293
1310
  )
@@ -1405,6 +1422,7 @@ def exec(cluster: Optional[str],
1405
1422
  memory: Optional[str],
1406
1423
  disk_size: Optional[int],
1407
1424
  disk_tier: Optional[str],
1425
+ network_tier: Optional[str],
1408
1426
  async_call: bool,
1409
1427
  config_override: Optional[Dict[str, Any]] = None):
1410
1428
  # NOTE(dev): Keep the docstring consistent between the Python API and CLI.
@@ -1500,6 +1518,7 @@ def exec(cluster: Optional[str],
1500
1518
  env=env,
1501
1519
  disk_size=disk_size,
1502
1520
  disk_tier=disk_tier,
1521
+ network_tier=network_tier,
1503
1522
  ports=ports,
1504
1523
  field_to_ignore=['cpus', 'memory', 'disk_size', 'disk_tier', 'ports'],
1505
1524
  config_override=config_override,
@@ -4216,6 +4235,7 @@ def jobs_launch(
4216
4235
  env: List[Tuple[str, str]],
4217
4236
  disk_size: Optional[int],
4218
4237
  disk_tier: Optional[str],
4238
+ network_tier: Optional[str],
4219
4239
  ports: Tuple[str],
4220
4240
  priority: Optional[int],
4221
4241
  detach_run: bool,
@@ -4262,6 +4282,7 @@ def jobs_launch(
4262
4282
  env=env,
4263
4283
  disk_size=disk_size,
4264
4284
  disk_tier=disk_tier,
4285
+ network_tier=network_tier,
4265
4286
  ports=ports,
4266
4287
  job_recovery=job_recovery,
4267
4288
  priority=priority,
@@ -4599,6 +4620,7 @@ def _generate_task_with_service(
4599
4620
  memory: Optional[str],
4600
4621
  disk_size: Optional[int],
4601
4622
  disk_tier: Optional[str],
4623
+ network_tier: Optional[str],
4602
4624
  not_supported_cmd: str,
4603
4625
  ) -> sky.Task:
4604
4626
  """Generate a task with service section from a service YAML file."""
@@ -4625,6 +4647,7 @@ def _generate_task_with_service(
4625
4647
  env=env,
4626
4648
  disk_size=disk_size,
4627
4649
  disk_tier=disk_tier,
4650
+ network_tier=network_tier,
4628
4651
  ports=ports,
4629
4652
  )
4630
4653
  if isinstance(task, sky.Dag):
@@ -4738,6 +4761,7 @@ def serve_up(
4738
4761
  memory: Optional[str],
4739
4762
  disk_size: Optional[int],
4740
4763
  disk_tier: Optional[str],
4764
+ network_tier: Optional[str],
4741
4765
  yes: bool,
4742
4766
  async_call: bool,
4743
4767
  ):
@@ -4792,6 +4816,7 @@ def serve_up(
4792
4816
  env=env,
4793
4817
  disk_size=disk_size,
4794
4818
  disk_tier=disk_tier,
4819
+ network_tier=network_tier,
4795
4820
  ports=ports,
4796
4821
  not_supported_cmd='sky serve up',
4797
4822
  )
@@ -4836,16 +4861,16 @@ def serve_up(
4836
4861
  help='Skip confirmation prompt.')
4837
4862
  @timeline.event
4838
4863
  @usage_lib.entrypoint
4839
- def serve_update(service_name: str, service_yaml: Tuple[str, ...],
4840
- workdir: Optional[str], infra: Optional[str],
4841
- cloud: Optional[str], region: Optional[str],
4842
- zone: Optional[str], num_nodes: Optional[int],
4843
- use_spot: Optional[bool], image_id: Optional[str],
4844
- env_file: Optional[Dict[str, str]], env: List[Tuple[str, str]],
4845
- gpus: Optional[str], instance_type: Optional[str],
4846
- ports: Tuple[str], cpus: Optional[str], memory: Optional[str],
4847
- disk_size: Optional[int], disk_tier: Optional[str], mode: str,
4848
- yes: bool, async_call: bool):
4864
+ def serve_update(
4865
+ service_name: str, service_yaml: Tuple[str, ...],
4866
+ workdir: Optional[str], infra: Optional[str], cloud: Optional[str],
4867
+ region: Optional[str], zone: Optional[str], num_nodes: Optional[int],
4868
+ use_spot: Optional[bool], image_id: Optional[str],
4869
+ env_file: Optional[Dict[str, str]], env: List[Tuple[str, str]],
4870
+ gpus: Optional[str], instance_type: Optional[str], ports: Tuple[str],
4871
+ cpus: Optional[str], memory: Optional[str], disk_size: Optional[int],
4872
+ disk_tier: Optional[str], network_tier: Optional[str], mode: str,
4873
+ yes: bool, async_call: bool):
4849
4874
  """Update a SkyServe service.
4850
4875
 
4851
4876
  service_yaml must point to a valid YAML file.
@@ -4895,6 +4920,7 @@ def serve_update(service_name: str, service_yaml: Tuple[str, ...],
4895
4920
  env=env,
4896
4921
  disk_size=disk_size,
4897
4922
  disk_tier=disk_tier,
4923
+ network_tier=network_tier,
4898
4924
  ports=ports,
4899
4925
  not_supported_cmd='sky serve update',
4900
4926
  )
@@ -45,6 +45,7 @@ class CloudImplementationFeatures(enum.Enum):
45
45
  DOCKER_IMAGE = 'docker_image'
46
46
  SPOT_INSTANCE = 'spot_instance'
47
47
  CUSTOM_DISK_TIER = 'custom_disk_tier'
48
+ CUSTOM_NETWORK_TIER = 'custom_network_tier'
48
49
  OPEN_PORTS = 'open_ports'
49
50
  STORAGE_MOUNTING = 'storage_mounting'
50
51
  HOST_CONTROLLERS = 'host_controllers' # Can run jobs/serve controllers
@@ -139,6 +140,9 @@ class Cloud:
139
140
  _DEFAULT_DISK_TIER = resources_utils.DiskTier.MEDIUM
140
141
  _BEST_DISK_TIER = resources_utils.DiskTier.ULTRA
141
142
  _SUPPORTED_DISK_TIERS = {resources_utils.DiskTier.BEST}
143
+ _SUPPORTED_NETWORK_TIERS = {
144
+ resources_utils.NetworkTier.STANDARD, resources_utils.NetworkTier.BEST
145
+ }
142
146
  _SUPPORTS_SERVICE_ACCOUNT_ON_REMOTE = False
143
147
 
144
148
  # The version of provisioner and status query. This is used to determine
@@ -715,6 +719,22 @@ class Cloud:
715
719
  raise exceptions.NotSupportedError(
716
720
  f'{disk_tier} is not supported by {cls._REPR}.')
717
721
 
722
+ @classmethod
723
+ def check_network_tier_enabled(
724
+ cls, instance_type: Optional[str],
725
+ network_tier: resources_utils.NetworkTier) -> None:
726
+ """Errors out if the network tier is not supported by the
727
+ cloud provider.
728
+
729
+ Raises:
730
+ exceptions.NotSupportedError: If the network tier is not supported.
731
+ """
732
+ del instance_type # unused
733
+ if network_tier not in cls._SUPPORTED_NETWORK_TIERS:
734
+ with ux_utils.print_exception_no_traceback():
735
+ raise exceptions.NotSupportedError(
736
+ f'{network_tier} is not supported by {cls._REPR}.')
737
+
718
738
  @classmethod
719
739
  def _translate_disk_tier(
720
740
  cls, disk_tier: Optional[resources_utils.DiskTier]
@@ -59,6 +59,8 @@ class Cudo(clouds.Cloud):
59
59
  ('Spot is not supported, as Cudo API does not implement spot.'),
60
60
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
61
61
  ('Custom disk tier is currently not supported on Cudo Compute'),
62
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
63
+ ('Custom network tier is currently not supported on Cudo Compute'),
62
64
  clouds.CloudImplementationFeatures.IMAGE_ID:
63
65
  ('Image ID is currently not supported on Cudo. '),
64
66
  clouds.CloudImplementationFeatures.DOCKER_IMAGE:
@@ -33,6 +33,9 @@ class DO(clouds.Cloud):
33
33
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
34
34
  'Custom disk tiers'
35
35
  f' is not supported in {_REPR}.',
36
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
37
+ ('Custom network tier is currently not supported in '
38
+ f'{_REPR}.'),
36
39
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
37
40
  ('High availability controllers are not supported in '
38
41
  f'{_REPR}.'),
@@ -53,6 +53,9 @@ class Fluidstack(clouds.Cloud):
53
53
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
54
54
  'Custom disk tiers'
55
55
  f' is not supported in {_REPR}.',
56
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
57
+ ('Custom network tier is currently not supported in '
58
+ f'{_REPR}.'),
56
59
  clouds.CloudImplementationFeatures.HOST_CONTROLLERS:
57
60
  'Host controllers'
58
61
  f' are not supported in {_REPR}.',
@@ -119,6 +119,11 @@ _DEFAULT_GPU_K80_IMAGE_ID = 'skypilot:k80-debian-10'
119
119
  # Refer to https://github.com/GoogleCloudPlatform/cluster-toolkit/blob/main/examples/machine-learning/a3-highgpu-8g/README.md#before-starting
120
120
  _DEFAULT_GPU_DIRECT_IMAGE_ID = 'skypilot:gpu-direct-cos'
121
121
 
122
+ # From https://cloud.google.com/compute/docs/gpus/gpudirect
123
+ # A specific image is used to ensure that the the GPU is configured with TCPX support.
124
+ _NETWORK_GCP_IMAGE_ID = ('docker:us-docker.pkg.dev/gce-ai-infra/gpudirect-tcpx/'
125
+ 'nccl-plugin-gpudirecttcpx')
126
+
122
127
 
123
128
  def _run_output(cmd):
124
129
  proc = subprocess.run(cmd,
@@ -505,6 +510,8 @@ class GCP(clouds.Cloud):
505
510
  False,
506
511
  override_configs=resources.cluster_config_overrides)
507
512
  resources_vars['enable_gpu_direct'] = enable_gpu_direct
513
+ network_tier = r.network_tier
514
+ resources_vars['network_tier'] = network_tier
508
515
  accelerators = r.accelerators
509
516
  if accelerators is not None:
510
517
  assert len(accelerators) == 1, r
@@ -539,8 +546,8 @@ class GCP(clouds.Cloud):
539
546
  resources_vars['gpu'] = 'nvidia-tesla-{}'.format(
540
547
  acc.lower())
541
548
  resources_vars['gpu_count'] = acc_count
542
- if enable_gpu_direct:
543
- image_id = _DEFAULT_GPU_DIRECT_IMAGE_ID
549
+ if enable_gpu_direct or network_tier == resources_utils.NetworkTier.BEST:
550
+ image_id = _NETWORK_GCP_IMAGE_ID
544
551
  else:
545
552
  if acc == 'K80':
546
553
  # Though the image is called cu113, it actually has later
@@ -630,7 +637,7 @@ class GCP(clouds.Cloud):
630
637
  ('gcp', 'placement_policy'),
631
638
  None,
632
639
  override_configs=resources.cluster_config_overrides)
633
- if enable_gpu_direct:
640
+ if enable_gpu_direct or network_tier == resources_utils.NetworkTier.BEST:
634
641
  user_data += constants.GPU_DIRECT_TCPX_USER_DATA
635
642
  docker_run_options += constants.GPU_DIRECT_TCPX_SPECIFIC_OPTIONS
636
643
  if placement_policy is None:
@@ -75,6 +75,9 @@ class Kubernetes(clouds.Cloud):
75
75
  'tiers are not '
76
76
  'supported in '
77
77
  'Kubernetes.',
78
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
79
+ ('Custom network tier is currently not supported in '
80
+ f'{_REPR}.'),
78
81
  }
79
82
 
80
83
  IMAGE_CPU = 'skypilot:custom-cpu-ubuntu-2004'
@@ -127,6 +130,12 @@ class Kubernetes(clouds.Cloud):
127
130
  if spot_label_key is not None:
128
131
  unsupported_features.pop(
129
132
  clouds.CloudImplementationFeatures.SPOT_INSTANCE, None)
133
+ # Allow custom network tier if supported by the cluster
134
+ # (e.g., Nebius clusters with high performance networking)
135
+ if cls._cluster_supports_high_performance_networking(context):
136
+ unsupported_features.pop(
137
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER,
138
+ None)
130
139
  except exceptions.KubeAPIUnreachableError as e:
131
140
  cls._log_unreachable_context(context, str(e))
132
141
  return unsupported_features
@@ -471,6 +480,12 @@ class Kubernetes(clouds.Cloud):
471
480
  ssh_jump_image = service_catalog.get_image_id_from_tag(
472
481
  self.IMAGE_CPU, clouds='kubernetes')
473
482
 
483
+ # Set environment variables for the pod. Note that SkyPilot env vars
484
+ # are set separately when the task is run. These env vars are
485
+ # independent of the SkyPilot task to be run.
486
+ k8s_env_vars = {kubernetes.IN_CLUSTER_CONTEXT_NAME_ENV_VAR: context}
487
+
488
+ # Setup GPU/TPU labels and resource keys.
474
489
  k8s_acc_label_key = None
475
490
  k8s_acc_label_values = None
476
491
  k8s_topology_label_key = None
@@ -492,6 +507,17 @@ class Kubernetes(clouds.Cloud):
492
507
  else:
493
508
  k8s_resource_key = kubernetes_utils.get_gpu_resource_key()
494
509
  else:
510
+ # If no GPUs are requested, we set NVIDIA_VISIBLE_DEVICES=none to
511
+ # maintain GPU isolation. This is to override the default behavior
512
+ # of Nvidia device plugin which would expose all GPUs to the pod
513
+ # when no GPUs are requested.
514
+ # Note that NVIDIA_VISIBLE_DEVICES is different from
515
+ # CUDA_VISIBLE_DEVICES - the latter is used to control which GPUs
516
+ # are visible to the application and is set inside the pod, while
517
+ # the former is used to control which GPUs are visible to the pod
518
+ # through the nvidia runtime.
519
+ # See: https://github.com/NVIDIA/k8s-device-plugin/issues/61
520
+ k8s_env_vars['NVIDIA_VISIBLE_DEVICES'] = 'none'
495
521
  avoid_label_keys = kubernetes_utils.get_accelerator_label_keys(
496
522
  context)
497
523
  if len(avoid_label_keys) == 0:
@@ -552,10 +578,22 @@ class Kubernetes(clouds.Cloud):
552
578
  timeout,
553
579
  override_configs=resources.cluster_config_overrides)
554
580
 
555
- # Set environment variables for the pod. Note that SkyPilot env vars
556
- # are set separately when the task is run. These env vars are
557
- # independent of the SkyPilot task to be run.
558
- k8s_env_vars = {kubernetes.IN_CLUSTER_CONTEXT_NAME_ENV_VAR: context}
581
+ # Check if this cluster supports high performance networking and
582
+ # configure IPC_LOCK capability for clusters like Nebius that support it
583
+ k8s_ipc_lock_capability = False
584
+ if (resources.network_tier is not None and
585
+ resources.network_tier == resources_utils.NetworkTier.BEST):
586
+ # Only proceed if CUSTOM_NETWORK_TIER is supported by this cluster
587
+ unsupported_features = self._unsupported_features_for_resources(
588
+ resources)
589
+ if clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER \
590
+ not in unsupported_features:
591
+ k8s_ipc_lock_capability = True
592
+
593
+ if k8s_ipc_lock_capability:
594
+ k8s_env_vars['NCCL_IB_HCA'] = 'mlx5'
595
+ k8s_env_vars['UCX_NET_DEVICES'] = \
596
+ 'mlx5_0:1,mlx5_1:1,mlx5_2:1,mlx5_3:1,mlx5_4:1,mlx5_5:1,mlx5_6:1,mlx5_7:1' # pylint: disable=line-too-long
559
597
 
560
598
  # We specify object-store-memory to be 500MB to avoid taking up too
561
599
  # much memory on the head node. 'num-cpus' should be set to limit
@@ -621,6 +659,7 @@ class Kubernetes(clouds.Cloud):
621
659
  'k8s_high_availability_storage_class_name':
622
660
  (k8s_ha_storage_class_name),
623
661
  'avoid_label_keys': avoid_label_keys,
662
+ 'k8s_ipc_lock_capability': k8s_ipc_lock_capability,
624
663
  }
625
664
 
626
665
  # Add kubecontext if it is set. It may be None if SkyPilot is running
@@ -904,3 +943,30 @@ class Kubernetes(clouds.Cloud):
904
943
  f'{cls.canonical_name()}/{c}'
905
944
  for c in cls.existing_allowed_contexts(silent=True)
906
945
  ]
946
+
947
+ @classmethod
948
+ @annotations.lru_cache(scope='request', maxsize=10)
949
+ def _cluster_supports_high_performance_networking(cls,
950
+ context: str) -> bool:
951
+ """Check if the cluster supports high performance networking.
952
+
953
+ Currently detects Nebius clusters by checking for nebius.com/ labels
954
+ on cluster nodes.
955
+
956
+ Args:
957
+ context: The Kubernetes context to check.
958
+
959
+ Returns:
960
+ True if the cluster supports high performance networking.
961
+ """
962
+ try:
963
+ nodes = kubernetes_utils.get_kubernetes_nodes(context=context)
964
+ for node in nodes:
965
+ if node.metadata.labels:
966
+ for label_key in node.metadata.labels.keys():
967
+ if label_key.startswith('nebius.com/'):
968
+ return True
969
+ except exceptions.KubeAPIUnreachableError:
970
+ # If we can't reach the cluster, assume no high perf networking
971
+ return False
972
+ return False
@@ -43,6 +43,9 @@ class Lambda(clouds.Cloud):
43
43
  clouds.CloudImplementationFeatures.SPOT_INSTANCE: f'Spot instances are not supported in {_REPR}.',
44
44
  clouds.CloudImplementationFeatures.IMAGE_ID: f'Specifying image ID is not supported in {_REPR}.',
45
45
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER: f'Custom disk tiers are not supported in {_REPR}.',
46
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
47
+ ('Custom network tier is currently not supported in '
48
+ f'{_REPR}.'),
46
49
  clouds.CloudImplementationFeatures.HOST_CONTROLLERS: f'Host controllers are not supported in {_REPR}.',
47
50
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS: f'High availability controllers are not supported on {_REPR}.',
48
51
  }
@@ -56,6 +56,8 @@ class Nebius(clouds.Cloud):
56
56
  (f'Migrating disk is currently not supported on {_REPR}.'),
57
57
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
58
58
  (f'Custom disk tier is currently not supported on {_REPR}.'),
59
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
60
+ ('Custom network tier is currently not supported on Nebius.'),
59
61
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
60
62
  ('High availability controllers are not supported on Nebius.'),
61
63
  }
@@ -41,6 +41,9 @@ class Paperspace(clouds.Cloud):
41
41
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
42
42
  'Custom disk tiers'
43
43
  f' is not supported in {_REPR}.',
44
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
45
+ ('Custom network tier is currently not supported in '
46
+ f'{_REPR}.'),
44
47
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
45
48
  (f'High availability controllers are not supported in {_REPR}.'),
46
49
  }
@@ -30,6 +30,8 @@ class RunPod(clouds.Cloud):
30
30
  'are non-trivial on RunPod.'),
31
31
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
32
32
  ('Customizing disk tier is not supported yet on RunPod.'),
33
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
34
+ ('Custom network tier is not supported yet on RunPod.'),
33
35
  clouds.CloudImplementationFeatures.STORAGE_MOUNTING:
34
36
  ('Mounting object stores is not supported on RunPod. To read data '
35
37
  'from object stores on RunPod, use `mode: COPY` to copy the data '
@@ -56,6 +56,9 @@ class SCP(clouds.Cloud):
56
56
  (f'Spot instances are not supported in {_REPR}.'),
57
57
  clouds.CloudImplementationFeatures.CUSTOM_DISK_TIER:
58
58
  (f'Custom disk tiers are not supported in {_REPR}.'),
59
+ clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
60
+ ('Custom network tier is currently not supported in '
61
+ f'{_REPR}.'),
59
62
  clouds.CloudImplementationFeatures.OPEN_PORTS:
60
63
  (f'Opening ports is currently not supported on {_REPR}.'),
61
64
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS: