skypilot-nightly 1.0.0.dev20250707__tar.gz → 1.0.0.dev20250709__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 (513) hide show
  1. {skypilot_nightly-1.0.0.dev20250707/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250709}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/cloud_vm_ray_backend.py +52 -8
  4. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/common.py +6 -1
  5. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/aws.py +5 -0
  6. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/azure.py +3 -0
  7. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/cloud.py +3 -0
  8. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/cudo.py +3 -0
  9. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/do.py +3 -0
  10. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/fluidstack.py +3 -0
  11. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/gcp.py +3 -2
  12. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/ibm.py +3 -0
  13. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/kubernetes.py +63 -24
  14. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/lambda_cloud.py +3 -0
  15. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/nebius.py +3 -0
  16. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/oci.py +3 -0
  17. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/paperspace.py +3 -0
  18. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/runpod.py +3 -0
  19. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/scp.py +3 -0
  20. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/utils/gcp_utils.py +61 -1
  21. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/vast.py +3 -0
  22. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/vsphere.py +3 -0
  23. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/404.html +1 -1
  24. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  25. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/clusters/[cluster].html +1 -1
  26. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/clusters.html +1 -1
  27. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/config.html +1 -1
  28. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/index.html +1 -1
  29. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/infra/[context].html +1 -1
  30. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/infra.html +1 -1
  31. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/jobs/[job].html +1 -1
  32. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/jobs.html +1 -1
  33. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/users.html +1 -1
  34. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/volumes.html +1 -1
  35. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/workspace/new.html +1 -1
  36. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/workspaces/[name].html +1 -1
  37. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/workspaces.html +1 -1
  38. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/global_user_state.py +6 -3
  39. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/state.py +6 -3
  40. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/__init__.py +11 -0
  41. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/__init__.py +1 -0
  42. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/config.py +106 -13
  43. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/constants.py +0 -3
  44. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/instance.py +21 -0
  45. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/instance.py +16 -0
  46. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/utils.py +9 -2
  47. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/resources.py +1 -30
  48. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/metrics.py +2 -3
  49. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/executor.py +2 -5
  50. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/payloads.py +1 -0
  51. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/requests.py +94 -4
  52. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/server.py +20 -6
  53. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/uvicorn.py +4 -1
  54. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/constants.py +6 -2
  55. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/gcp-ray.yml.j2 +3 -0
  56. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/kubernetes-ray.yml.j2 +8 -2
  57. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/resources_utils.py +30 -0
  58. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/schemas.py +22 -0
  59. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  60. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/skypilot_nightly.egg-info/SOURCES.txt +2 -2
  61. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/LICENSE +0 -0
  62. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/MANIFEST.in +0 -0
  63. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/README.md +0 -0
  64. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/pyproject.toml +0 -0
  65. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/setup.cfg +0 -0
  66. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/setup.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/__init__.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/aws.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/azure.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/cloudflare.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/common.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/cudo.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/do.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/docker.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/gcp.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/hyperbolic.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/ibm.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/kubernetes.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/nebius.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/oci.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/runpod.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/vast.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/adaptors/vsphere.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/admin_policy.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/authentication.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/__init__.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/backend.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/backend_utils.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/docker_utils.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/local_docker_backend.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/backends/wheel_utils.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/__init__.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/aws_catalog.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/azure_catalog.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/common.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/config.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/cudo_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/__init__.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/analyze.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/do_catalog.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/fluidstack_catalog.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/gcp_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/hyperbolic_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/ibm_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/kubernetes_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/lambda_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/nebius_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/oci_catalog.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/paperspace_catalog.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/runpod_catalog.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/scp_catalog.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/ssh_catalog.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/vast_catalog.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/catalog/vsphere_catalog.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/check.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/cli.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/__init__.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/cli/__init__.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/cli/command.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/cli/deprecation_utils.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/cli/flags.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/oauth.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/sdk.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/client/service_account_auth.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/cloud_stores.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/__init__.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/hyperbolic.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/ssh.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/utils/__init__.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/utils/aws_utils.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/utils/azure_utils.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/utils/oci_utils.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/clouds/utils/scp_utils.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/core.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dag.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250707/sky/dashboard/out/_next/static/wEkAg9F21A-COXJLf20VU → skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/EqELoF4IXcALfWVihInou}/_buildManifest.js +0 -0
  148. {skypilot_nightly-1.0.0.dev20250707/sky/dashboard/out/_next/static/wEkAg9F21A-COXJLf20VU → skypilot_nightly-1.0.0.dev20250709/sky/dashboard/out/_next/static/EqELoF4IXcALfWVihInou}/_ssgManifest.js +0 -0
  149. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/1043-1b39779691bb4030.js +0 -0
  150. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/1141-726e5a3f00b67185.js +0 -0
  151. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js +0 -0
  152. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js +0 -0
  153. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/1691.44e378727a41f3b5.js +0 -0
  154. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/1871-80dea41717729fa5.js +0 -0
  155. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/2544.27f70672535675ed.js +0 -0
  156. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/2875.c24c6d57dc82e436.js +0 -0
  157. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/3256.7257acd01b481bed.js +0 -0
  158. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/3698-52ad1ca228faa776.js +0 -0
  159. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/3785.b3cc2bc1d49d2c3c.js +0 -0
  160. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js +0 -0
  161. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/3947-b059261d6fa88a1f.js +0 -0
  162. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js +0 -0
  163. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/4697.f5421144224da9fc.js +0 -0
  164. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/4725.4c849b1e05c8e9ad.js +0 -0
  165. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js +0 -0
  166. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/5491.918ffed0ba7a5294.js +0 -0
  167. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js +0 -0
  168. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js +0 -0
  169. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/6601-fcfad0ddf92ec7ab.js +0 -0
  170. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/6989-6ff4e45dfb49d11d.js +0 -0
  171. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/6990-d0dc765474fa0eca.js +0 -0
  172. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/804-9f5e98ce84d46bdd.js +0 -0
  173. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/8969-909d53833da080cb.js +0 -0
  174. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/8982.a2e214068f30a857.js +0 -0
  175. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/9025.a7c44babfe56ce09.js +0 -0
  176. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/938-044ad21de8b4626b.js +0 -0
  177. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/9470-21d059a1dfa03f61.js +0 -0
  178. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/9984.b56614f3c4c5961d.js +0 -0
  179. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js +0 -0
  180. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js +0 -0
  181. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js +0 -0
  182. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js +0 -0
  183. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/_app-a37b06ddb64521fd.js +0 -0
  184. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js +0 -0
  185. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-8135aba0712bda37.js +0 -0
  186. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-1159f362b960e2b8.js +0 -0
  187. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/clusters-9744c271a1642f76.js +0 -0
  188. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js +0 -0
  189. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/index-927ddeebe57a8ac3.js +0 -0
  190. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-8b0809f59034d509.js +0 -0
  191. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/infra-ae9d2f705ce582c9.js +0 -0
  192. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-c4d5cfac7fbc0668.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/jobs-5bbdc71878f0a068.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/users-cd43fb3c122eedde.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/volumes-4ebf6484f7216387.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-7c0187f43757a548.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/pages/workspaces-06bde99155fa6292.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/chunks/webpack-9a81ea998672c303.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/_next/static/css/0da6afe66176678a.css +0 -0
  202. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/favicon.ico +0 -0
  203. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/skypilot.svg +0 -0
  204. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  205. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/data/__init__.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/data/data_transfer.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/data/data_utils.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/data/mounting_utils.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/data/storage.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/data/storage_utils.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/exceptions.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/execution.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/__init__.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/client/__init__.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/client/sdk.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/constants.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/controller.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/recovery_strategy.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/scheduler.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/server/__init__.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/server/core.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/server/server.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/jobs/utils.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/logs/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/logs/agent.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/logs/gcp.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/metrics/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/metrics/utils.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/models.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/optimizer.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/aws/__init__.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/aws/config.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/aws/instance.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/aws/utils.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/azure/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/azure/azure-config-template.json +0 -0
  237. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/azure/config.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/azure/instance.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/common.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/constants.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/cudo/__init__.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/cudo/config.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/cudo/cudo_machine_type.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/cudo/cudo_utils.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/cudo/cudo_wrapper.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/cudo/instance.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/do/__init__.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/do/config.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/do/constants.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/do/instance.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/do/utils.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/docker_utils.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/fluidstack/__init__.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/fluidstack/config.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/fluidstack/instance.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/instance_utils.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/mig_utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/gcp/volume_utils.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/hyperbolic/__init__.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/hyperbolic/config.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/hyperbolic/instance.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/hyperbolic/utils.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/instance_setup.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/__init__.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/config.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/constants.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  269. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/network.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/network_utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/kubernetes/volume.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/lambda_cloud/__init__.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/lambda_cloud/config.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/lambda_cloud/instance.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/logging.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/metadata_utils.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/nebius/__init__.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/nebius/config.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/nebius/constants.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/nebius/instance.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/nebius/utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/oci/__init__.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/oci/config.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/oci/instance.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/oci/query_utils.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/paperspace/__init__.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/paperspace/config.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/paperspace/constants.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/paperspace/instance.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/paperspace/utils.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/provisioner.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/__init__.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/api/__init__.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/api/commands.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/api/pods.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/config.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/instance.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/runpod/utils.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/scp/__init__.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/scp/config.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/scp/instance.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/ssh/__init__.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vast/__init__.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vast/config.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vast/instance.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vast/utils.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/__init__.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/__init__.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/custom_script.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/id_generator.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/service_manager.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/common/vim_utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/config.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/instance.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/provision/vsphere/vsphere_utils.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/__init__.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/autoscalers.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/client/__init__.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/client/sdk.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/constants.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/controller.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/load_balancer.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/load_balancing_policies.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/replica_managers.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/serve_state.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/serve_utils.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/server/__init__.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/server/core.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/server/server.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/service.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/service_spec.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/serve/spot_placer.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/__init__.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/common.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/config.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/constants.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/html/log.html +0 -0
  345. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/html/token_page.html +0 -0
  346. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/__init__.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/event_loop.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/preconditions.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/process.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/queues/__init__.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/queues/local_queue.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/queues/mp_queue.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/serializers/__init__.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/serializers/decoders.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/requests/serializers/encoders.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/rest.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/state.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/stream_utils.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/server/versions.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/setup_files/MANIFEST.in +0 -0
  361. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/setup_files/dependencies.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/setup_files/setup.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/sky_logging.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/LICENSE +0 -0
  365. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/__init__.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/attempt_skylet.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/autostop_lib.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/configs.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/events.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/job_lib.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/log_lib.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/log_lib.pyi +0 -0
  373. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/providers/__init__.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/providers/command_runner.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/providers/ibm/__init__.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/providers/ibm/node_provider.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/providers/ibm/utils.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/__init__.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  381. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/cli.py.patch +0 -0
  382. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  383. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  384. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  385. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/updater.py.patch +0 -0
  386. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/ray_patches/worker.py.patch +0 -0
  387. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/skylet.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skylet/subprocess_daemon.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/skypilot_config.py +0 -0
  390. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/ssh_node_pools/__init__.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/ssh_node_pools/core.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/ssh_node_pools/server.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/task.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/aws-ray.yml.j2 +0 -0
  395. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/azure-ray.yml.j2 +0 -0
  396. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/cudo-ray.yml.j2 +0 -0
  397. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/do-ray.yml.j2 +0 -0
  398. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  399. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  400. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/ibm-ray.yml.j2 +0 -0
  401. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/jobs-controller.yaml.j2 +0 -0
  402. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  403. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  404. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  405. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  406. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/lambda-ray.yml.j2 +0 -0
  407. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/local-ray.yml.j2 +0 -0
  408. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/nebius-ray.yml.j2 +0 -0
  409. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/oci-ray.yml.j2 +0 -0
  410. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/paperspace-ray.yml.j2 +0 -0
  411. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/runpod-ray.yml.j2 +0 -0
  412. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/scp-ray.yml.j2 +0 -0
  413. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  414. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  415. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/vast-ray.yml.j2 +0 -0
  416. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/vsphere-ray.yml.j2 +0 -0
  417. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/templates/websocket_proxy.py +0 -0
  418. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/usage/__init__.py +0 -0
  419. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/usage/constants.py +0 -0
  420. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/usage/usage_lib.py +0 -0
  421. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/users/__init__.py +0 -0
  422. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/users/model.conf +0 -0
  423. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/users/permission.py +0 -0
  424. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/users/rbac.py +0 -0
  425. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/users/server.py +0 -0
  426. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/users/token_service.py +0 -0
  427. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/__init__.py +0 -0
  428. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/accelerator_registry.py +0 -0
  429. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/admin_policy_utils.py +0 -0
  430. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/annotations.py +0 -0
  431. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/atomic.py +0 -0
  432. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/aws/__init__.py +0 -0
  433. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/aws/get_default_security_group.py +0 -0
  434. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/cli_utils/__init__.py +0 -0
  435. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/cli_utils/status_utils.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/cluster_utils.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/command_runner.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/command_runner.pyi +0 -0
  439. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/common.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/common_utils.py +0 -0
  441. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/config_utils.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/context.py +0 -0
  443. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/context_utils.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/control_master_utils.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/controller_utils.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/dag_utils.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/db_utils.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/env_options.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/infra_utils.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/__init__.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  452. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/config_map_utils.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/create_cluster.sh +0 -0
  454. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  455. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  459. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  461. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  462. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  463. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  464. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  465. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  466. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes/ssh_utils.py +0 -0
  467. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/kubernetes_enums.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/log_utils.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/message_utils.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/registry.py +0 -0
  471. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/resource_checker.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/rich_console_utils.py +0 -0
  473. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/rich_utils.py +0 -0
  474. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/status_lib.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/subprocess_utils.py +0 -0
  476. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/tempstore.py +0 -0
  477. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/timeline.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/ux_utils.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/utils/validator.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/__init__.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/client/__init__.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/client/sdk.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/server/__init__.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/server/core.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/server/server.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/utils.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/volumes/volume.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/workspaces/__init__.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/workspaces/core.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/workspaces/server.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/sky/workspaces/utils.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  493. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  494. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/skypilot_nightly.egg-info/requires.txt +0 -0
  495. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/skypilot_nightly.egg-info/top_level.txt +0 -0
  496. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_api.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_api_compatibility.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_cli.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_config.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_db_utils.py +0 -0
  501. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_failover.py +0 -0
  502. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_global_user_state.py +0 -0
  503. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_jobs.py +0 -0
  504. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_jobs_and_serve.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_list_accelerators.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_no_parellel.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_optimizer_dryruns.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_optimizer_random_dag.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_serve_autoscaler.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_smoke.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_storage.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/tests/test_wheels.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20250707 → skypilot_nightly-1.0.0.dev20250709}/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.dev20250707
