skypilot-nightly 1.0.0.dev20250510__tar.gz → 1.0.0.dev20250514__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 (418) hide show
  1. {skypilot_nightly-1.0.0.dev20250510/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250514}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/cloud_vm_ray_backend.py +22 -3
  4. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/cli.py +109 -109
  5. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/cli.py +109 -109
  6. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/gcp.py +59 -16
  7. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +33 -11
  8. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/gcp_catalog.py +7 -1
  9. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/404.html +1 -1
  10. skypilot_nightly-1.0.0.dev20250514/sky/dashboard/out/_next/static/chunks/845-0ca6f2c1ba667c3b.js +1 -0
  11. {skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ → skypilot_nightly-1.0.0.dev20250514/sky/dashboard/out/_next/static/tdxxQrPV6NW90a983oHXe}/_buildManifest.js +1 -1
  12. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  13. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/clusters/[cluster].html +1 -1
  14. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/clusters.html +1 -1
  15. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/index.html +1 -1
  16. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/jobs/[job].html +1 -1
  17. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/jobs.html +1 -1
  18. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/docker_utils.py +4 -1
  19. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/config.py +197 -15
  20. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/constants.py +64 -0
  21. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/instance.py +3 -1
  22. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/utils.py +4 -2
  23. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/resources.py +4 -0
  24. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/constants.py +3 -0
  25. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/gcp-ray.yml.j2 +11 -0
  26. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/nebius-ray.yml.j2 +7 -1
  27. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/websocket_proxy.py +29 -9
  28. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/schemas.py +9 -1
  29. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  30. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/SOURCES.txt +3 -3
  31. skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/chunks/845-0f8017370869e269.js +0 -1
  32. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/LICENSE +0 -0
  33. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/MANIFEST.in +0 -0
  34. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/README.md +0 -0
  35. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/pyproject.toml +0 -0
  36. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/setup.cfg +0 -0
  37. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/setup.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/__init__.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/aws.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/azure.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/cloudflare.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/common.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/cudo.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/do.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/docker.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/gcp.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/ibm.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/kubernetes.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/nebius.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/oci.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/runpod.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/vast.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/vsphere.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/admin_policy.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/authentication.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/__init__.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/backend.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/backend_utils.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/docker_utils.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/local_docker_backend.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/wheel_utils.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/benchmark/__init__.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/benchmark/benchmark_state.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/benchmark/benchmark_utils.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/check.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/__init__.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/common.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/sdk.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/cloud_stores.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/__init__.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/aws.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/azure.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/cloud.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/cudo.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/do.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/fluidstack.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/ibm.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/kubernetes.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/lambda_cloud.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/nebius.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/oci.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/paperspace.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/runpod.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/scp.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/__init__.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/common.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/config.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/constants.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/do_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/__init__.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/aws_utils.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/azure_utils.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/gcp_utils.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/oci_utils.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/scp_utils.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/vast.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/vsphere.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/core.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dag.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/236-f49500b82ad5392d.js +0 -0
  125. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
  126. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/37-0a572fe0dbb89c4d.js +0 -0
  127. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/678-206dddca808e6d16.js +0 -0
  128. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/979-7bf73a4c7cea0f5c.js +0 -0
  129. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  130. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  131. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  132. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  133. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/_app-e6b013bc3f77ad60.js +0 -0
  134. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  135. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-e15db85d0ea1fbe1.js +0 -0
  136. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-f383db7389368ea7.js +0 -0
  137. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js +0 -0
  138. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/index-f9f039532ca8cbc4.js +0 -0
  139. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-03f279c6741fb48b.js +0 -0
  140. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js +0 -0
  141. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  142. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
  143. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/css/c6933bbb2ce7f4dd.css +0 -0
  144. {skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ → skypilot_nightly-1.0.0.dev20250514/sky/dashboard/out/_next/static/tdxxQrPV6NW90a983oHXe}/_ssgManifest.js +0 -0
  145. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/favicon.ico +0 -0
  146. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/skypilot.svg +0 -0
  147. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  148. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/__init__.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/data_transfer.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/data_utils.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/mounting_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/storage.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/storage_utils.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/exceptions.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/execution.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/global_user_state.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/__init__.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/client/__init__.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/client/sdk.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/constants.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/controller.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/dashboard/dashboard.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/dashboard/static/favicon.ico +0 -0
  164. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/dashboard/templates/index.html +0 -0
  165. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/recovery_strategy.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/scheduler.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/__init__.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/core.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/dashboard_utils.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/server.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/state.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/utils.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/models.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/optimizer.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/__init__.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/__init__.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/config.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/instance.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/utils.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/__init__.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/azure-config-template.json +0 -0
  182. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/config.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/instance.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/common.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/constants.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/__init__.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/config.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/cudo_machine_type.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/cudo_utils.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/cudo_wrapper.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/instance.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/__init__.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/config.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/constants.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/instance.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/utils.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/__init__.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/config.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/instance.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/__init__.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/instance.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/instance_utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/mig_utils.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/instance_setup.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/__init__.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/config.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/constants.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/instance.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  211. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/network.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/network_utils.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/utils.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/__init__.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/config.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/instance.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/logging.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/metadata_utils.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/__init__.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/config.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/__init__.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/config.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/instance.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/query_utils.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/__init__.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/config.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/constants.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/instance.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/utils.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/provisioner.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/__init__.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/api/__init__.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/api/commands.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/api/pods.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/config.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/instance.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/utils.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/__init__.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/config.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/instance.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/utils.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/__init__.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/__init__.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/custom_script.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/id_generator.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/service_manager.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/vim_utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/config.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/instance.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/vsphere_utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/__init__.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/autoscalers.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/client/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/client/sdk.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/constants.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/controller.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/load_balancer.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/load_balancing_policies.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/replica_managers.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/serve_state.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/serve_utils.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/server/__init__.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/server/core.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/server/server.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/service.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/service_spec.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/spot_placer.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/__init__.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/common.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/config.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/constants.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/html/log.html +0 -0
  280. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/__init__.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/event_loop.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/executor.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/payloads.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/preconditions.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/process.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/queues/__init__.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/queues/local_queue.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/queues/mp_queue.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/requests.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/serializers/__init__.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/serializers/decoders.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/serializers/encoders.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/server.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/stream_utils.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/uvicorn.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/setup_files/MANIFEST.in +0 -0
  297. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/setup_files/dependencies.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/setup_files/setup.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/sky_logging.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/LICENSE +0 -0
  301. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/__init__.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/attempt_skylet.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/autostop_lib.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/configs.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/events.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/job_lib.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/log_lib.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/log_lib.pyi +0 -0
  309. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/command_runner.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/__init__.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/node_provider.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/utils.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/scp/__init__.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/scp/config.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/scp/node_provider.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/__init__.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  320. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/cli.py.patch +0 -0
  321. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  322. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  323. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  324. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/updater.py.patch +0 -0
  325. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/worker.py.patch +0 -0
  326. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/skylet.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/subprocess_daemon.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skypilot_config.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/task.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/aws-ray.yml.j2 +0 -0
  331. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/azure-ray.yml.j2 +0 -0
  332. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/cudo-ray.yml.j2 +0 -0
  333. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/do-ray.yml.j2 +0 -0
  334. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  335. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/ibm-ray.yml.j2 +0 -0
  336. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/jobs-controller.yaml.j2 +0 -0
  337. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  338. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  339. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  340. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  341. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  342. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/lambda-ray.yml.j2 +0 -0
  343. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/local-ray.yml.j2 +0 -0
  344. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/oci-ray.yml.j2 +0 -0
  345. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/paperspace-ray.yml.j2 +0 -0
  346. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/runpod-ray.yml.j2 +0 -0
  347. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/scp-ray.yml.j2 +0 -0
  348. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  349. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  350. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/vast-ray.yml.j2 +0 -0
  351. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/vsphere-ray.yml.j2 +0 -0
  352. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/usage/__init__.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/usage/constants.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/usage/usage_lib.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/__init__.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/accelerator_registry.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/admin_policy_utils.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/annotations.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/atomic.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/aws/__init__.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/aws/get_default_security_group.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/cli_utils/__init__.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/cli_utils/status_utils.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/cluster_utils.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/command_runner.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/command_runner.pyi +0 -0
  367. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/common.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/common_utils.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/config_utils.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/control_master_utils.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/controller_utils.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/dag_utils.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/db_utils.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/env_options.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/__init__.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/create_cluster.sh +0 -0
  377. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  378. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  379. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  382. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  384. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  385. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  387. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes_enums.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/log_utils.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/message_utils.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/registry.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/resources_utils.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/rich_console_utils.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/rich_utils.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/status_lib.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/subprocess_utils.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/timeline.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/ux_utils.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/validator.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  401. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  402. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/requires.txt +0 -0
  403. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/top_level.txt +0 -0
  404. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_api.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_cli.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_config.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_failover.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_global_user_state.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_jobs.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_jobs_and_serve.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_list_accelerators.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_optimizer_dryruns.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_optimizer_random_dag.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_serve_autoscaler.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_smoke.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_storage.py +0 -0
  417. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_wheels.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/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.dev20250510
