skypilot-nightly 1.0.0.dev20250522__tar.gz → 1.0.0.dev20250523__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 (431) hide show
  1. {skypilot_nightly-1.0.0.dev20250522/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250523}/PKG-INFO +6 -1
  2. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/kubernetes.py +46 -16
  4. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/cloud_vm_ray_backend.py +16 -4
  5. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/check.py +109 -44
  6. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/cli.py +261 -90
  7. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/client/cli.py +261 -90
  8. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/client/sdk.py +50 -2
  9. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/__init__.py +3 -0
  10. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/aws.py +4 -2
  11. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/azure.py +4 -2
  12. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/cloud.py +24 -6
  13. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/cudo.py +2 -1
  14. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/do.py +2 -1
  15. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/fluidstack.py +2 -1
  16. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/gcp.py +4 -2
  17. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/ibm.py +4 -2
  18. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/kubernetes.py +66 -22
  19. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/lambda_cloud.py +2 -1
  20. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/nebius.py +18 -2
  21. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/oci.py +4 -2
  22. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/paperspace.py +2 -1
  23. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/runpod.py +2 -1
  24. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/scp.py +2 -1
  25. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/constants.py +1 -1
  26. skypilot_nightly-1.0.0.dev20250523/sky/clouds/service_catalog/ssh_catalog.py +167 -0
  27. skypilot_nightly-1.0.0.dev20250523/sky/clouds/ssh.py +203 -0
  28. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/vast.py +2 -1
  29. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/vsphere.py +2 -1
  30. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/core.py +53 -9
  31. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/404.html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250522/sky/dashboard/out/_next/static/CzOVV6JpRQBRt5GhZuhyK → skypilot_nightly-1.0.0.dev20250523/sky/dashboard/out/_next/static/ECKwDNS9v9y3_IKFZ2lpp}/_buildManifest.js +1 -1
  33. skypilot_nightly-1.0.0.dev20250523/sky/dashboard/out/_next/static/chunks/pages/infra-abf08c4384190a39.js +1 -0
  34. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  35. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/clusters/[cluster].html +1 -1
  36. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/clusters.html +1 -1
  37. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/index.html +1 -1
  38. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/infra.html +1 -1
  39. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/jobs/[job].html +1 -1
  40. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/jobs.html +1 -1
  41. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/optimizer.py +23 -4
  42. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/__init__.py +1 -0
  43. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/aws/instance.py +17 -1
  44. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/instance.py +16 -5
  45. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/utils.py +37 -19
  46. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/nebius/instance.py +3 -1
  47. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/nebius/utils.py +14 -2
  48. skypilot_nightly-1.0.0.dev20250523/sky/provision/ssh/__init__.py +18 -0
  49. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/resources.py +4 -1
  50. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/payloads.py +7 -0
  51. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/server.py +40 -0
  52. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/setup_files/dependencies.py +1 -0
  53. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/nebius-ray.yml.j2 +12 -0
  54. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/infra_utils.py +21 -1
  55. skypilot_nightly-1.0.0.dev20250523/sky/utils/kubernetes/cleanup-tunnel.sh +62 -0
  56. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/create_cluster.sh +1 -0
  57. skypilot_nightly-1.0.0.dev20250523/sky/utils/kubernetes/deploy_remote_cluster.py +1437 -0
  58. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/kubernetes_deploy_utils.py +117 -10
  59. skypilot_nightly-1.0.0.dev20250523/sky/utils/kubernetes/ssh-tunnel.sh +387 -0
  60. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/log_utils.py +214 -1
  61. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/schemas.py +21 -0
  62. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/ux_utils.py +2 -1
  63. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523/skypilot_nightly.egg-info}/PKG-INFO +6 -1
  64. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/skypilot_nightly.egg-info/SOURCES.txt +9 -4
  65. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/skypilot_nightly.egg-info/requires.txt +4 -0
  66. skypilot_nightly-1.0.0.dev20250522/sky/dashboard/out/_next/static/chunks/pages/infra-9180cd91cee64b96.js +0 -1
  67. skypilot_nightly-1.0.0.dev20250522/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -308
  68. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/LICENSE +0 -0
  69. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/MANIFEST.in +0 -0
  70. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/README.md +0 -0
  71. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/pyproject.toml +0 -0
  72. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/setup.cfg +0 -0
  73. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/setup.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/__init__.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/aws.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/azure.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/cloudflare.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/common.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/cudo.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/do.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/docker.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/gcp.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/ibm.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/nebius.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/oci.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/runpod.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/vast.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/adaptors/vsphere.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/admin_policy.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/authentication.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/__init__.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/backend.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/backend_utils.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/docker_utils.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/local_docker_backend.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/backends/wheel_utils.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/benchmark/__init__.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/benchmark/benchmark_state.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/benchmark/benchmark_utils.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/client/__init__.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/client/common.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/cloud_stores.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/__init__.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/common.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/config.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/do_catalog.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/utils/__init__.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/utils/aws_utils.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/utils/azure_utils.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/utils/gcp_utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/utils/oci_utils.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/clouds/utils/scp_utils.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dag.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250522/sky/dashboard/out/_next/static/CzOVV6JpRQBRt5GhZuhyK → skypilot_nightly-1.0.0.dev20250523/sky/dashboard/out/_next/static/ECKwDNS9v9y3_IKFZ2lpp}/_ssgManifest.js +0 -0
  141. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/236-1a3a9440417720eb.js +0 -0
  142. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
  143. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/37-d584022b0da4ac3b.js +0 -0
  144. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/393-e1eaa440481337ec.js +0 -0
  145. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/480-f28cd152a98997de.js +0 -0
  146. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/582-683f4f27b81996dc.js +0 -0
  147. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  148. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  149. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  150. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  151. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js +0 -0
  152. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  153. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-33bc2bec322249b1.js +0 -0
  154. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-e2fc2dd1955e6c36.js +0 -0
  155. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/clusters-3a748bd76e5c2984.js +0 -0
  156. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
  157. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-70756c2dad850a7e.js +0 -0
  158. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/pages/jobs-ecd804b9272f4a7c.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/_next/static/css/7e7ce4ff31d3977b.css +0 -0
  162. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/favicon.ico +0 -0
  163. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/skypilot.svg +0 -0
  164. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  165. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/data/__init__.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/data/data_transfer.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/data/data_utils.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/data/mounting_utils.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/data/storage.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/data/storage_utils.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/exceptions.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/execution.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/global_user_state.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/__init__.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/client/__init__.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/client/sdk.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/constants.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/controller.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/dashboard/dashboard.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/dashboard/static/favicon.ico +0 -0
  181. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/dashboard/templates/index.html +0 -0
  182. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/recovery_strategy.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/scheduler.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/server/__init__.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/server/core.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/server/dashboard_utils.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/server/server.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/state.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/jobs/utils.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/models.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/aws/__init__.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/aws/config.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/aws/utils.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/azure/__init__.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/azure/azure-config-template.json +0 -0
  196. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/azure/config.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/azure/instance.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/common.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/constants.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/cudo/__init__.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/cudo/config.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/cudo/cudo_machine_type.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/cudo/cudo_utils.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/cudo/cudo_wrapper.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/cudo/instance.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/do/__init__.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/do/config.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/do/constants.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/do/instance.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/do/utils.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/docker_utils.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/fluidstack/__init__.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/fluidstack/config.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/fluidstack/instance.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/__init__.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/config.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/constants.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/instance.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/instance_utils.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/mig_utils.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/gcp/volume_utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/instance_setup.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/config.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/constants.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  228. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/network.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/kubernetes/network_utils.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/lambda_cloud/__init__.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/lambda_cloud/config.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/lambda_cloud/instance.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/logging.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/metadata_utils.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/nebius/__init__.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/nebius/config.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/oci/__init__.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/oci/config.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/oci/instance.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/oci/query_utils.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/paperspace/__init__.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/paperspace/config.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/paperspace/constants.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/paperspace/instance.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/paperspace/utils.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/provisioner.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/__init__.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/api/__init__.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/api/commands.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/api/pods.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/config.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/instance.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/runpod/utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vast/__init__.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vast/config.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vast/instance.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vast/utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/__init__.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/custom_script.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/id_generator.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/service_manager.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/common/vim_utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/config.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/instance.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/provision/vsphere/vsphere_utils.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/autoscalers.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/client/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/client/sdk.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/constants.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/controller.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/load_balancer.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/load_balancing_policies.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/replica_managers.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/serve_state.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/serve_utils.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/server/__init__.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/server/core.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/server/server.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/service.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/service_spec.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/serve/spot_placer.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/__init__.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/common.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/config.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/constants.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/html/log.html +0 -0
  296. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/html/token_page.html +0 -0
  297. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/__init__.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/event_loop.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/executor.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/preconditions.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/process.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/queues/__init__.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/queues/local_queue.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/queues/mp_queue.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/requests.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/serializers/__init__.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/serializers/decoders.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/requests/serializers/encoders.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/stream_utils.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/server/uvicorn.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/setup_files/MANIFEST.in +0 -0
  312. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/setup_files/setup.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/sky_logging.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/LICENSE +0 -0
  315. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/__init__.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/attempt_skylet.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/autostop_lib.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/configs.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/constants.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/events.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/job_lib.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/log_lib.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/log_lib.pyi +0 -0
  324. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/__init__.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/command_runner.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/ibm/__init__.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/ibm/node_provider.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/ibm/utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/scp/__init__.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/scp/config.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/providers/scp/node_provider.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/__init__.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  335. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/cli.py.patch +0 -0
  336. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  337. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  338. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  339. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/updater.py.patch +0 -0
  340. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/ray_patches/worker.py.patch +0 -0
  341. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/skylet.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skylet/subprocess_daemon.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/skypilot_config.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/task.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/aws-ray.yml.j2 +0 -0
  346. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/azure-ray.yml.j2 +0 -0
  347. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/cudo-ray.yml.j2 +0 -0
  348. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/do-ray.yml.j2 +0 -0
  349. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  350. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/gcp-ray.yml.j2 +0 -0
  351. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/ibm-ray.yml.j2 +0 -0
  352. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/jobs-controller.yaml.j2 +0 -0
  353. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  354. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  355. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  356. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  357. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  358. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/lambda-ray.yml.j2 +0 -0
  359. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/local-ray.yml.j2 +0 -0
  360. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/oci-ray.yml.j2 +0 -0
  361. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/paperspace-ray.yml.j2 +0 -0
  362. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/runpod-ray.yml.j2 +0 -0
  363. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/scp-ray.yml.j2 +0 -0
  364. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  365. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  366. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/vast-ray.yml.j2 +0 -0
  367. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/vsphere-ray.yml.j2 +0 -0
  368. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/templates/websocket_proxy.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/usage/__init__.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/usage/constants.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/usage/usage_lib.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/__init__.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/accelerator_registry.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/admin_policy_utils.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/annotations.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/atomic.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/aws/__init__.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/aws/get_default_security_group.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/cli_utils/__init__.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/cli_utils/status_utils.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/cluster_utils.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/command_runner.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/command_runner.pyi +0 -0
  384. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/common.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/common_utils.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/config_utils.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/context.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/context_utils.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/control_master_utils.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/controller_utils.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/dag_utils.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/db_utils.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/env_options.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/__init__.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  396. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  399. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  401. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  402. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  403. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/kubernetes_enums.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/message_utils.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/registry.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/resources_utils.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/rich_console_utils.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/rich_utils.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/status_lib.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/subprocess_utils.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/timeline.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/sky/utils/validator.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  415. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  416. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/skypilot_nightly.egg-info/top_level.txt +0 -0
  417. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_api.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_cli.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_config.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_failover.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_global_user_state.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_jobs.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_jobs_and_serve.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_list_accelerators.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_optimizer_dryruns.py +0 -0
  426. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_optimizer_random_dag.py +0 -0
  427. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_serve_autoscaler.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_smoke.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_storage.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/tests/test_wheels.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250522 → skypilot_nightly-1.0.0.dev20250523}/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.dev20250522
