skypilot-nightly 1.0.0.dev20250624__tar.gz → 1.0.0.dev20250626__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 (534) hide show
  1. {skypilot_nightly-1.0.0.dev20250624/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250626}/PKG-INFO +2 -1
  2. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/kubernetes.py +1 -6
  4. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/backend_utils.py +26 -11
  5. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/cloud_vm_ray_backend.py +16 -5
  6. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/cli/command.py +232 -9
  7. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/sdk.py +195 -91
  8. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/aws.py +10 -7
  9. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/azure.py +10 -7
  10. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/cloud.py +2 -0
  11. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/cudo.py +2 -0
  12. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/do.py +10 -7
  13. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/fluidstack.py +2 -0
  14. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/gcp.py +10 -7
  15. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/hyperbolic.py +10 -7
  16. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/ibm.py +2 -0
  17. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/kubernetes.py +26 -9
  18. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/lambda_cloud.py +10 -7
  19. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/nebius.py +10 -7
  20. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/oci.py +10 -7
  21. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/paperspace.py +10 -7
  22. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/runpod.py +10 -7
  23. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/scp.py +10 -7
  24. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/ssh.py +36 -0
  25. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/vast.py +10 -7
  26. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/vsphere.py +2 -0
  27. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/core.py +21 -0
  28. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dag.py +14 -0
  29. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/404.html +1 -1
  30. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/bs6UB9V4Jq10TIZ5x-kBK/_buildManifest.js +1 -0
  31. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/141-fa5a20cbf401b351.js +11 -0
  32. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/230-d6e363362017ff3a.js +1 -0
  33. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/25.76c246239df93d50.js +6 -0
  34. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/43-36177d00f6956ab2.js +1 -0
  35. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js +1 -0
  36. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/470-92dd1614396389be.js +1 -0
  37. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/544.110e53813fb98e2e.js +1 -0
  38. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/645.961f08e39b8ce447.js +1 -0
  39. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/690.55f9eed3be903f56.js +16 -0
  40. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/697.6460bf72e760addd.js +20 -0
  41. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/785.dc2686c3c1235554.js +1 -0
  42. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/871-3db673be3ee3750b.js +6 -0
  43. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/875.52c962183328b3f2.js +25 -0
  44. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/973-81b2d057178adb76.js +1 -0
  45. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/982.1b61658204416b0f.js +1 -0
  46. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/984.e8bac186a24e5178.js +1 -0
  47. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/990-0ad5ea1699e03ee8.js +1 -0
  48. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/_app-ce31493da9747ef4.js → skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/_app-9a3ce3170d2edcec.js +1 -1
  49. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-aff040d7bc5d0086.js +6 -0
  50. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-8040f2483897ed0c.js +6 -0
  51. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/clusters-7e9736af1c6345a6.js → skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/clusters-f119a5630a1efd61.js +1 -1
  52. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/config-6b255eae088da6a3.js +1 -0
  53. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-b302aea4d65766bf.js +1 -0
  54. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/infra-ee8cc4d449945d19.js +1 -0
  55. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e4b23128db0774cd.js +16 -0
  56. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/jobs-0a5695ff3075d94a.js +1 -0
  57. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/users-4978cbb093e141e7.js +1 -0
  58. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/volumes-476b670ef33d1ecd.js +1 -0
  59. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js → skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5b59bce9eb208d84.js +1 -1
  60. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-cb7e720b739de53a.js +1 -0
  61. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/workspaces-50e230828730cfb3.js +1 -0
  62. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/webpack-08fdb9e6070127fc.js +1 -0
  63. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/css/52082cf558ec9705.css +3 -0
  64. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  65. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/clusters/[cluster].html +1 -1
  66. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/clusters.html +1 -1
  67. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/config.html +1 -1
  68. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/index.html +1 -1
  69. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/infra/[context].html +1 -1
  70. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/infra.html +1 -1
  71. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/jobs/[job].html +1 -1
  72. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/jobs.html +1 -1
  73. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/users.html +1 -1
  74. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/volumes.html +1 -0
  75. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/workspace/new.html +1 -1
  76. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/workspaces/[name].html +1 -0
  77. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/workspaces.html +1 -1
  78. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/data/storage_utils.py +2 -4
  79. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/exceptions.py +15 -0
  80. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/execution.py +5 -0
  81. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/global_user_state.py +129 -0
  82. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/client/sdk.py +13 -11
  83. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/server/core.py +4 -0
  84. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/models.py +16 -0
  85. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/__init__.py +26 -0
  86. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/__init__.py +3 -0
  87. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/instance.py +38 -77
  88. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/utils.py +70 -4
  89. skypilot_nightly-1.0.0.dev20250626/sky/provision/kubernetes/volume.py +147 -0
  90. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/resources.py +20 -76
  91. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/client/sdk.py +13 -13
  92. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/server/core.py +5 -1
  93. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/common.py +40 -5
  94. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/constants.py +5 -1
  95. skypilot_nightly-1.0.0.dev20250626/sky/server/metrics.py +105 -0
  96. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/executor.py +30 -14
  97. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/payloads.py +16 -0
  98. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/requests.py +35 -1
  99. skypilot_nightly-1.0.0.dev20250626/sky/server/rest.py +153 -0
  100. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/server.py +70 -43
  101. skypilot_nightly-1.0.0.dev20250626/sky/server/state.py +20 -0
  102. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/stream_utils.py +8 -3
  103. skypilot_nightly-1.0.0.dev20250626/sky/server/uvicorn.py +231 -0
  104. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/setup_files/dependencies.py +2 -0
  105. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/constants.py +19 -3
  106. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skypilot_config.py +3 -0
  107. skypilot_nightly-1.0.0.dev20250626/sky/ssh_node_pools/__init__.py +1 -0
  108. skypilot_nightly-1.0.0.dev20250626/sky/ssh_node_pools/core.py +133 -0
  109. skypilot_nightly-1.0.0.dev20250626/sky/ssh_node_pools/server.py +232 -0
  110. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/task.py +141 -18
  111. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/kubernetes-ray.yml.j2 +30 -1
  112. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/users/permission.py +2 -0
  113. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/context.py +3 -1
  114. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/deploy_remote_cluster.py +12 -185
  115. skypilot_nightly-1.0.0.dev20250626/sky/utils/kubernetes/ssh_utils.py +221 -0
  116. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/resources_utils.py +66 -0
  117. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/rich_utils.py +6 -0
  118. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/schemas.py +146 -3
  119. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/status_lib.py +10 -0
  120. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/validator.py +11 -1
  121. skypilot_nightly-1.0.0.dev20250626/sky/volumes/client/__init__.py +0 -0
  122. skypilot_nightly-1.0.0.dev20250626/sky/volumes/client/sdk.py +64 -0
  123. skypilot_nightly-1.0.0.dev20250626/sky/volumes/server/__init__.py +0 -0
  124. skypilot_nightly-1.0.0.dev20250626/sky/volumes/server/core.py +199 -0
  125. skypilot_nightly-1.0.0.dev20250626/sky/volumes/server/server.py +85 -0
  126. skypilot_nightly-1.0.0.dev20250626/sky/volumes/utils.py +158 -0
  127. skypilot_nightly-1.0.0.dev20250626/sky/volumes/volume.py +198 -0
  128. skypilot_nightly-1.0.0.dev20250626/sky/workspaces/__init__.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626/skypilot_nightly.egg-info}/PKG-INFO +2 -1
  130. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/skypilot_nightly.egg-info/SOURCES.txt +53 -33
  131. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/skypilot_nightly.egg-info/requires.txt +1 -0
  132. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/211.692afc57e812ae1a.js +0 -1
  133. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/350.9e123a4551f68b0d.js +0 -1
  134. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/37-4650f214e2119168.js +0 -6
  135. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/42.2273cc2415291ceb.js +0 -6
  136. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/443.b2242d0efcdf5f47.js +0 -1
  137. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/470-1494c899266cf5c9.js +0 -1
  138. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/513.309df9e18a9ff005.js +0 -1
  139. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/641.c8e452bc5070a630.js +0 -1
  140. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/682.4dd5dc116f740b5f.js +0 -6
  141. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/760-a89d354797ce7af5.js +0 -1
  142. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/843-bde186946d353355.js +0 -11
  143. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/856-bfddc18e16f3873c.js +0 -1
  144. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/901-b424d293275e1fd7.js +0 -1
  145. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/973-56412c7976b4655b.js +0 -1
  146. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/984.ae8c08791d274ca0.js +0 -50
  147. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-4e065c812a52460b.js +0 -6
  148. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-520ec1ab65e2f2a4.js +0 -6
  149. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/config-e4f473661889e7cd.js +0 -1
  150. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-00fd23b9577492ca.js +0 -1
  151. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/infra-8a4bf7370d4d9bb7.js +0 -1
  152. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-171c27f4ca94861c.js +0 -16
  153. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/jobs-55e5bcb16d563231.js +0 -1
  154. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/users-c9f4d785cdaa52d8.js +0 -1
  155. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-ecc5a7003776cfa7.js +0 -1
  156. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/pages/workspaces-f00cba35691483b1.js +0 -1
  157. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/webpack-c85998e6a5722f21.js +0 -1
  158. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/css/6ab927686b492a4a.css +0 -3
  159. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/zsALxITkbP8J8NVwSDwMo/_buildManifest.js +0 -1
  160. skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/workspaces/[name].html +0 -1
  161. skypilot_nightly-1.0.0.dev20250624/sky/server/uvicorn.py +0 -91
  162. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/LICENSE +0 -0
  163. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/MANIFEST.in +0 -0
  164. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/README.md +0 -0
  165. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/pyproject.toml +0 -0
  166. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/setup.cfg +0 -0
  167. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/setup.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/__init__.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/aws.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/azure.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/cloudflare.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/common.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/cudo.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/do.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/docker.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/gcp.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/hyperbolic.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/ibm.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/nebius.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/oci.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/runpod.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/vast.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/adaptors/vsphere.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/admin_policy.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/authentication.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/__init__.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/backend.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/docker_utils.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/local_docker_backend.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/backends/wheel_utils.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/__init__.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/aws_catalog.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/azure_catalog.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/common.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/config.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/cudo_catalog.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/__init__.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/analyze.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/do_catalog.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/fluidstack_catalog.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/gcp_catalog.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/hyperbolic_catalog.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/ibm_catalog.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/kubernetes_catalog.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/lambda_catalog.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/nebius_catalog.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/oci_catalog.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/paperspace_catalog.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/runpod_catalog.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/scp_catalog.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/ssh_catalog.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/vast_catalog.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/catalog/vsphere_catalog.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/check.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/cli.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/cli/__init__.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/cli/deprecation_utils.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/cli/flags.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/common.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/client/oauth.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/cloud_stores.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/__init__.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/utils/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/utils/aws_utils.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/utils/azure_utils.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/utils/gcp_utils.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/utils/oci_utils.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/clouds/utils/scp_utils.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/zsALxITkbP8J8NVwSDwMo → skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/bs6UB9V4Jq10TIZ5x-kBK}/_ssgManifest.js +0 -0
  242. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/491.b3d264269613fe09.js +0 -0
  243. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/616-d6128fa9e7cae6e6.js +0 -0
  244. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/664-047bc03493fda379.js +0 -0
  245. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/798-c0525dc3f21e488d.js +0 -0
  246. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/799-3625946b2ec2eb30.js +0 -0
  247. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/804-4c9fc53aa74bc191.js +0 -0
  248. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/937.3759f538f11a0953.js +0 -0
  249. /skypilot_nightly-1.0.0.dev20250624/sky/dashboard/out/_next/static/chunks/938-ce7991c156584b06.js → /skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/938-068520cc11738deb.js +0 -0
  250. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/947-6620842ef80ae879.js +0 -0
  251. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/969-d3a0b53f728d280a.js +0 -0
  252. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/989-db34c16ad7ea6155.js +0 -0
  253. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  254. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  255. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  256. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  257. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  258. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
  259. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  260. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/favicon.ico +0 -0
  261. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/skypilot.svg +0 -0
  262. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  263. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/data/__init__.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/data/data_transfer.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/data/data_utils.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/data/mounting_utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/data/storage.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/client/__init__.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/constants.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/controller.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/recovery_strategy.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/scheduler.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/server/__init__.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/server/server.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/state.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/jobs/utils.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/logs/__init__.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/logs/agent.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/logs/gcp.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/optimizer.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/aws/__init__.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/aws/config.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/aws/instance.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/aws/utils.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/azure/__init__.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/azure/azure-config-template.json +0 -0
  288. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/azure/config.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/azure/instance.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/common.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/constants.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/cudo/__init__.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/cudo/config.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/cudo/cudo_machine_type.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/cudo/cudo_utils.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/cudo/cudo_wrapper.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/cudo/instance.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/do/__init__.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/do/config.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/do/constants.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/do/instance.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/do/utils.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/docker_utils.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/fluidstack/__init__.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/fluidstack/config.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/fluidstack/instance.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/__init__.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/config.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/constants.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/instance.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/instance_utils.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/mig_utils.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/gcp/volume_utils.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/hyperbolic/__init__.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/hyperbolic/config.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/hyperbolic/instance.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/hyperbolic/utils.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/instance_setup.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/config.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/constants.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  323. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/network.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/kubernetes/network_utils.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/lambda_cloud/__init__.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/lambda_cloud/config.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/lambda_cloud/instance.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/logging.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/metadata_utils.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/nebius/__init__.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/nebius/config.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/nebius/constants.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/nebius/instance.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/nebius/utils.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/oci/__init__.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/oci/config.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/oci/instance.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/oci/query_utils.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/paperspace/__init__.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/paperspace/config.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/paperspace/constants.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/paperspace/instance.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/paperspace/utils.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/provisioner.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/__init__.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/api/__init__.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/api/commands.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/api/pods.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/config.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/instance.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/runpod/utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/scp/__init__.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/scp/config.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/scp/instance.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/ssh/__init__.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vast/__init__.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vast/config.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vast/instance.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vast/utils.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/__init__.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/__init__.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/custom_script.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/id_generator.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/service_manager.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/common/vim_utils.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/config.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/instance.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/provision/vsphere/vsphere_utils.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/__init__.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/autoscalers.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/client/__init__.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/constants.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/controller.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/load_balancer.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/load_balancing_policies.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/replica_managers.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/serve_state.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/serve_utils.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/server/__init__.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/server/server.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/service.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/service_spec.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/serve/spot_placer.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/__init__.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/config.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/html/log.html +0 -0
  394. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/html/token_page.html +0 -0
  395. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/__init__.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/event_loop.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/preconditions.py +0 -0
  398. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/process.py +0 -0
  399. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/queues/__init__.py +0 -0
  400. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/queues/local_queue.py +0 -0
  401. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/queues/mp_queue.py +0 -0
  402. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/serializers/__init__.py +0 -0
  403. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/serializers/decoders.py +0 -0
  404. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/server/requests/serializers/encoders.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/setup_files/MANIFEST.in +0 -0
  406. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/setup_files/setup.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/sky_logging.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/LICENSE +0 -0
  409. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/__init__.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/attempt_skylet.py +0 -0
  411. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/autostop_lib.py +0 -0
  412. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/configs.py +0 -0
  413. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/events.py +0 -0
  414. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/job_lib.py +0 -0
  415. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/log_lib.py +0 -0
  416. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/log_lib.pyi +0 -0
  417. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/providers/__init__.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/providers/command_runner.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/providers/ibm/__init__.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/providers/ibm/node_provider.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/providers/ibm/utils.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  423. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/__init__.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  425. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/cli.py.patch +0 -0
  426. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  427. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  428. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  429. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/updater.py.patch +0 -0
  430. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/ray_patches/worker.py.patch +0 -0
  431. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/skylet.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/skylet/subprocess_daemon.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/aws-ray.yml.j2 +0 -0
  434. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/azure-ray.yml.j2 +0 -0
  435. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/cudo-ray.yml.j2 +0 -0
  436. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/do-ray.yml.j2 +0 -0
  437. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  438. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/gcp-ray.yml.j2 +0 -0
  439. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  440. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/ibm-ray.yml.j2 +0 -0
  441. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/jobs-controller.yaml.j2 +0 -0
  442. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  443. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  444. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  445. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  446. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/lambda-ray.yml.j2 +0 -0
  447. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/local-ray.yml.j2 +0 -0
  448. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/nebius-ray.yml.j2 +0 -0
  449. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/oci-ray.yml.j2 +0 -0
  450. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/paperspace-ray.yml.j2 +0 -0
  451. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/runpod-ray.yml.j2 +0 -0
  452. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/scp-ray.yml.j2 +0 -0
  453. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  454. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  455. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/vast-ray.yml.j2 +0 -0
  456. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/vsphere-ray.yml.j2 +0 -0
  457. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/templates/websocket_proxy.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/usage/__init__.py +0 -0
  459. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/usage/constants.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/usage/usage_lib.py +0 -0
  461. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/users/__init__.py +0 -0
  462. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/users/model.conf +0 -0
  463. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/users/rbac.py +0 -0
  464. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/users/server.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/__init__.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/accelerator_registry.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/admin_policy_utils.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/annotations.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/atomic.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/aws/__init__.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/aws/get_default_security_group.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/cli_utils/__init__.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/cli_utils/status_utils.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/cluster_utils.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/command_runner.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/command_runner.pyi +0 -0
  477. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/common.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/common_utils.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/config_utils.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/context_utils.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/control_master_utils.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/controller_utils.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/dag_utils.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/db_utils.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/env_options.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/infra_utils.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/__init__.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  489. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/config_map_utils.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/create_cluster.sh +0 -0
  491. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  492. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  495. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  497. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  498. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  500. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  501. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  502. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/kubernetes_enums.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/log_utils.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/message_utils.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/registry.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/rich_console_utils.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/subprocess_utils.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/timeline.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/utils/ux_utils.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250624/sky/workspaces → skypilot_nightly-1.0.0.dev20250626/sky/volumes}/__init__.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/workspaces/core.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/workspaces/server.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/sky/workspaces/utils.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  515. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  516. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/skypilot_nightly.egg-info/top_level.txt +0 -0
  517. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_api.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_api_compatibility.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_cli.py +0 -0
  520. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_config.py +0 -0
  521. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_db_utils.py +0 -0
  522. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_failover.py +0 -0
  523. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_global_user_state.py +0 -0
  524. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_jobs.py +0 -0
  525. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_jobs_and_serve.py +0 -0
  526. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_list_accelerators.py +0 -0
  527. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_no_parellel.py +0 -0
  528. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_optimizer_dryruns.py +0 -0
  529. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_optimizer_random_dag.py +0 -0
  530. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_serve_autoscaler.py +0 -0
  531. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_smoke.py +0 -0
  532. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_storage.py +0 -0
  533. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/tests/test_wheels.py +0 -0
  534. {skypilot_nightly-1.0.0.dev20250624 → skypilot_nightly-1.0.0.dev20250626}/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.dev20250624