3
+ Version: 1.0.0.dev20250709
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '37ee86178d5bc23c6dc4fd69f0294b15075a64b8'
8
+ _SKYPILOT_COMMIT_SHA = '049a61037fec870c541621cb37b03783e046d44b'
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.dev20250707'
38
+ __version__ = '1.0.0.dev20250709'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -1600,7 +1600,8 @@ class RetryingVmProvisioner(object):
1600
1600
  CloudVmRayBackend().post_teardown_cleanup(
1601
1601
  handle,
1602
1602
  terminate=not prev_cluster_ever_up,
1603
- remove_from_db=False)
1603
+ remove_from_db=False,
1604
+ failover=True)
1604
1605
  # TODO(suquark): other clouds may have different zone
1605
1606
  # blocking strategy. See '_update_blocklist_on_error'
1606
1607
  # for details.
@@ -4402,12 +4403,17 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4402
4403
  handle: CloudVmRayResourceHandle,
4403
4404
  terminate: bool,
4404
4405
  purge: bool = False,
4405
- remove_from_db: bool = True) -> None:
4406
+ remove_from_db: bool = True,
4407
+ failover: bool = False) -> None:
4406
4408
  """Cleanup local configs/caches and delete TPUs after teardown.
4407
4409
 
4408
4410
  This method will handle the following cleanup steps:
4409
4411
  * Deleting the TPUs;
4410
4412
  * Removing ssh configs for the cluster;
4413
+ * Deleting the open ports;
4414
+ * Deleting the custom multi network infrastructure based on the
4415
+ failover flag (e.g. delete firewalls, subnets, and VPCs for GPU
4416
+ Direct if failover is False, otherwise, only delete the subnets);
4411
4417
  * Updating the local state of the cluster;
4412
4418
  * Removing the terminated cluster's scripts and ray yaml files.
4413
4419
  """