3
+ Version: 1.0.0.dev20250523
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -87,6 +87,9 @@ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "oci"
87
87
  Provides-Extra: kubernetes
88
88
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "kubernetes"
89
89
  Requires-Dist: websockets; extra == "kubernetes"
90
+ Provides-Extra: ssh
91
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "ssh"
92
+ Requires-Dist: websockets; extra == "ssh"
90
93
  Provides-Extra: remote
91
94
  Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "remote"
92
95
  Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "remote"
@@ -142,6 +145,8 @@ Requires-Dist: oci; extra == "all"
142
145
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
143
146
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
144
147
  Requires-Dist: websockets; extra == "all"
148
+ Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
149
+ Requires-Dist: websockets; extra == "all"
145
150
  Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "all"
146
151
  Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "all"
147
152
  Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "all"
@@ -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 = '417e7f813d86c03c334e9e12f38718766fc4daa5'
8
+ _SKYPILOT_COMMIT_SHA = '8848c5c597089bae431284150803f4e557383b9e'
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.dev20250522'
38
+ __version__ = '1.0.0.dev20250523'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -3,8 +3,8 @@ import logging
3
3
  import os
4
4
  from typing import Any, Callable, Optional, Set
5
5
 
6
+ from sky import sky_logging
6
7
  from sky.adaptors import common