3
+ Version: 1.0.0.dev20250514
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 = '18a1d8499158f53818133261776ae408ac447de3'
8
+ _SKYPILOT_COMMIT_SHA = '72eec01ce074d475ef65d48fbdf91b9216f41754'
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.dev20250510'
38
+ __version__ = '1.0.0.dev20250514'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -4657,6 +4657,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4657
4657
  handle_before_refresh = record['handle']
4658
4658
  status_before_refresh = record['status']
4659
4659
 
4660
+ handle: Optional[CloudVmRayResourceHandle]
4660
4661
  prev_cluster_status, handle = (status_before_refresh,
4661
4662
  handle_before_refresh)
4662
4663
 
@@ -4677,7 +4678,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4677
4678
  prev_cluster_status = None
4678
4679
  handle = None
4679
4680
  # We should check the cluster_ever_up after refresh, because if the
4680
- # cluster is terminated (through console or auto-dwon), the record will
4681
+ # cluster is terminated (through console or auto-down), the record will
4681
4682
  # become None and the cluster_ever_up should be considered as False.
4682
4683
  cluster_ever_up = record is not None and record['cluster_ever_up']
4683
4684
  prev_config_hash = record['config_hash'] if record is not None else None
@@ -4690,11 +4691,14 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4690
4691
  self.check_resources_fit_cluster(handle, task)