3
+ Version: 1.0.0.dev20250626
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -51,6 +51,7 @@ Requires-Dist: sqlalchemy
51
51
  Requires-Dist: psycopg2-binary
52
52
  Requires-Dist: casbin
53
53
  Requires-Dist: sqlalchemy_adapter
54
+ Requires-Dist: prometheus_client>=0.8.0
54
55
  Requires-Dist: passlib
55
56
  Provides-Extra: aws
56
57
  Requires-Dist: awscli>=1.27.10; extra == "aws"
@@ -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 = '0b29731d6bfe91381de57805e1fc1dd723e4b3a0'
8
+ _SKYPILOT_COMMIT_SHA = '512c53be5771c003cd9d94b5b89c23638a5e735e'
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.dev20250624'
38
+ __version__ = '1.0.0.dev20250626'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -133,12 +133,7 @@ def _load_config(context: Optional[str] = None):
133
133
  '\nHint: Kubernetes attempted to query the current-context '
134
134
  'set in kubeconfig. Check if the current-context is valid.')
135
135
  with ux_utils.print_exception_no_traceback():
136
- if is_ssh_node_pool:
137
- # For SSH Node Pool, we don't want to surface k8s errors
138
- # (e.g., missing context) unless debug flag is set.
139
- logging.debug(f'Kubernetes error: {suffix}')
140
- else:
141
- raise ValueError(err_str) from None
136
+ raise ValueError(err_str) from None
142
137
 