7
- from sky.sky_logging import set_logging_level
8
8
  from sky.utils import annotations
9
9
  from sky.utils import common_utils
10
10
  from sky.utils import ux_utils
@@ -26,6 +26,8 @@ DEFAULT_IN_CLUSTER_REGION = 'in-cluster'
26
26
  # set to DEFAULT_IN_CLUSTER_REGION.
27
27
  IN_CLUSTER_CONTEXT_NAME_ENV_VAR = 'SKYPILOT_IN_CLUSTER_CONTEXT_NAME'
28
28
 
29
+ logger = sky_logging.init_logger(__name__)
30
+
29
31
 
30
32
  def _decorate_methods(obj: Any, decorator: Callable, decoration_type: str):
31
33
  for attr_name in dir(obj):
@@ -43,7 +45,7 @@ def _decorate_methods(obj: Any, decorator: Callable, decoration_type: str):
43
45
  return obj
44
46
 
45
47
 
46
- def _api_logging_decorator(logger: str, level: int):
48
+ def _api_logging_decorator(logger_src: str, level: int):
47
49
  """Decorator to set logging level for API calls.
48
50
 
49
51
  This is used to suppress the verbose logging from urllib3 when calls to the
@@ -54,7 +56,9 @@ def _api_logging_decorator(logger: str, level: int):
54
56
 
55
57
  def wrapped(*args, **kwargs):
56
58
  obj = api(*args, **kwargs)
57
- _decorate_methods(obj, set_logging_level(logger, level), 'api_log')
59
+ _decorate_methods(obj,
60
+ sky_logging.set_logging_level(logger_src, level),
61
+ 'api_log')
58
62
  return obj
59
63
 
60
64
  return wrapped
@@ -71,27 +75,53 @@ def _load_config(context: Optional[str] = None):
71
75
  except kubernetes.config.config_exception.ConfigException as e:
72
76
  suffix = common_utils.format_exception(e, use_bracket=True)
73
77
  context_name = '(current-context)' if context is None else context
78
+ is_ssh_node_pool = False
79
+ if context_name.startswith('ssh-'):
80
+ context_name = context_name.lstrip('ssh-')
81
+ is_ssh_node_pool = True
74
82
  # Check if exception was due to no current-context
75
83
  if 'Expected key current-context' in str(e):
76
- err_str = ('Failed to load Kubernetes configuration for '
77
- f'{context_name!r}. '
78
- 'Kubeconfig does not contain any valid context(s).'
79
- f'\n{suffix}\n'
80
- ' If you were running a local Kubernetes '
81
- 'cluster, run `sky local up` to start the cluster.')
84
+ if is_ssh_node_pool:
85
+ context_name = context_name.lstrip('ssh-')
86
+ err_str = ('Failed to load SSH Node Pool configuration for '
87
+ f'{context_name!r}.\n'
88
+ ' Run `sky ssh up --infra {context_name}` to '
89
+ 'set up or repair the cluster.')
90
+ else:
91
+ err_str = (
92
+ 'Failed to load Kubernetes configuration for '
93
+ f'{context_name!r}. '
94
+ 'Kubeconfig does not contain any valid context(s).'
95
+ f'\n{suffix}\n'
96
+ ' If you were running a local Kubernetes '
97
+ 'cluster, run `sky local up` to start the cluster.')
82
98
  else:
83
99
  kubeconfig_path = os.environ.get('KUBECONFIG', '~/.kube/config')
84
- err_str = (
85
- f'Failed to load Kubernetes configuration for '
86
- f'{context_name!r}. Please check if your kubeconfig file '
87
- f'exists at {kubeconfig_path} and is valid.\n{suffix}')
88
- err_str += '\nTo disable Kubernetes for SkyPilot: run `sky check`.'
89
- if context is None: # kubernetes defaults to current-context.
100
+ if is_ssh_node_pool:
101
+ err_str = (
102
+ f'Failed to load SSH Node Pool configuration for '
103
+ f'{context_name!r}. Run `sky ssh up --infra '
104
+ f'{context_name}` to set up or repair the cluster.')
105
+ else:
106
+ err_str = (
107
+ 'Failed to load Kubernetes configuration for '
108
+ f'{context_name!r}. Please check if your kubeconfig '
109
+ f'file exists at {kubeconfig_path} and is valid.'
110
+ f'\n{suffix}\n')
111
+ if is_ssh_node_pool:
112
+ err_str += (f'\nTo disable SSH Node Pool {context_name!r}: '
113
+ 'run `sky check`.')
114
+ else:
90
115
  err_str += (
91
116
  '\nHint: Kubernetes attempted to query the current-context '
92
117
  'set in kubeconfig. Check if the current-context is valid.')
93
118
  with ux_utils.print_exception_no_traceback():
94
- raise ValueError(err_str) from None
119
+ if is_ssh_node_pool:
120
+ # For SSH Node Pool, we don't want to surface k8s errors
121
+ # (e.g., missing context) unless debug flag is set.
122
+ logging.debug(f'Kubernetes error: {suffix}')
123
+ else:
124
+ raise ValueError(err_str) from None
95
125
 
96
126
  if context == in_cluster_context_name() or context is None:
97
127
  try:
@@ -192,6 +192,7 @@ def _get_cluster_config_template(cloud):
192
192
  clouds.DO: 'do-ray.yml.j2',
193
193
  clouds.RunPod: 'runpod-ray.yml.j2',
194
194
  clouds.Kubernetes: 'kubernetes-ray.yml.j2',
195
+ clouds.SSH: 'kubernetes-ray.yml.j2',
195
196
  clouds.Vsphere: 'vsphere-ray.yml.j2',
196
197
  clouds.Vast: 'vast-ray.yml.j2',
197
198
  clouds.Fluidstack: 'fluidstack-ray.yml.j2',
@@ -1547,11 +1548,13 @@ class RetryingVmProvisioner(object):
1547
1548
  controller_str = ('' if controller is None else
1548
1549
  f' {controller.value.name}')
1549
1550
  if isinstance(to_provision.cloud, clouds.Kubernetes):
1550
- # Omit the region name for Kubernetes.
1551
+ suffix = '.'
1552
+ if region.name.startswith('ssh-'):
1553
+ suffix = f' ({region.name.lstrip("ssh-")})'
1551
1554
  logger.info(
1552
1555
  ux_utils.starting_message(
1553
1556
  f'Launching{controller_str} on '
1554
- f'{to_provision.cloud}.'))
1557
+ f'{to_provision.cloud}{suffix}'))
1555
1558
  else:
1556
1559
  logger.info(
1557
1560
  ux_utils.starting_message(
@@ -1724,8 +1727,17 @@ class RetryingVmProvisioner(object):
1724
1727
  f'{requested_resources}. ')
1725
1728
  elif to_provision.region is not None:
1726
1729
  # For public clouds, provision.region is always set.
1727
- message = ('Failed to acquire resources in all zones in '
1728
- f'{to_provision.region} for {requested_resources}. ')
1730
+ if to_provision.cloud.is_same_cloud(clouds.SSH()):
1731
+ message = ('Failed to acquire resources in SSH Node Pool '
1732
+ f'({to_provision.region.lstrip("ssh-")}) for '
1733
+ f'{requested_resources}. The SSH Node Pool may not '
1734
+ 'have enough resources.')
1735
+ elif to_provision.cloud.is_same_cloud(clouds.Kubernetes()):
1736
+ message = ('Failed to acquire resources in context '
1737
+ f'{to_provision.region} for {requested_resources}. ')
1738
+ else:
1739
+ message = ('Failed to acquire resources in all zones in '
1740
+ f'{to_provision.region} for {requested_resources}. ')
1729
1741
  else:
1730
1742
  message = (f'Failed to acquire resources in {to_provision.cloud} '
1731
1743
  f'for {requested_resources}. ')
@@ -4,8 +4,7 @@ import itertools
4
4
  import os
5
5
  import traceback
6
6
  from types import ModuleType
7
- from typing import (Any, Callable, Dict, Iterable, List, Optional, Set, Tuple,
8
- Union)
7
+ from typing import Callable, Dict, Iterable, List, Optional, Set, Tuple, Union
9
8
 
10
9
  import click
11
10
  import colorama
@@ -44,7 +43,8 @@ def check_capabilities(
44
43
  def check_one_cloud_one_capability(
45
44
  payload: Tuple[Tuple[str, Union[sky_clouds.Cloud, ModuleType]],
46
45
  sky_cloud.CloudCapability]
47
- ) -> Optional[Tuple[sky_cloud.CloudCapability, bool, Optional[str]]]:
46
+ ) -> Optional[Tuple[sky_cloud.CloudCapability, bool, Optional[Union[
47
+ str, Dict[str, str]]]]]:
48
48
  cloud_tuple, capability = payload
49
49
  _, cloud = cloud_tuple
50
50
  try:
@@ -53,7 +53,9 @@ def check_capabilities(
53
53
  return None
54
54
  except Exception: # pylint: disable=broad-except
55
55
  ok, reason = False, traceback.format_exc()
56
- return capability, ok, reason.strip() if reason else None
56
+ if not isinstance(reason, dict):
57
+ reason = reason.strip() if reason else None
58
+ return (capability, ok, reason)
57
59
 
58
60
  def get_cloud_tuple(
59
61
  cloud_name: str) -> Tuple[str, Union[sky_clouds.Cloud, ModuleType]]:
@@ -100,13 +102,18 @@ def check_capabilities(
100
102
  check_results_dict: Dict[
101
103
  Tuple[str, Union[sky_clouds.Cloud, ModuleType]],
102
104
  List[Tuple[sky_cloud.CloudCapability, bool,
103
- Optional[str]]]] = collections.defaultdict(list)
105
+ Optional[Union[str,
106
+ Dict[str,
107
+ str]]]]]] = collections.defaultdict(list)
108
+ cloud2ctx2text: Dict[str, Dict[str, str]] = {}
104
109
  for combination, check_result in zip(combinations, check_results):
105
110
  if check_result is None:
106
111
  continue
107
- capability, ok, _ = check_result
112
+ capability, ok, ctx2text = check_result
108
113
  cloud_tuple, _ = combination
109
114
  cloud_repr = cloud_tuple[0]
115
+ if isinstance(ctx2text, dict):
116
+ cloud2ctx2text[cloud_repr] = ctx2text
110
117
  if ok:
111
118
  enabled_clouds.setdefault(cloud_repr, []).append(capability)
112
119
  else:
@@ -115,7 +122,8 @@ def check_capabilities(
115
122
 
116
123
  for cloud_tuple, check_result_list in sorted(check_results_dict.items(),
117
124
  key=lambda item: item[0][0]):
118
- _print_checked_cloud(echo, verbose, cloud_tuple, check_result_list)
125
+ _print_checked_cloud(echo, verbose, cloud_tuple, check_result_list,
126
+ cloud2ctx2text.get(cloud_tuple[0], {}))
119
127
 
120
128
  # Determine the set of enabled clouds: (previously enabled clouds + newly
121
129
  # enabled clouds - newly disabled clouds) intersected with
@@ -184,7 +192,8 @@ def check_capabilities(
184
192
  # Pretty print for UX.
185
193
  if not quiet:
186
194
  enabled_clouds_str = '\n ' + '\n '.join([
187
- _format_enabled_cloud(cloud, capabilities)
195
+ _format_enabled_cloud(cloud, capabilities,
196
+ cloud2ctx2text.get(cloud, None))
188
197
  for cloud, capabilities in sorted(enabled_clouds.items(),
189
198
  key=lambda item: item[0])
190
199
  ])
@@ -290,7 +299,8 @@ def _print_checked_cloud(
290
299
  verbose: bool,
291
300
  cloud_tuple: Tuple[str, Union[sky_clouds.Cloud, ModuleType]],
292
301
  cloud_capabilities: List[Tuple[sky_cloud.CloudCapability, bool,
293
- Optional[str]]],
302
+ Optional[Union[str, Dict[str, str]]]]],
303
+ ctx2text: Dict[str, str],
294
304
  ) -> None:
295
305
  """Prints whether a cloud is enabled, and the capabilities that are enabled.