4691
4692
  # Use the existing cluster.
4692
4693
  assert handle.launched_resources is not None, (cluster_name, handle)
4694
+ # Take a random resource in order to get resource info that applies
4695
+ # to all resources.
4696
+ one_task_resource = list(task.resources)[0]
4693
4697
  # Assume resources share the same ports.
4694
4698
  for resource in task.resources:
4695
- assert resource.ports == list(task.resources)[0].ports
4699
+ assert resource.ports == one_task_resource.ports
4696
4700
  requested_ports_set = resources_utils.port_ranges_to_set(
4697
- list(task.resources)[0].ports)
4701
+ one_task_resource.ports)
4698
4702
  current_ports_set = resources_utils.port_ranges_to_set(
4699
4703
  handle.launched_resources.ports)
4700
4704
  all_ports = resources_utils.port_set_to_ranges(current_ports_set |
@@ -4713,6 +4717,21 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4713
4717
  'a new cluster with the desired ports open.')
4714
4718
  if all_ports:
4715
4719
  to_provision = to_provision.copy(ports=all_ports)
4720
+ # Docker login should always be the same for all resources, since
4721
+ # it's set from envs.
4722
+ for resource in task.resources:
4723
+ assert (resource.docker_login_config ==
4724
+ one_task_resource.docker_login_config), (
4725
+ resource.docker_login_config,
4726
+ one_task_resource.docker_login_config)
4727
+ # If we have docker login config in the new task, override the
4728
+ # existing resources to pick up new credentials. This allows the
4729
+ # user to specify new or fixed credentials if the existing
4730
+ # credentials are not working. If we don't do this, the credentials
4731
+ # from the existing resources will always be reused.
4732
+ if one_task_resource.docker_login_config is not None:
4733
+ to_provision = to_provision.copy(
4734
+ _docker_login_config=one_task_resource.docker_login_config)
4716
4735
  return RetryingVmProvisioner.ToProvisionConfig(
4717
4736
  cluster_name,
4718
4737
  to_provision,
@@ -91,6 +91,8 @@ from sky.utils.cli_utils import status_utils
91
91
  if typing.TYPE_CHECKING:
92
92
  import types
93
93
 
94
+ import prettytable
95
+
94
96
  pd = adaptors_common.LazyImport('pandas')
95
97
  logger = sky_logging.init_logger(__name__)
96
98
 
@@ -3371,12 +3373,8 @@ def show_gpus(
3371
3373
  * ``QTY_PER_NODE`` (Kubernetes only): GPU quantities that can be requested
3372
3374
  on a single node.
3373
3375
 
3374
- * ``TOTAL_GPUS`` (Kubernetes only): Total number of GPUs available in the
3375
- Kubernetes cluster.
3376
-
3377
- * ``TOTAL_FREE_GPUS`` (Kubernetes only): Number of currently free GPUs
3378
- in the Kubernetes cluster. This is fetched in real-time and may change
3379
- when other users are using the cluster.
3376
+ * ``UTILIZATION`` (Kubernetes only): Total number of GPUs free / available
3377
+ in the Kubernetes cluster.
3380
3378
  """
3381
3379
  # validation for the --region flag
3382
3380
  if region is not None and cloud is None:
@@ -3415,15 +3413,16 @@ def show_gpus(
3415
3413
  # TODO(zhwu,romilb): We should move most of these kubernetes related
3416
3414
  # queries into the backend, especially behind the server.
3417
3415
  def _get_kubernetes_realtime_gpu_tables(
3418
- context: Optional[str] = None,
3419
- name_filter: Optional[str] = None,
3420
- quantity_filter: Optional[int] = None):
3416
+ context: Optional[str] = None,
3417
+ name_filter: Optional[str] = None,
3418
+ quantity_filter: Optional[int] = None
3419
+ ) -> Tuple[List[Tuple[str, 'prettytable.PrettyTable']],
3420
+ Optional['prettytable.PrettyTable'], List[Tuple[
3421
+ str, 'models.KubernetesNodesInfo']]]:
3421
3422
  if quantity_filter:
3422
3423
  qty_header = 'QTY_FILTER'
3423
- free_header = 'FILTERED_FREE_GPUS'
3424
3424
  else:
3425
3425
  qty_header = 'REQUESTABLE_QTY_PER_NODE'
3426
- free_header = 'TOTAL_FREE_GPUS'
3427
3426
 
3428
3427
  realtime_gpu_availability_lists = sdk.stream_and_get(
3429
3428
  sdk.realtime_kubernetes_gpu_availability(
@@ -3449,41 +3448,19 @@ def show_gpus(
3449
3448
  realtime_gpu_infos = []
3450
3449
  total_gpu_info: Dict[str, List[int]] = collections.defaultdict(
3451
3450
  lambda: [0, 0])
3451
+ all_nodes_info = []
3452
3452
 
3453
- # TODO(kyuds): remove backwards compatibility code (else branch)
3454
- # when API version is bumped
3455
3453
  if realtime_gpu_availability_lists:
3456
- # can't check for isinstance tuple as the tuple is converted to list
3457
- if len(realtime_gpu_availability_lists[0]) == 2:
3458
- for (ctx, availability_list) in realtime_gpu_availability_lists:
3459
- realtime_gpu_table = log_utils.create_table(
3460
- ['GPU', qty_header, 'TOTAL_GPUS', free_header])
3461
- for realtime_gpu_availability in sorted(availability_list):
3462
- gpu_availability = models.RealtimeGpuAvailability(
3463
- *realtime_gpu_availability)
3464
- available_qty = (gpu_availability.available
3465
- if gpu_availability.available != -1
3466
- else no_permissions_str)
3467
- realtime_gpu_table.add_row([
3468
- gpu_availability.gpu,
3469
- _list_to_str(gpu_availability.counts),
3470
- gpu_availability.capacity,
3471
- available_qty,
3472
- ])
3473
- gpu = gpu_availability.gpu
3474
- capacity = gpu_availability.capacity
3475
- # we want total, so skip permission denied.
3476
- available = max(gpu_availability.available, 0)
3477
- if capacity > 0:
3478
- total_gpu_info[gpu][0] += capacity
3479
- total_gpu_info[gpu][1] += available
3480
- realtime_gpu_infos.append((ctx, realtime_gpu_table))
3481
- else:
3482
- # can remove this with api server version bump.
3483
- # 2025.05.03
3484
- availability_list = realtime_gpu_availability_lists
3454
+ if len(realtime_gpu_availability_lists[0]) != 2:
3455
+ # TODO(kyuds): for backwards compatibility, as we add new
3456
+ # context to the API server response in #5362. Remove this after
3457
+ # 0.10.0.
3458
+ realtime_gpu_availability_lists = [
3459
+ (context, realtime_gpu_availability_lists)
3460
+ ]
3461
+ for (ctx, availability_list) in realtime_gpu_availability_lists:
3485
3462
  realtime_gpu_table = log_utils.create_table(
3486
- ['GPU', qty_header, 'TOTAL_GPUS', free_header])
3463
+ ['GPU', qty_header, 'UTILIZATION'])
3487
3464
  for realtime_gpu_availability in sorted(availability_list):
3488
3465
  gpu_availability = models.RealtimeGpuAvailability(
3489
3466
  *realtime_gpu_availability)
@@ -3493,49 +3470,100 @@ def show_gpus(
3493
3470
  realtime_gpu_table.add_row([
3494
3471
  gpu_availability.gpu,
3495
3472
  _list_to_str(gpu_availability.counts),
3496
- gpu_availability.capacity,
3497
- available_qty,
3473
+ f'{available_qty} of {gpu_availability.capacity} free',
3498
3474
  ])
3499
- realtime_gpu_infos.append((context, realtime_gpu_table))
3475
+ gpu = gpu_availability.gpu
3476
+ capacity = gpu_availability.capacity
3477
+ # we want total, so skip permission denied.
3478
+ available = max(gpu_availability.available, 0)
3479
+ if capacity > 0:
3480
+ total_gpu_info[gpu][0] += capacity
3481
+ total_gpu_info[gpu][1] += available
3482
+ realtime_gpu_infos.append((ctx, realtime_gpu_table))
3483
+ # Collect node info for this context
3484
+ nodes_info = sdk.stream_and_get(
3485
+ sdk.kubernetes_node_info(context=ctx))
3486
+ all_nodes_info.append((ctx, nodes_info))
3500
3487
 
3501
3488
  # display an aggregated table for all contexts
3502
3489
  # if there are more than one contexts with GPUs
3503
3490
  if len(realtime_gpu_infos) > 1:
3504
3491
  total_realtime_gpu_table = log_utils.create_table(
3505
- ['GPU', 'TOTAL_GPUS', free_header])
3492
+ ['GPU', 'UTILIZATION'])
3506
3493
  for gpu, stats in total_gpu_info.items():
3507
- total_realtime_gpu_table.add_row([gpu, stats[0], stats[1]])
3494
+ total_realtime_gpu_table.add_row(
3495
+ [gpu, f'{stats[1]} of {stats[0]} free'])
3508
3496
  else:
3509
3497
  total_realtime_gpu_table = None
3510
3498
 
3511
- return realtime_gpu_infos, total_realtime_gpu_table
3499
+ return realtime_gpu_infos, total_realtime_gpu_table, all_nodes_info
3512
3500
 
3513
- def _format_kubernetes_node_info(context: Optional[str]):
3501
+ def _format_kubernetes_node_info_combined(
3502
+ contexts_info: List[Tuple[str,
3503
+ 'models.KubernetesNodesInfo']]) -> str:
3514
3504
  node_table = log_utils.create_table(
3515
- ['NODE_NAME', 'GPU_NAME', 'TOTAL_GPUS', 'FREE_GPUS'])
3505
+ ['CONTEXT', 'NODE', 'GPU', 'UTILIZATION'])
3516
3506
 
3517
- nodes_info = sdk.stream_and_get(
3518
- sdk.kubernetes_node_info(context=context))
3519
3507
  no_permissions_str = '<no permissions>'
3520
- for node_name, node_info in nodes_info.node_info_dict.items():
3521
- available = node_info.free[
3522
- 'accelerators_available'] if node_info.free[
3523
- 'accelerators_available'] != -1 else no_permissions_str
3524
- total = node_info.total['accelerator_count']
3525
- if total > 0:
3508
+ hints = []
3509
+
3510
+ for context, nodes_info in contexts_info:
3511
+ context_name = context if context else 'default'
3512
+ if nodes_info.hint:
3513
+ hints.append(f'{context_name}: {nodes_info.hint}')
3514
+
3515
+ for node_name, node_info in nodes_info.node_info_dict.items():
3516
+ available = node_info.free[
3517
+ 'accelerators_available'] if node_info.free[
3518
+ 'accelerators_available'] != -1 else no_permissions_str
3519
+ acc_type = node_info.accelerator_type
3520
+ if acc_type is None:
3521
+ acc_type = '-'
3526
3522
  node_table.add_row([
3527
- node_name, node_info.accelerator_type,
3528
- node_info.total['accelerator_count'], available
3523
+ context_name, node_name, acc_type,
3524
+ f'{available} of {node_info.total["accelerator_count"]} '
3525
+ 'free'
3529
3526
  ])
3530
- k8s_per_node_acc_message = (
3531
- 'Kubernetes per node accelerator availability ')
3532
- if nodes_info.hint:
3533
- k8s_per_node_acc_message += nodes_info.hint
3527
+
3528
+ k8s_per_node_acc_message = ('Kubernetes per-node GPU availability')
3529
+ if hints:
3530
+ k8s_per_node_acc_message += ' (' + '; '.join(hints) + ')'
3531
+
3534
3532
  return (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
3535
3533
  f'{k8s_per_node_acc_message}'
3536
3534
  f'{colorama.Style.RESET_ALL}\n'
3537
3535
  f'{node_table.get_string()}')
3538
3536
 
3537
+ def _format_kubernetes_realtime_gpu(
3538
+ total_table: 'prettytable.PrettyTable',
3539
+ k8s_realtime_infos: List[Tuple[str, 'prettytable.PrettyTable']],
3540
+ all_nodes_info: List[Tuple[str, 'models.KubernetesNodesInfo']],
3541
+ show_node_info: bool) -> Generator[str, None, None]:
3542
+ yield (f'{colorama.Fore.GREEN}{colorama.Style.BRIGHT}'
3543
+ 'Kubernetes GPUs'
3544
+ f'{colorama.Style.RESET_ALL}')
3545
+ # print total table
3546
+ if total_table is not None:
3547
+ yield '\n'
3548
+ yield from total_table.get_string()
3549
+
3550
+ # print individual infos.
3551
+ for (ctx, k8s_realtime_table) in k8s_realtime_infos:
3552
+ yield '\n'
3553
+ # Print context header separately
3554
+ if ctx:
3555
+ context_str = f'Context: {ctx}'
3556
+ else:
3557
+ context_str = 'Default Context'
3558
+ yield (
3559
+ f'{colorama.Fore.CYAN}{context_str}{colorama.Style.RESET_ALL}\n'
3560
+ )
3561
+ yield from k8s_realtime_table.get_string()
3562
+
3563
+ if show_node_info:
3564
+ yield '\n'
3565
+ yield _format_kubernetes_node_info_combined(all_nodes_info)
3566
+
3539
3567
  def _output() -> Generator[str, None, None]:
3540
3568
  gpu_table = log_utils.create_table(
3541
3569
  ['COMMON_GPU', 'AVAILABLE_QUANTITIES'])
@@ -3568,7 +3596,7 @@ def show_gpus(
3568
3596
  # If --cloud kubernetes is not specified, we want to catch
3569
3597
  # the case where no GPUs are available on the cluster and
3570
3598
  # print the warning at the end.
3571
- k8s_realtime_infos, total_table = _get_kubernetes_realtime_gpu_tables(context) # pylint: disable=line-too-long
3599
+ k8s_realtime_infos, total_table, all_nodes_info = _get_kubernetes_realtime_gpu_tables(context) # pylint: disable=line-too-long
3572
3600
  except ValueError as e:
3573
3601
  if not cloud_is_kubernetes:
3574
3602
  # Make it a note if cloud is not kubernetes
@@ -3577,27 +3605,12 @@ def show_gpus(
3577
3605
  else:
3578
3606
  print_section_titles = True
3579
3607
 
3580
- # print total table
3581
- if total_table is not None:
3582
- yield (f'{colorama.Fore.GREEN}{colorama.Style.BRIGHT}'
3583
- 'Total Kubernetes GPUs'
3584
- f'{colorama.Style.RESET_ALL}\n')
3585
- yield from total_table.get_string()
3586
- yield '\n\n'
3587
-
3588
- # print individual infos.
3589
- for (idx,
3590
- (ctx,
3591
- k8s_realtime_table)) in enumerate(k8s_realtime_infos):
3592
- context_str = f'(Context: {ctx})' if ctx else ''
3593
- yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
3594
- f'Kubernetes GPUs {context_str}'
3595
- f'{colorama.Style.RESET_ALL}\n')
3596
- yield from k8s_realtime_table.get_string()
3597
- yield '\n\n'
3598
- yield _format_kubernetes_node_info(ctx)
3599
- if idx != len(k8s_realtime_infos) - 1:
3600
- yield '\n\n'
3608
+ yield from _format_kubernetes_realtime_gpu(
3609
+ total_table,
3610
+ k8s_realtime_infos,
3611
+ all_nodes_info,
3612
+ show_node_info=True)
3613
+
3601
3614
  if kubernetes_autoscaling:
3602
3615
  k8s_messages += (
3603
3616
  '\n' + kubernetes_utils.KUBERNETES_AUTOSCALER_NOTE)
@@ -3688,31 +3701,18 @@ def show_gpus(
3688
3701
  print_section_titles = True
3689
3702
  # TODO(romilb): Show filtered per node GPU availability here as well
3690
3703
  try:
3691
- k8s_realtime_infos, total_table = _get_kubernetes_realtime_gpu_tables( # pylint: disable=line-too-long
3692
- context=region,
3693
- name_filter=name,
3694
- quantity_filter=quantity)
3695
-
3696
- # print total table
3697
- if total_table is not None:
3698
- yield (f'{colorama.Fore.GREEN}{colorama.Style.BRIGHT}'
3699
- 'Total Kubernetes GPUs'
3700
- f'{colorama.Style.RESET_ALL}\n')
3701
- yield from total_table.get_string()
3702
- yield '\n\n'
3703
-
3704
- # print individual tables
3705
- for (ctx, k8s_realtime_table) in k8s_realtime_infos:
3706
- context_str = f'(Context: {ctx})' if ctx else ''
3707
- yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
3708
- f'Kubernetes GPUs {context_str}'
3709
- f'{colorama.Style.RESET_ALL}\n')
3710
- yield from k8s_realtime_table.get_string()
3711
- yield '\n\n'
3704
+ (k8s_realtime_infos, total_table,
3705
+ all_nodes_info) = _get_kubernetes_realtime_gpu_tables(
3706
+ context=region, name_filter=name, quantity_filter=quantity)
3707
+
3708
+ yield from _format_kubernetes_realtime_gpu(total_table,
3709
+ k8s_realtime_infos,
3710
+ all_nodes_info,
3711
+ show_node_info=False)
3712
3712
  except ValueError as e:
3713
3713
  # In the case of a specific accelerator, show the error message
3714
3714
  # immediately (e.g., "Resources H100 not found ...")
3715
- yield str(e)
3715
+ yield common_utils.format_exception(e, use_bracket=True)
3716
3716
  if kubernetes_autoscaling:
3717
3717
  k8s_messages += ('\n' +
3718
3718
  kubernetes_utils.KUBERNETES_AUTOSCALER_NOTE)