143
138
  if context == in_cluster_context_name() or context is None:
144
139
  try:
@@ -66,6 +66,7 @@ if typing.TYPE_CHECKING:
66
66
  from sky import task as task_lib
67
67
  from sky.backends import cloud_vm_ray_backend
68
68
  from sky.backends import local_docker_backend
69
+ from sky.volumes import volume as volume_lib
69
70
  else:
70
71
  yaml = adaptors_common.LazyImport('yaml')
71
72
  requests = adaptors_common.LazyImport('requests')
@@ -541,16 +542,18 @@ def get_expirable_clouds(
541
542
  # TODO: too many things happening here - leaky abstraction. Refactor.
542
543
  @timeline.event
543
544
  def write_cluster_config(
544
- to_provision: 'resources_lib.Resources',
545
- num_nodes: int,
546
- cluster_config_template: str,
547
- cluster_name: str,
548
- local_wheel_path: pathlib.Path,
549
- wheel_hash: str,
550
- region: clouds.Region,
551
- zones: Optional[List[clouds.Zone]] = None,
552
- dryrun: bool = False,
553
- keep_launch_fields_in_existing_config: bool = True) -> Dict[str, str]:
545
+ to_provision: 'resources_lib.Resources',
546
+ num_nodes: int,
547
+ cluster_config_template: str,
548
+ cluster_name: str,
549
+ local_wheel_path: pathlib.Path,
550
+ wheel_hash: str,
551
+ region: clouds.Region,
552
+ zones: Optional[List[clouds.Zone]] = None,
553
+ dryrun: bool = False,
554
+ keep_launch_fields_in_existing_config: bool = True,
555
+ volume_mounts: Optional[List['volume_lib.VolumeMount']] = None,
556
+ ) -> Dict[str, str]:
554
557
  """Fills in cluster configuration templates and writes them out.
555
558
 
556
559
  Returns:
@@ -598,7 +601,7 @@ def write_cluster_config(
598
601
  resources_utils.ClusterName(
599
602
  cluster_name,
600
603
  cluster_name_on_cloud,
601
- ), region, zones, num_nodes, dryrun)
604
+ ), region, zones, num_nodes, dryrun, volume_mounts)
602
605
  config_dict = {}
603
606
 
604
607
  specific_reservations = set(
@@ -731,6 +734,15 @@ def write_cluster_config(
731
734
  high_availability_specified = controller_utils.high_availability_specified(
732
735
  cluster_name)
733
736
 
737
+ volume_mount_vars = []
738
+ if volume_mounts is not None:
739
+ for vol in volume_mounts:
740
+ volume_mount_vars.append({
741
+ 'name': vol.volume_name,
742
+ 'path': vol.path,
743
+ 'volume_name_on_cloud': vol.volume_config.name_on_cloud,
744
+ })
745
+
734
746
  # Use a tmp file path to avoid incomplete YAML file being re-used in the
735
747
  # future.
736
748
  tmp_yaml_path = yaml_path + '.tmp'
@@ -821,6 +833,9 @@ def write_cluster_config(
821
833
 
822
834
  # High availability
823
835
  'high_availability': high_availability_specified,
836
+
837
+ # Volume mounts
838
+ 'volume_mounts': volume_mount_vars,
824
839
  }),
825
840
  output_path=tmp_yaml_path)
826
841
  config_dict['cluster_name'] = cluster_name
@@ -73,6 +73,7 @@ from sky.utils import status_lib
73
73
  from sky.utils import subprocess_utils
74
74
  from sky.utils import timeline
75
75
  from sky.utils import ux_utils
76
+ from sky.volumes import volume as volume_lib
76
77
 
77
78
  if typing.TYPE_CHECKING:
78
79
  from sky import dag
@@ -1327,6 +1328,7 @@ class RetryingVmProvisioner(object):
1327
1328
  prev_handle: Optional['CloudVmRayResourceHandle'],
1328
1329
  prev_cluster_ever_up: bool,
1329
1330
  skip_if_config_hash_matches: Optional[str],
1331
+ volume_mounts: Optional[List[volume_lib.VolumeMount]],
1330
1332
  ) -> Dict[str, Any]:
1331
1333
  """The provision retry loop.