296
306
  If any hints (for enabled capabilities) or
@@ -317,24 +327,34 @@ def _print_checked_cloud(
317
327
  for capability, ok, reason in cloud_capabilities:
318
328
  if ok:
319
329
  enabled_capabilities.append(capability)
330
+ # `dict` reasons for K8s and SSH will be printed in detail in
331
+ # _format_enabled_cloud. Skip here.
332
+ if not isinstance(reason, str):
333
+ continue
334
+ if ok:
320
335
  if reason is not None:
321
336
  hints_to_capabilities.setdefault(reason, []).append(capability)
322
337
  elif reason is not None:
323
338
  reasons_to_capabilities.setdefault(reason, []).append(capability)
339
+ style_str = f'{colorama.Style.DIM}'
324
340
  status_msg: str = 'disabled'
325
- styles: Dict[str, Any] = {'dim': True}
326
341
  capability_string: str = ''
342
+ detail_string: str = ''
327
343
  activated_account: Optional[str] = None
328
344
  if enabled_capabilities:
345
+ style_str = f'{colorama.Fore.GREEN}{colorama.Style.NORMAL}'
329
346
  status_msg = 'enabled'
330
- styles = {'fg': 'green', 'bold': False}
331
347
  capability_string = f'[{", ".join(enabled_capabilities)}]'
332
348
  if verbose and cloud is not cloudflare:
333
349
  activated_account = cloud.get_active_user_identity_str()
334
-
350
+ if isinstance(cloud_tuple[1], (sky_clouds.SSH, sky_clouds.Kubernetes)):
351
+ detail_string = _format_context_details(cloud_tuple[1],
352
+ show_details=True,
353
+ ctx2text=ctx2text)
335
354
  echo(
336
- click.style(f' {cloud_repr}: {status_msg} {capability_string}',
337
- **styles))
355
+ click.style(
356
+ f'{style_str} {cloud_repr}: {status_msg} {capability_string}'
357
+ f'{colorama.Style.RESET_ALL}{detail_string}'))
338
358
  if activated_account is not None:
339
359
  echo(f' Activated account: {activated_account}')
340
360
  for reason, caps in hints_to_capabilities.items():
@@ -343,8 +363,77 @@ def _print_checked_cloud(
343
363
  echo(f' Reason [{", ".join(caps)}]: {reason}')
344
364
 
345
365
 
366
+ def _green_color(str_to_format: str) -> str:
367
+ return f'{colorama.Fore.GREEN}{str_to_format}{colorama.Style.RESET_ALL}'
368
+
369
+
370
+ def _format_context_details(cloud: Union[str, sky_clouds.Cloud],
371
+ show_details: bool,
372
+ ctx2text: Optional[Dict[str, str]] = None) -> str:
373
+ if isinstance(cloud, str):
374
+ cloud_type = registry.CLOUD_REGISTRY.from_str(cloud)
375
+ assert cloud_type is not None
376
+ else:
377
+ cloud_type = cloud
378
+ if isinstance(cloud_type, sky_clouds.SSH):
379
+ # Get the cluster names by reading from the node pools file
380
+ contexts = sky_clouds.SSH.get_ssh_node_pool_contexts()
381
+ else:
382
+ assert isinstance(cloud_type, sky_clouds.Kubernetes)
383
+ contexts = sky_clouds.Kubernetes.existing_allowed_contexts()
384
+
385
+ filtered_contexts = []
386
+ for context in contexts:
387
+ if not show_details:
388
+ # Skip
389
+ if (ctx2text is None or context not in ctx2text or
390
+ 'disabled' in ctx2text[context]):
391
+ continue
392
+ filtered_contexts.append(context)
393
+
394
+ if not filtered_contexts:
395
+ return ''
396
+
397
+ def _red_color(str_to_format: str) -> str:
398
+ return (f'{colorama.Fore.LIGHTRED_EX}'
399
+ f'{str_to_format}'
400
+ f'{colorama.Style.RESET_ALL}')
401
+
402
+ def _dim_color(str_to_format: str) -> str:
403
+ return (f'{colorama.Style.DIM}'
404
+ f'{str_to_format}'
405
+ f'{colorama.Style.RESET_ALL}')
406
+
407
+ # Format the context info with consistent styling
408
+ contexts_formatted = []
409
+ for i, context in enumerate(filtered_contexts):
410
+ if isinstance(cloud_type, sky_clouds.SSH):
411
+ # TODO: This is a hack to remove the 'ssh-' prefix from the
412
+ # context name. Once we have a separate kubeconfig for SSH,
413
+ # this will not be required.
414
+ cleaned_context = context.lstrip('ssh-')
415
+ else:
416
+ cleaned_context = context
417
+ symbol = (ux_utils.INDENT_LAST_SYMBOL if i == len(filtered_contexts) -
418
+ 1 else ux_utils.INDENT_SYMBOL)
419
+ text_suffix = ''
420
+ if show_details:
421
+ if ctx2text is not None:
422
+ text_suffix = (
423
+ f': {ctx2text[context]}' if context in ctx2text else
424
+ (': ' + _red_color('disabled. ') +
425
+ _dim_color('Reason: Not set up. Use `sky ssh up --infra '
426
+ f'{context.lstrip("ssh-")}` to set up.')))
427
+ contexts_formatted.append(
428
+ f'\n {symbol}{cleaned_context}{text_suffix}')
429
+ identity_str = ('SSH Node Pools' if isinstance(cloud_type, sky_clouds.SSH)
430
+ else 'Allowed contexts')
431
+ return f'\n {identity_str}:{"".join(contexts_formatted)}'
432
+
433
+
346
434
  def _format_enabled_cloud(cloud_name: str,
347
- capabilities: List[sky_cloud.CloudCapability]) -> str:
435
+ capabilities: List[sky_cloud.CloudCapability],
436
+ ctx2text: Optional[Dict[str, str]] = None) -> str:
348
437
  """Format the summary of enabled cloud and its enabled capabilities.
349
438
 
350
439
  Args:
@@ -355,34 +444,10 @@ def _format_enabled_cloud(cloud_name: str,
355
444
  A string of the formatted cloud and capabilities.
356
445
  """
357
446
  cloud_and_capabilities = f'{cloud_name} [{", ".join(capabilities)}]'
447
+ title = _green_color(cloud_and_capabilities)
358
448
 
359
- def _green_color(str_to_format: str) -> str:
360
- return (
361
- f'{colorama.Fore.GREEN}{str_to_format}{colorama.Style.RESET_ALL}')
362
-
363
- if cloud_name == repr(sky_clouds.Kubernetes()):
364
- # Get enabled contexts for Kubernetes
365
- existing_contexts = sky_clouds.Kubernetes.existing_allowed_contexts()
366
- if not existing_contexts:
367
- return _green_color(cloud_and_capabilities)
368
-
369
- # Check if allowed_contexts is explicitly set in config
370
- allowed_contexts = skypilot_config.get_nested(
371
- ('kubernetes', 'allowed_contexts'), None)
372
-
373
- # Format the context info with consistent styling
374
- if allowed_contexts is not None:
375
- contexts_formatted = []
376
- for i, context in enumerate(existing_contexts):
377
- symbol = (ux_utils.INDENT_LAST_SYMBOL
378
- if i == len(existing_contexts) -
379
- 1 else ux_utils.INDENT_SYMBOL)
380
- contexts_formatted.append(f'\n {symbol}{context}')
381
- context_info = f' Allowed contexts:{"".join(contexts_formatted)}'
382
- else:
383
- context_info = f' Active context: {existing_contexts[0]}'
449
+ if cloud_name in [repr(sky_clouds.Kubernetes()), repr(sky_clouds.SSH())]:
450
+ return (f'{title}' + _format_context_details(
451
+ cloud_name, show_details=False, ctx2text=ctx2text))
384
452
 
385
- return (f'{_green_color(cloud_and_capabilities)}\n'
386
- f' {colorama.Style.DIM}{context_info}'
387
- f'{colorama.Style.RESET_ALL}')
388
- return _green_color(cloud_and_capabilities)
453
+ return title