@@ -4439,12 +4445,14 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4439
4445
  # The cluster yaml does not exist when skypilot has not found
4440
4446
  # the right resource to provision the cluster.
4441
4447
  if handle.cluster_yaml is not None:
4448
+ launched_resources = (
4449
+ handle.launched_resources.assert_launchable())
4450
+ cloud = launched_resources.cloud
4451
+ config = global_user_state.get_cluster_yaml_dict(
4452
+ handle.cluster_yaml)
4453
+ ports_cleaned_up = False
4454
+ custom_multi_network_cleaned_up = False
4442
4455
  try:
4443
- launched_resources = (
4444
- handle.launched_resources.assert_launchable())
4445
- cloud = launched_resources.cloud
4446
- config = global_user_state.get_cluster_yaml_dict(
4447
- handle.cluster_yaml)
4448
4456
  cloud.check_features_are_supported(
4449
4457
  launched_resources,
4450
4458
  {clouds.CloudImplementationFeatures.OPEN_PORTS})
@@ -4452,7 +4460,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4452
4460
  cluster_name_on_cloud,
4453
4461
  handle.launched_resources.ports,
4454
4462
  config['provider'])
4455
- self.remove_cluster_config(handle)
4463
+ ports_cleaned_up = True
4456
4464
  except exceptions.NotSupportedError:
4457
4465
  pass
4458
4466
  except exceptions.PortDoesNotExistError:
@@ -4466,6 +4474,42 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
4466
4474
  else:
4467
4475
  raise
4468
4476
 
4477
+ # Clean up custom multi networks, e.g. the subnets, firewalls,
4478
+ # and VPCs created for GCP GPUDirect TCPX
4479
+ try:
4480
+ cloud.check_features_are_supported(
4481
+ handle.launched_resources, {
4482
+ clouds.CloudImplementationFeatures.
4483
+ CUSTOM_MULTI_NETWORK
4484
+ })
4485
+ provision_lib.cleanup_custom_multi_network(
4486
+ repr(cloud), cluster_name_on_cloud, config['provider'],
4487
+ failover)
4488
+ custom_multi_network_cleaned_up = True
4489
+ except exceptions.NotSupportedError:
4490
+ pass
4491
+ except Exception as e: # pylint: disable=broad-except
4492
+ if purge:
4493
+ msg = common_utils.format_exception(e, use_bracket=True)
4494
+ logger.warning(
4495
+ f'Failed to cleanup custom multi network. Skipping '
4496
+ f'since purge is set. Details: {msg}')
4497
+ else:
4498
+ raise
4499
+
4500
+ if ports_cleaned_up and custom_multi_network_cleaned_up:
4501
+ try:
4502
+ self.remove_cluster_config(handle)
4503
+ except Exception as e: # pylint: disable=broad-except
4504
+ if purge:
4505
+ msg = common_utils.format_exception(
4506
+ e, use_bracket=True)
4507
+ logger.warning(
4508
+ f'Failed to remove cluster config. Skipping '
4509
+ f'since purge is set. Details: {msg}')
4510
+ else:
4511
+ raise
4512
+
4469
4513
  sky.utils.cluster_utils.SSHConfigHelper.remove_cluster(
4470
4514
  handle.cluster_name)
4471
4515
 
@@ -206,9 +206,14 @@ def _upload_chunk_with_retry(params: UploadChunkParams) -> None:
206
206
  f'Retrying... ({attempt + 1} / {max_attempts})')
207
207
  time.sleep(1)
208
208
  else:
209
+ try:
210
+ response_details = response.json().get('detail')
211
+ except Exception: # pylint: disable=broad-except
212
+ response_details = response.content
209
213
  error_msg = (
210
214
  f'Failed to upload chunk: {params.chunk_index + 1} / '
211
- f'{params.total_chunks}: {response.json().get("detail")}')
215
+ f'{params.total_chunks}: {response_details} '
216
+ f'(Status code: {response.status_code})')
212
217
  upload_logger.error(error_msg)
213
218
  with ux_utils.print_exception_no_traceback():
214
219
  raise RuntimeError(
@@ -174,6 +174,11 @@ class AWS(clouds.Cloud):
174
174
  f'High availability controllers are not supported on {cls._REPR}.'
175
175
  )