1332
1334
 
@@ -1432,7 +1434,9 @@ class RetryingVmProvisioner(object):
1432
1434
  region=region,
1433
1435
  zones=zones,
1434
1436
  dryrun=dryrun,
1435
- keep_launch_fields_in_existing_config=cluster_exists)
1437
+ keep_launch_fields_in_existing_config=cluster_exists,
1438
+ volume_mounts=volume_mounts,
1439
+ )
1436
1440
  except exceptions.ResourcesUnavailableError as e:
1437
1441
  # Failed due to catalog issue, e.g. image not found, or
1438
1442
  # GPUs are requested in a Kubernetes cluster but the cluster
@@ -2081,7 +2085,9 @@ class RetryingVmProvisioner(object):
2081
2085
  prev_cluster_status=prev_cluster_status,
2082
2086
  prev_handle=prev_handle,
2083
2087
  prev_cluster_ever_up=prev_cluster_ever_up,
2084
- skip_if_config_hash_matches=skip_if_config_hash_matches)
2088
+ skip_if_config_hash_matches=skip_if_config_hash_matches,
2089
+ volume_mounts=task.volume_mounts,
2090
+ )
2085
2091
  if dryrun:
2086
2092
  return config_dict
2087
2093
  except (exceptions.InvalidClusterNameError,
@@ -2435,9 +2441,14 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
2435
2441
  zip(cluster_internal_ips, cluster_feasible_ips))