176
176
 
177
+ unsupported_features[
178
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK] = (
179
+ f'Customized multiple network interfaces are not supported on {cls._REPR}.'
180
+ )
181
+
177
182
  return unsupported_features
178
183
 
179
184
  @classmethod
@@ -94,6 +94,9 @@ class Azure(clouds.Cloud):
94
94
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS: (
95
95
  f'High availability controllers are not supported on {cls._REPR}.'
96
96
  ),
97
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK: (
98
+ f'Customized multiple network interfaces are not supported on {cls._REPR}.'
99
+ ),
97
100
  }
98
101
  if resources.use_spot:
99
102
  features[clouds.CloudImplementationFeatures.STOP] = (
@@ -55,6 +55,9 @@ class CloudImplementationFeatures(enum.Enum):
55
55
  AUTO_TERMINATE = 'auto_terminate' # Pod/VM can stop or down itself
56
56
  AUTOSTOP = 'autostop' # Pod/VM can stop itself
57
57
  AUTODOWN = 'autodown' # Pod/VM can down itself
58
+ # Pod/VM can have customized multiple network interfaces
59
+ # e.g. GCP GPUDirect TCPX
60
+ CUSTOM_MULTI_NETWORK = 'custom_multi_network'
58
61
 
59
62
 
60
63
  # Use str, enum.Enum to allow CloudCapability to be used as a string.
@@ -73,6 +73,9 @@ class Cudo(clouds.Cloud):
73
73
  ),
74
74
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
75
75
  ('High availability controllers are not supported on Cudo.'),
76
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
77
+ ('Customized multiple network interfaces are not supported on Cudo.'
78
+ ),
76
79
  }
77
80
  _MAX_CLUSTER_NAME_LEN_LIMIT = 60
78
81
 
@@ -40,6 +40,9 @@ class DO(clouds.Cloud):
40
40
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
41
41
  ('High availability controllers are not supported in '
42
42
  f'{_REPR}.'),
43
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
44
+ ('Customized multiple network interfaces are not supported in '
45
+ f'{_REPR}.'),
43
46
  }
44
47
  # DO maximum node name length defined as <= 255
45
48
  # https://docs.digitalocean.com/reference/api/api-reference/#operation/droplets_create
@@ -63,6 +63,9 @@ class Fluidstack(clouds.Cloud):
63
63
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
64
64
  ('High availability controllers are not supported in '
65
65
  f'{_REPR}.'),
66
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
67
+ ('Customized multiple network interfaces are not supported in '
68
+ f'{_REPR}.'),
66
69
  }
67
70
  # Using the latest SkyPilot provisioner API to provision and check status.
68
71
  PROVISIONER_VERSION = clouds.ProvisionerVersion.SKYPILOT
@@ -512,8 +512,9 @@ class GCP(clouds.Cloud):
512
512
  default_value=False,
513
513
  override_configs=resources.cluster_config_overrides)
514
514
  resources_vars['enable_gpu_direct'] = enable_gpu_direct
515
- network_tier = r.network_tier
516
- resources_vars['network_tier'] = network_tier
515
+ network_tier = (r.network_tier if r.network_tier is not None else
516
+ resources_utils.NetworkTier.STANDARD)
517
+ resources_vars['network_tier'] = network_tier.value
517
518
  accelerators = r.accelerators
518
519
  if accelerators is not None:
519
520
  assert len(accelerators) == 1, r
@@ -53,6 +53,9 @@ class IBM(clouds.Cloud):
53
53
  (f'Opening ports is currently not supported on {cls._REPR}.'),
54
54
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
55
55
  ('High availability controllers are not supported on IBM.'),
56
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
57
+ ('Customized multiple network interfaces are not supported on '
58
+ f'{cls._REPR}.'),
56
59
  }
57
60
  if resources.use_spot:
58
61
  features[clouds.CloudImplementationFeatures.STOP] = (
@@ -14,6 +14,7 @@ from sky import exceptions
14
14
  from sky import sky_logging
15
15
  from sky import skypilot_config
16
16
  from sky.adaptors import kubernetes
17
+ from sky.clouds.utils import gcp_utils
17
18
  from sky.provision import instance_setup
18
19
  from sky.provision.kubernetes import network_utils
19
20
  from sky.provision.kubernetes import utils as kubernetes_utils
@@ -22,6 +23,7 @@ from sky.provision.kubernetes.utils import normalize_tpu_accelerator_name
22
23
  from sky.skylet import constants
23
24
  from sky.utils import annotations
24
25
  from sky.utils import common_utils
26
+ from sky.utils import kubernetes_enums
25
27
  from sky.utils import registry
26
28
  from sky.utils import resources_utils
27
29
  from sky.utils import schemas
@@ -76,6 +78,9 @@ class Kubernetes(clouds.Cloud):
76
78
  'tiers are not '
77
79
  'supported in '
78
80
  'Kubernetes.',
81
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
82
+ ('Customized multiple network interfaces are not supported in '
83
+ 'Kubernetes.'),
79
84
  clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
80
85
  ('Custom network tier is currently not supported in '
81
86
  f'{_REPR}.'),
@@ -281,7 +286,8 @@ class Kubernetes(clouds.Cloud):
281
286
  default_value=None)
282
287
  if (autoscaler_type is not None and
283
288
  not kubernetes_utils.get_autoscaler(
284
- autoscaler_type).can_query_backend):
289
+ kubernetes_enums.KubernetesAutoscalerType(
290
+ autoscaler_type)).can_query_backend):
285
291
  # Unsupported autoscaler type. Rely on the autoscaler to
286
292
  # provision the right instance type without running checks.
287
293
  # Worst case, if autoscaling fails, the pod will be stuck in
@@ -298,7 +304,8 @@ class Kubernetes(clouds.Cloud):
298
304
 
299
305
  if autoscaler_type is None:
300
306
  continue
301
- autoscaler = kubernetes_utils.get_autoscaler(autoscaler_type)
307
+ autoscaler = kubernetes_utils.get_autoscaler(
308
+ kubernetes_enums.KubernetesAutoscalerType(autoscaler_type))
302
309
  logger.debug(f'{context} has autoscaler of type: {autoscaler_type}')
303
310
  if autoscaler.can_create_new_instance_of_type(
304
311
  context, instance_type):
@@ -406,8 +413,10 @@ class Kubernetes(clouds.Cloud):
406
413
 
407
414
  @staticmethod
408
415
  def _calculate_provision_timeout(
409
- num_nodes: int,
410
- volume_mounts: Optional[List['volume_lib.VolumeMount']]) -> int:
416
+ num_nodes: int,
417
+ volume_mounts: Optional[List['volume_lib.VolumeMount']],
418
+ enable_flex_start: bool,
419
+ ) -> int:
411
420
  """Calculate provision timeout based on number of nodes.
412
421
 
413
422
  The timeout scales linearly with the number of nodes to account for
@@ -415,6 +424,8 @@ class Kubernetes(clouds.Cloud):
415
424
 
416
425
  Args:
417
426
  num_nodes: Number of nodes being provisioned
427
+ volume_mounts: Volume mounts for the pod
428
+ enable_flex_start: Whether flex start is enabled
418
429
 
419
430
  Returns:
420
431
  Timeout in seconds
@@ -422,7 +433,12 @@ class Kubernetes(clouds.Cloud):
422
433
  base_timeout = 10 # Base timeout for single node
423
434
  per_node_timeout = 0.2 # Additional seconds per node
424
435
  max_timeout = 60 # Cap at 1 minute
425
- if volume_mounts is not None:
436
+ if enable_flex_start:
437
+ # Flex start takes longer to provision.
438
+ base_timeout = 1200
439
+ per_node_timeout = 10
440
+ max_timeout = 2400
441
+ elif volume_mounts is not None:
426
442
  for volume_mount in volume_mounts:
427
443
  if (volume_mount.volume_config.type ==
428
444
  volume_lib.VolumeType.PVC.value):
@@ -581,24 +597,6 @@ class Kubernetes(clouds.Cloud):
581
597
  if resources.use_spot:
582
598
  spot_label_key, spot_label_value = kubernetes_utils.get_spot_label()
583
599
 
584
- # Timeout for resource provisioning. This timeout determines how long to
585
- # wait for pod to be in pending status before giving up.
586
- # Larger timeout may be required for autoscaling clusters, since
587
- # autoscaler may take some time to provision new nodes.
588
- # Note that this timeout includes time taken by the Kubernetes scheduler
589
- # itself, which can be upto 2-3 seconds, and up to 10-15 seconds when
590
- # scheduling 100s of pods.
591
- # We use a linear scaling formula to determine the timeout based on the
592
- # number of nodes.
593
-
594
- timeout = self._calculate_provision_timeout(num_nodes, volume_mounts)
595
- timeout = skypilot_config.get_effective_region_config(
596
- cloud='kubernetes',
597
- region=context,
598
- keys=('provision_timeout',),
599
- default_value=timeout,
600
- override_configs=resources.cluster_config_overrides)
601
-
602
600
  # Check if this cluster supports high performance networking and
603
601
  # configure IPC_LOCK capability for clusters like Nebius that support it
604
602
  k8s_ipc_lock_capability = False
@@ -640,7 +638,46 @@ class Kubernetes(clouds.Cloud):
640
638
  cloud='kubernetes',
641
639
  region=context,
642
640
  keys=('kueue', 'local_queue_name'),
643
- default_value=None))
641
+ default_value=None,
642
+ override_configs=resources.cluster_config_overrides))
643
+
644
+ # Check DWS configuration for GKE.
645
+ (enable_flex_start, enable_flex_start_queued_provisioning,
646
+ max_run_duration_seconds) = gcp_utils.get_dws_config(
647
+ context, k8s_kueue_local_queue_name,
648
+ resources.cluster_config_overrides)
649
+ if enable_flex_start_queued_provisioning or enable_flex_start:
650
+ # DWS is only supported in GKE, check the autoscaler type.
651
+ autoscaler_type = skypilot_config.get_effective_region_config(
652
+ cloud='kubernetes',
653
+ region=context,
654
+ keys=('autoscaler',),
655
+ default_value=None)
656
+ if (autoscaler_type !=
657
+ kubernetes_enums.KubernetesAutoscalerType.GKE.value):
658
+ raise ValueError(
659
+ f'DWS is only supported in GKE, but the autoscaler type '
660
+ f'for context {context} is {autoscaler_type}')
661
+
662
+ # Timeout for resource provisioning. This timeout determines how long to
663
+ # wait for pod to be in pending status before giving up.
664
+ # Larger timeout may be required for autoscaling clusters, since
665
+ # autoscaler may take some time to provision new nodes.
666
+ # Note that this timeout includes time taken by the Kubernetes scheduler
667
+ # itself, which can be upto 2-3 seconds, and up to 10-15 seconds when
668
+ # scheduling 100s of pods.
669
+ # We use a linear scaling formula to determine the timeout based on the
670
+ # number of nodes.
671
+
672
+ timeout = self._calculate_provision_timeout(
673
+ num_nodes, volume_mounts, enable_flex_start or
674
+ enable_flex_start_queued_provisioning)
675
+ timeout = skypilot_config.get_effective_region_config(
676
+ cloud='kubernetes',
677
+ region=context,
678
+ keys=('provision_timeout',),
679
+ default_value=timeout,
680
+ override_configs=resources.cluster_config_overrides)
644
681
 
645
682
  deploy_vars = {
646
683
  'instance_type': resources.instance_type,
@@ -696,6 +733,8 @@ class Kubernetes(clouds.Cloud):
696
733
  (k8s_ha_storage_class_name),
697
734
  'avoid_label_keys': avoid_label_keys,
698
735
  'k8s_ipc_lock_capability': k8s_ipc_lock_capability,
736
+ 'k8s_enable_flex_start': enable_flex_start,
737
+ 'k8s_max_run_duration_seconds': max_run_duration_seconds,
699
738
  }
700
739
 
701
740
  # Add kubecontext if it is set. It may be None if SkyPilot is running
@@ -49,6 +49,9 @@ class Lambda(clouds.Cloud):
49
49
  f'{_REPR}.'),
50
50
  clouds.CloudImplementationFeatures.HOST_CONTROLLERS: f'Host controllers are not supported in {_REPR}.',
51
51
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS: f'High availability controllers are not supported on {_REPR}.',
52
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
53
+ ('Customized multiple network interfaces are not supported in '
54
+ f'{_REPR}.'),
52
55
  }
53
56
 
54
57
  PROVISIONER_VERSION = clouds.ProvisionerVersion.SKYPILOT
@@ -62,6 +62,9 @@ class Nebius(clouds.Cloud):
62
62
  ('Custom network tier is currently not supported on Nebius.'),
63
63
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
64
64
  ('High availability controllers are not supported on Nebius.'),
65
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
66
+ ('Customized multiple network interfaces are not supported on '
67
+ f'{_REPR}.'),
65
68
  }
66
69
  # Nebius maximum instance name length defined as <= 63 as a hostname length
67
70
  # 63 - 8 - 5 = 50 characters since
@@ -80,6 +80,9 @@ class OCI(clouds.Cloud):
80
80
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
81
81
  ('High availability controllers are not supported on '
82
82
  f'{cls._REPR}.'),
83
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
84
+ ('Customized multiple network interfaces are not supported on '
85
+ f'{cls._REPR}.'),
83
86
  }
84
87
  if resources.use_spot:
85
88
  unsupported_features[clouds.CloudImplementationFeatures.STOP] = (
@@ -47,6 +47,9 @@ class Paperspace(clouds.Cloud):
47
47
  f'{_REPR}.'),
48
48
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
49
49
  (f'High availability controllers are not supported in {_REPR}.'),
50
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
51
+ ('Customized multiple network interfaces are not supported in '
52
+ f'{_REPR}.'),
50
53
  }
51
54
  _MAX_CLUSTER_NAME_LEN_LIMIT = 120
52
55
  _regions: List[clouds.Region] = []
@@ -39,6 +39,9 @@ class RunPod(clouds.Cloud):
39
39
  'to local disk.'),
40
40
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
41
41
  ('High availability controllers are not supported on RunPod.'),
42
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
43
+ ('Customized multiple network interfaces are not supported on '
44
+ 'RunPod.'),
42
45
  }
43
46
  _MAX_CLUSTER_NAME_LEN_LIMIT = 120
44
47
  _regions: List[clouds.Region] = []
@@ -62,6 +62,9 @@ class SCP(clouds.Cloud):
62
62
  f'{_REPR}.'),
63
63
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
64
64
  (f'High availability controllers are not supported on {_REPR}.'),
65
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
66
+ ('Customized multiple network interfaces are not supported on '
67
+ f'{_REPR}.'),
65
68
  }
66
69
 
67
70
  _INDENT_PREFIX = ' '
@@ -10,7 +10,7 @@ import dataclasses
10
10
  import json
11
11
  import time
12
12
  import typing
13
- from typing import List, Optional, Set
13
+ from typing import Any, Dict, List, Optional, Set, Tuple
14
14
 
15
15
  import cachetools
16
16
 
@@ -18,6 +18,7 @@ from sky import sky_logging
18
18
  from sky import skypilot_config
19
19
  from sky.provision.gcp import constants
20
20
  from sky.provision.kubernetes import utils as kubernetes_utils
21
+ from sky.utils import resources_utils
21
22
  from sky.utils import subprocess_utils
22
23
 
23
24
  if typing.TYPE_CHECKING:
@@ -206,3 +207,62 @@ def get_minimal_storage_permissions() -> List[str]:
206
207
  permissions += constants.GCP_MINIMAL_PERMISSIONS
207
208
 
208
209
  return permissions
210
+
211
+
212
+ # Get the DWS configuration for the given context in GKE.
213
+ def get_dws_config(
214
+ context: str,
215
+ k8s_kueue_local_queue_name: Optional[str],
216
+ cluster_config_overrides: Optional[Dict[str, Any]] = None,
217
+ ) -> Tuple[bool, bool, Optional[int]]:
218
+ """Get the DWS configuration for the given context.
219
+
220
+ Args:
221
+ context: The context to get the DWS configuration for.
222
+ k8s_kueue_local_queue_name: The name of the Kueue local queue.
223
+ cluster_config_overrides: The cluster config overrides.
224
+
225
+ Returns:
226
+ A tuple of (enable_flex_start,
227
+ enable_flex_start_queued_provisioning,
228
+ max_run_duration_seconds).
229
+
230
+ Raises:
231
+ ValueError: If k8s_kueue_local_queue_name is missing to enable
232
+ flex start queued provisioning for the given context.
233
+ """
234
+ dws_config = skypilot_config.get_effective_region_config(
235
+ cloud='kubernetes',
236
+ region=context,
237
+ keys=('dws',),
238
+ default_value={},
239
+ override_configs=cluster_config_overrides)
240
+ if not dws_config:
241
+ return False, False, None
242
+
243
+ enabled = dws_config.get('enabled', False)
244
+ if not enabled:
245
+ return False, False, None
246
+
247
+ enable_flex_start = False
248
+ enable_flex_start_queued_provisioning = False
249
+ max_run_duration_seconds = None
250
+ # If users already use Kueue, use the flex start with queued
251
+ # provisioning mode.
252
+ if k8s_kueue_local_queue_name:
253
+ enable_flex_start_queued_provisioning = True
254
+ else:
255
+ enable_flex_start = True
256
+
257
+ if not enable_flex_start_queued_provisioning:
258
+ return (enable_flex_start, enable_flex_start_queued_provisioning,
259
+ max_run_duration_seconds)
260
+
261
+ # Max run duration is only used in the flex start with queued
262
+ # provisioning mode.
263
+ max_run_duration = dws_config.get('max_run_duration', None)
264
+ if max_run_duration:
265
+ max_run_duration_seconds = resources_utils.parse_time_minutes(
266
+ max_run_duration) * 60
267
+ return (enable_flex_start, enable_flex_start_queued_provisioning,
268
+ max_run_duration_seconds)
@@ -35,6 +35,9 @@ class Vast(clouds.Cloud):
35
35
  ('Mounting object stores is not supported on Vast.'),
36
36
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
37
37
  ('High availability controllers are not supported on Vast.'),
38
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
39
+ ('Customized multiple network interfaces are not supported on Vast.'
40
+ ),
38
41
  }
39
42
  #
40
43
  # Vast doesn't have a max cluster name limit. This number
@@ -60,6 +60,9 @@ class Vsphere(clouds.Cloud):
60
60
  (f'Opening ports is currently not supported on {_REPR}.'),
61
61
  clouds.CloudImplementationFeatures.HIGH_AVAILABILITY_CONTROLLERS:
62
62
  (f'High availability controllers are not supported on {_REPR}.'),
63
+ clouds.CloudImplementationFeatures.CUSTOM_MULTI_NETWORK:
64
+ (f'Customized multiple network interfaces '
65
+ f'are not supported on {_REPR}.'),
63
66
  }
64
67
 
65
68
  _MAX_CLUSTER_NAME_LEN_LIMIT = 80 # The name can't exceeds 80 characters
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"wEkAg9F21A-COXJLf20VU","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"EqELoF4IXcALfWVihInou","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-8135aba0712bda37.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"wEkAg9F21A-COXJLf20VU","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-8135aba0712bda37.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"EqELoF4IXcALfWVihInou","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/3947-b059261d6fa88a1f.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-d0dc765474fa0eca.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-909d53833da080cb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-1b39779691bb4030.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-fcfad0ddf92ec7ab.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-044ad21de8b4626b.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-80dea41717729fa5.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-1159f362b960e2b8.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"wEkAg9F21A-COXJLf20VU","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-9f5e98ce84d46bdd.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/3947-b059261d6fa88a1f.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-6ff4e45dfb49d11d.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-52ad1ca228faa776.js" defer=""></script><script src="/dashboard/_next/static/chunks/9470-21d059a1dfa03f61.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-d0dc765474fa0eca.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-909d53833da080cb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-1b39779691bb4030.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-fcfad0ddf92ec7ab.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-044ad21de8b4626b.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-80dea41717729fa5.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-1159f362b960e2b8.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"EqELoF4IXcALfWVihInou","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
@@ -1 +1 @@
1
- <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-9744c271a1642f76.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/wEkAg9F21A-COXJLf20VU/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"wEkAg9F21A-COXJLf20VU","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
1
+ <!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/0da6afe66176678a.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/0da6afe66176678a.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-9a81ea998672c303.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-a37b06ddb64521fd.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-9744c271a1642f76.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/EqELoF4IXcALfWVihInou/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"EqELoF4IXcALfWVihInou","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>