2436
2442
 
2437
2443
  # Ensure head node is the first element, then sort based on the
2438
- # external IPs for stableness
2439
- stable_internal_external_ips = [internal_external_ips[0]] + sorted(
2440
- internal_external_ips[1:], key=lambda x: x[1])
2444
+ # external IPs for stableness. Skip for k8s nodes since pods
2445
+ # worker ids are already mapped.
2446
+ if (cluster_info is not None and
2447
+ cluster_info.provider_name == 'kubernetes'):
2448
+ stable_internal_external_ips = internal_external_ips
2449
+ else:
2450
+ stable_internal_external_ips = [internal_external_ips[0]] + sorted(
2451
+ internal_external_ips[1:], key=lambda x: x[1])
2441
2452
  self.stable_internal_external_ips = stable_internal_external_ips
2442
2453
 
2443
2454
  @context_utils.cancellation_guard
@@ -81,6 +81,8 @@ from sky.utils import subprocess_utils
81
81
  from sky.utils import timeline
82
82
  from sky.utils import ux_utils
83
83
  from sky.utils.cli_utils import status_utils
84
+ from sky.volumes import utils as volumes_utils
85
+ from sky.volumes.client import sdk as volumes_sdk
84
86
 
85
87
  if typing.TYPE_CHECKING:
86
88
  import types
@@ -202,13 +204,14 @@ def _get_cluster_records_and_set_ssh_config(
202
204
 
203
205
 
204
206
  def _get_glob_matches(candidate_names: List[str],
205
- glob_patterns: List[str]) -> List[str]:
207
+ glob_patterns: List[str],
208
+ resource_type: str = 'Storage') -> List[str]:
206
209
  """Returns a list of names that match the glob pattern."""
207
210
  glob_storages = []
208
211
  for glob_pattern in glob_patterns:
209
212
  glob_storage = fnmatch.filter(candidate_names, glob_pattern)
210
213
  if not glob_storage:
211
- click.echo(f'Storage {glob_pattern} not found.')
214
+ click.echo(f'{resource_type} {glob_pattern} not found.')
212
215
  glob_storages.extend(glob_storage)
213
216
  return list(set(glob_storages))
214
217
 
@@ -290,6 +293,19 @@ def _complete_storage_name(ctx: click.Context, param: click.Parameter,
290
293
  return response.json()
291
294
 
292
295
 
296
+ def _complete_volume_name(ctx: click.Context, param: click.Parameter,
297
+ incomplete: str) -> List[str]:
298
+ """Handle shell completion for volume names."""
299
+ del ctx, param # Unused.
300
+ response = requests_lib.get(
301
+ f'{server_common.get_server_url()}'
302
+ f'/api/completion/volume_name?incomplete={incomplete}',
303
+ timeout=2.0,
304
+ )
305
+ response.raise_for_status()
306
+ return response.json()
307
+
308
+
293
309
  def _complete_file_name(ctx: click.Context, param: click.Parameter,
294
310
  incomplete: str) -> List[str]:
295
311
  """Handle shell completion for file names.
@@ -531,8 +547,9 @@ def _parse_override_params(
531
547
  return override_params
532
548
 
533
549
 
534
- def _check_yaml(entrypoint: str) -> Tuple[bool, Optional[Dict[str, Any]]]:
535
- """Checks if entrypoint is a readable YAML file.
550
+ def _check_yaml_only(
551
+ entrypoint: str) -> Tuple[bool, Optional[Dict[str, Any]], bool, str]:
552
+ """Checks if entrypoint is a readable YAML file without confirmation.
536
553
 
537
554
  Args:
538
555
  entrypoint: Path to a YAML file.
@@ -580,6 +597,17 @@ def _check_yaml(entrypoint: str) -> Tuple[bool, Optional[Dict[str, Any]]]:
580
597
  invalid_reason = ('yaml.safe_load() failed. Please check if the'
581
598
  ' path is correct.')
582
599
  is_yaml = False
600
+ return is_yaml, result, yaml_file_provided, invalid_reason
601
+
602
+
603
+ def _check_yaml(entrypoint: str) -> Tuple[bool, Optional[Dict[str, Any]]]:
604
+ """Checks if entrypoint is a readable YAML file.
605
+
606
+ Args:
607
+ entrypoint: Path to a YAML file.
608
+ """
609
+ is_yaml, result, yaml_file_provided, invalid_reason = _check_yaml_only(
610
+ entrypoint)
583
611
  if not is_yaml:
584
612
  if yaml_file_provided:
585
613
  click.confirm(
@@ -3767,6 +3795,196 @@ def storage_delete(names: List[str], all: bool, yes: bool, async_call: bool): #
3767
3795
  f'{colorama.Style.RESET_ALL}')
3768
3796
 
3769
3797
 
3798
+ @cli.group(cls=_NaturalOrderGroup)
3799
+ def volumes():
3800
+ """SkyPilot Volumes CLI."""
3801
+ pass
3802
+
3803
+
3804
+ @volumes.command('apply', cls=_DocumentedCodeCommand)
3805
+ @flags.config_option(expose_value=False)
3806
+ @click.argument('entrypoint',
3807
+ required=False,
3808
+ type=str,
3809
+ nargs=-1,
3810
+ **_get_shell_complete_args(_complete_file_name))
3811
+ @click.option('--name',
3812
+ '-n',
3813
+ required=False,
3814
+ type=str,
3815
+ help='Volume name. Override the name defined in the YAML.')
3816
+ @click.option('--infra',
3817
+ required=False,
3818
+ type=str,
3819
+ help='Infra. Format: k8s, k8s/context-name. '
3820
+ 'Override the infra defined in the YAML.')
3821
+ @click.option(
3822
+ '--type',
3823
+ required=False,
3824
+ type=str,
3825
+ help='Volume type. Format: pvc. Override the type defined in the YAML.')
3826
+ @click.option('--size',
3827
+ required=False,
3828
+ type=str,
3829
+ help='Volume size. Override the size defined in the YAML.')
3830
+ @click.option('--yes',
3831
+ '-y',
3832
+ is_flag=True,
3833
+ default=False,
3834
+ required=False,
3835
+ help='Skip confirmation prompt.')
3836
+ @_add_click_options(flags.COMMON_OPTIONS)
3837
+ @usage_lib.entrypoint
3838
+ def volumes_apply(
3839
+ entrypoint: Optional[Tuple[str, ...]],
3840
+ name: Optional[str],
3841
+ infra: Optional[str],
3842
+ type: Optional[str], # pylint: disable=redefined-builtin
3843
+ size: Optional[str],
3844
+ yes: bool,
3845
+ async_call: bool):
3846
+ """Apply a volume.
3847
+
3848
+ Examples:
3849
+
3850
+ .. code-block:: bash
3851
+
3852
+ # Apply a volume from a YAML file.
3853
+ sky volumes apply volume.yaml
3854
+ \b
3855
+ # Apply a volume from a command.
3856
+ sky volumes apply --name pvc1 --infra k8s --type pvc --size 100Gi
3857
+ """
3858
+ # pylint: disable=import-outside-toplevel
3859
+ from sky.volumes import volume as volume_lib
3860
+
3861
+ volume_config_dict: Dict[str, Any] = {}
3862
+ if entrypoint is not None and len(entrypoint) > 0:
3863
+ entrypoint_str = ' '.join(entrypoint)
3864
+ is_yaml, yaml_config, yaml_file_provided, invalid_reason = (
3865
+ _check_yaml_only(entrypoint_str))
3866
+ if not is_yaml:
3867
+ if yaml_file_provided:
3868
+ raise click.BadParameter(f'{entrypoint_str!r} looks like a '
3869
+ f'yaml path but {invalid_reason}')
3870
+ else:
3871
+ raise click.BadParameter(
3872
+ f'{entrypoint_str!r} needs to be a YAML file')
3873
+ if yaml_config is not None:
3874
+ volume_config_dict = yaml_config.copy()
3875
+
3876
+ # Create Volume instance
3877
+ volume = volume_lib.Volume.from_dict(volume_config_dict)
3878
+
3879
+ # Normalize the volume config with CLI options
3880
+ volume.normalize_config(name=name, infra=infra, type=type, size=size)
3881
+
3882
+ logger.debug(f'Volume config: {volume.to_dict()}')
3883
+
3884
+ if not yes:
3885
+ click.confirm(f'Proceed to create volume {volume.name!r}?',
3886
+ default=True,
3887
+ abort=True,
3888
+ show_default=True)
3889
+
3890
+ # Call SDK to create volume
3891
+ try:
3892
+ request_id = volumes_sdk.apply(volume)
3893
+ _async_call_or_wait(request_id, async_call, 'sky.volumes.apply')
3894
+ except RuntimeError as e:
3895
+ logger.error(f'{colorama.Fore.RED}Error applying volume: '
3896
+ f'{common_utils.format_exception(e, use_bracket=True)}'
3897
+ f'{colorama.Style.RESET_ALL}')
3898
+
3899
+
3900
+ @volumes.command('ls', cls=_DocumentedCodeCommand)
3901
+ @flags.config_option(expose_value=False)
3902
+ @click.option('--verbose',
3903
+ '-v',
3904
+ default=False,
3905
+ is_flag=True,
3906
+ required=False,
3907
+ help='Show all information in full.')
3908
+ @usage_lib.entrypoint
3909
+ def volumes_ls(verbose: bool):
3910
+ """List volumes managed by SkyPilot."""
3911
+ request_id = volumes_sdk.ls()
3912
+ all_volumes = sdk.stream_and_get(request_id)
3913
+ volume_table = volumes_utils.format_volume_table(all_volumes,
3914
+ show_all=verbose)
3915
+ click.echo(volume_table)
3916
+
3917
+
3918
+ @volumes.command('delete', cls=_DocumentedCodeCommand)
3919
+ @flags.config_option(expose_value=False)
3920
+ @click.argument('names',
3921
+ required=False,
3922
+ type=str,
3923
+ nargs=-1,
3924
+ **_get_shell_complete_args(_complete_volume_name))
3925
+ @click.option('--all',
3926
+ '-a',
3927
+ default=False,
3928
+ is_flag=True,
3929
+ required=False,
3930
+ help='Delete all volumes.')
3931
+ @click.option('--yes',
3932
+ '-y',
3933
+ default=False,
3934
+ is_flag=True,
3935
+ required=False,
3936
+ help='Skip confirmation prompt.')
3937
+ @_add_click_options(flags.COMMON_OPTIONS)
3938
+ @usage_lib.entrypoint
3939
+ def volumes_delete(names: List[str], all: bool, yes: bool, async_call: bool): # pylint: disable=redefined-builtin
3940
+ """Delete volumes.
3941
+
3942
+ Examples:
3943
+
3944
+ .. code-block:: bash
3945
+
3946
+ # Delete two volumes.
3947
+ sky volumes delete pvc1 pvc2
3948
+ \b
3949
+ # Delete all volumes matching glob pattern 'pvc*'.
3950
+ sky volumes delete "pvc*"
3951
+ \b
3952
+ # Delete all volumes.
3953
+ sky volumes delete -a
3954
+ """
3955
+ if sum([bool(names), all]) != 1:
3956
+ raise click.UsageError('Either --all or a name must be specified.')
3957
+ all_volumes = sdk.get(volumes_sdk.ls())
3958
+ if all:
3959
+ if not all_volumes:
3960
+ click.echo('No volumes to delete.')
3961
+ return
3962
+ names = [volume['name'] for volume in all_volumes]
3963
+ else:
3964
+ existing_volume_names = [volume['name'] for volume in all_volumes]
3965
+ names = _get_glob_matches(existing_volume_names,
3966
+ names,
3967
+ resource_type='Volume')
3968
+ if names:
3969
+ if not yes:
3970
+ volume_names = ', '.join(names)
3971
+ volume_str = 'volumes' if len(names) > 1 else 'volume'
3972
+ click.confirm(
3973
+ f'Deleting {len(names)} {volume_str}: '
3974
+ f'{volume_names}. Proceed?',
3975
+ default=True,
3976
+ abort=True,
3977
+ show_default=True)
3978
+
3979
+ try:
3980
+ _async_call_or_wait(volumes_sdk.delete(names), async_call,
3981
+ 'sky.volumes.delete')
3982
+ except Exception as e: # pylint: disable=broad-except
3983
+ logger.error(f'{colorama.Fore.RED}Error deleting volumes {names}: '
3984
+ f'{common_utils.format_exception(e, use_bracket=True)}'
3985
+ f'{colorama.Style.RESET_ALL}')
3986
+
3987
+
3770
3988
  @cli.group(cls=_NaturalOrderGroup)
3771
3989
  def jobs():
3772
3990
  """Managed Jobs CLI (jobs with auto-recovery)."""
@@ -5186,13 +5404,18 @@ def ssh():
5186
5404
  is_flag=True,
5187
5405
  hidden=True,
5188
5406
  help='Run the command asynchronously.')
5189
- def ssh_up(infra: Optional[str], async_call: bool):
5190
- """Set up a cluster using SSH targets from ~/.sky/ssh_node_pools.yaml.
5407
+ @click.option('--file',
5408
+ '-f',
5409
+ required=False,
5410
+ help='The file containing the SSH targets.')
5411
+ def ssh_up(infra: Optional[str], async_call: bool, file: Optional[str]):
5412
+ """Set up a cluster using SSH targets from a file. If not specified,
5413
+ ~/.sky/ssh_node_pools.yaml will be used.
5191
5414
 
5192
- This command sets up a Kubernetes cluster on the machines specified in
5193
- ~/.sky/ssh_node_pools.yaml and configures SkyPilot to use it.
5415
+ This command sets up a Kubernetes cluster on the machines specified in the
5416
+ config file and configures SkyPilot to use it.
5194
5417
  """
5195
- request_id = sdk.ssh_up(infra=infra)
5418
+ request_id = sdk.ssh_up(infra=infra, file=file)
5196
5419
  if async_call:
5197
5420
  print(f'Request submitted with ID: {request_id}')
5198
5421
  else: