skypilot-nightly 1.0.0.dev20250123__tar.gz → 1.0.0.dev20250125__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 (317) hide show
  1. {skypilot_nightly-1.0.0.dev20250123/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250125}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/check.py +31 -1
  4. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/kubernetes.py +3 -3
  5. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/controller.py +4 -1
  6. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/state.py +79 -14
  7. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/utils.py +188 -139
  8. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/utils.py +76 -18
  9. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/constants.py +1 -1
  10. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/events.py +1 -1
  11. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  12. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/LICENSE +0 -0
  13. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/MANIFEST.in +0 -0
  14. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/README.md +0 -0
  15. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/pyproject.toml +0 -0
  16. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/setup.cfg +0 -0
  17. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/setup.py +0 -0
  18. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/__init__.py +0 -0
  19. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/aws.py +0 -0
  20. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/azure.py +0 -0
  21. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/cloudflare.py +0 -0
  22. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/common.py +0 -0
  23. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/cudo.py +0 -0
  24. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/do.py +0 -0
  25. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/docker.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/gcp.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/ibm.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/kubernetes.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/oci.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/runpod.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/adaptors/vsphere.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/admin_policy.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/authentication.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/__init__.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/backend.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/backend_utils.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/cloud_vm_ray_backend.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/docker_utils.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/local_docker_backend.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/backends/wheel_utils.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/benchmark/__init__.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/benchmark/benchmark_state.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/benchmark/benchmark_utils.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/cli.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/cloud_stores.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/__init__.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/aws.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/azure.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/cloud.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/cloud_registry.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/cudo.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/do.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/fluidstack.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/gcp.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/ibm.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/lambda_cloud.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/oci.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/paperspace.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/runpod.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/scp.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/__init__.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/common.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/config.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/constants.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/do_catalog.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/utils/__init__.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/utils/aws_utils.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/utils/azure_utils.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/utils/gcp_utils.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/utils/oci_utils.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/utils/scp_utils.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/clouds/vsphere.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/core.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/dag.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/data/__init__.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/data/data_transfer.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/data/data_utils.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/data/mounting_utils.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/data/storage.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/data/storage_utils.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/exceptions.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/execution.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/global_user_state.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/__init__.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/constants.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/core.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/dashboard/dashboard.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/dashboard/static/favicon.ico +0 -0
  111. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/dashboard/templates/index.html +0 -0
  112. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/recovery_strategy.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/jobs/scheduler.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/optimizer.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/__init__.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/aws/__init__.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/aws/config.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/aws/instance.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/aws/utils.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/azure/__init__.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/azure/azure-config-template.json +0 -0
  122. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/azure/config.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/azure/instance.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/common.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/constants.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/cudo/__init__.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/cudo/config.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/cudo/cudo_machine_type.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/cudo/cudo_utils.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/cudo/cudo_wrapper.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/cudo/instance.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/do/__init__.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/do/config.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/do/constants.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/do/instance.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/do/utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/docker_utils.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/fluidstack/__init__.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/fluidstack/config.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/fluidstack/instance.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/gcp/__init__.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/gcp/config.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/gcp/constants.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/gcp/instance.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/gcp/instance_utils.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/gcp/mig_utils.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/instance_setup.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/__init__.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/config.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/instance.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  153. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  154. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/network.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/kubernetes/network_utils.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/lambda_cloud/__init__.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/lambda_cloud/config.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/lambda_cloud/instance.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/logging.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/metadata_utils.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/oci/__init__.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/oci/config.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/oci/instance.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/oci/query_utils.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/paperspace/__init__.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/paperspace/config.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/paperspace/constants.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/paperspace/instance.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/paperspace/utils.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/provisioner.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/__init__.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/api/__init__.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/api/commands.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/api/pods.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/config.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/instance.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/runpod/utils.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/__init__.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/__init__.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/custom_script.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/id_generator.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/service_manager.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/common/vim_utils.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/config.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/instance.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/provision/vsphere/vsphere_utils.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/resources.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/__init__.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/autoscalers.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/constants.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/controller.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/core.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/load_balancer.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/load_balancing_policies.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/replica_managers.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/serve_state.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/serve_utils.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/service.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/serve/service_spec.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/setup_files/MANIFEST.in +0 -0
  208. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/setup_files/dependencies.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/setup_files/setup.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/sky_logging.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/LICENSE +0 -0
  212. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/__init__.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/attempt_skylet.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/autostop_lib.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/configs.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/job_lib.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/log_lib.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/log_lib.pyi +0 -0
  219. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/__init__.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/command_runner.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/ibm/__init__.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/ibm/node_provider.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/ibm/utils.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/scp/__init__.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/scp/config.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/providers/scp/node_provider.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/__init__.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  230. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/cli.py.patch +0 -0
  231. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  232. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  233. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  234. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/updater.py.patch +0 -0
  235. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/ray_patches/worker.py.patch +0 -0
  236. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/skylet.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skylet/subprocess_daemon.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/skypilot_config.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/status_lib.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/task.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/aws-ray.yml.j2 +0 -0
  242. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/azure-ray.yml.j2 +0 -0
  243. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/cudo-ray.yml.j2 +0 -0
  244. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/do-ray.yml.j2 +0 -0
  245. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  246. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/gcp-ray.yml.j2 +0 -0
  247. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/ibm-ray.yml.j2 +0 -0
  248. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/jobs-controller.yaml.j2 +0 -0
  249. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  250. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  251. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  252. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  253. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  254. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/lambda-ray.yml.j2 +0 -0
  255. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/local-ray.yml.j2 +0 -0
  256. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/oci-ray.yml.j2 +0 -0
  257. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/paperspace-ray.yml.j2 +0 -0
  258. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/runpod-ray.yml.j2 +0 -0
  259. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/scp-ray.yml.j2 +0 -0
  260. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  261. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/templates/vsphere-ray.yml.j2 +0 -0
  262. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/usage/__init__.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/usage/constants.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/usage/usage_lib.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/__init__.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/accelerator_registry.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/admin_policy_utils.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/cli_utils/__init__.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/cli_utils/status_utils.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/cluster_yaml_utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/command_runner.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/command_runner.pyi +0 -0
  273. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/common_utils.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/control_master_utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/controller_utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/dag_utils.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/db_utils.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/env_options.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/__init__.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/create_cluster.sh +0 -0
  281. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  282. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  283. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  285. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  287. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  288. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  289. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/kubernetes_enums.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/log_utils.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/resources_utils.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/rich_utils.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/schemas.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/subprocess_utils.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/timeline.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/ux_utils.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/sky/utils/validator.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  300. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  301. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  302. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/skypilot_nightly.egg-info/requires.txt +0 -0
  303. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/skypilot_nightly.egg-info/top_level.txt +0 -0
  304. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_api.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_cli.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_config.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_global_user_state.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_jobs.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_jobs_and_serve.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_list_accelerators.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_optimizer_dryruns.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_optimizer_random_dag.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_serve_autoscaler.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_smoke.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_storage.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_wheels.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250123 → skypilot_nightly-1.0.0.dev20250125}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250123
3
+ Version: 1.0.0.dev20250125
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
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 = '5b0f80d40362e8761caae527ffd62d8b9360ad8e'
8
+ _SKYPILOT_COMMIT_SHA = '485b1cd4688d5ac984cc666f372b55009cb064b7'
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.dev20250123'
38
+ __version__ = '1.0.0.dev20250125'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -155,7 +155,8 @@ def check(
155
155
  # Pretty print for UX.
156
156
  if not quiet:
157
157
  enabled_clouds_str = '\n :heavy_check_mark: '.join(
158
- [''] + sorted(all_enabled_clouds))
158
+ [''] +
159
+ [_format_enabled_cloud(c) for c in sorted(all_enabled_clouds)])
159
160
  rich.print('\n[green]:tada: Enabled clouds :tada:'
160
161
  f'{enabled_clouds_str}[/green]')
161
162
 
@@ -222,3 +223,32 @@ def get_cloud_credential_file_mounts(
222
223
  r2_credential_mounts = cloudflare.get_credential_file_mounts()
223
224
  file_mounts.update(r2_credential_mounts)
224
225
  return file_mounts
226
+
227
+
228
+ def _format_enabled_cloud(cloud_name: str) -> str:
229
+ if cloud_name == repr(sky_clouds.Kubernetes()):
230
+ # Get enabled contexts for Kubernetes
231
+ existing_contexts = sky_clouds.Kubernetes.existing_allowed_contexts()
232
+ if not existing_contexts:
233
+ return cloud_name
234
+
235
+ # Check if allowed_contexts is explicitly set in config
236
+ allowed_contexts = skypilot_config.get_nested(
237
+ ('kubernetes', 'allowed_contexts'), None)
238
+
239
+ # Format the context info with consistent styling
240
+ if allowed_contexts is not None:
241
+ contexts_formatted = []
242
+ for i, context in enumerate(existing_contexts):
243
+ # TODO: We should use ux_utils.INDENT_SYMBOL and
244
+ # INDENT_LAST_SYMBOL but, they are formatted for colorama, while
245
+ # here we are using rich. We should migrate this file to
246
+ # use colorama as we do in the rest of the codebase.
247
+ symbol = ('└── ' if i == len(existing_contexts) - 1 else '├── ')
248
+ contexts_formatted.append(f'\n {symbol}{context}')
249
+ context_info = f'Allowed contexts:{"".join(contexts_formatted)}'
250
+ else:
251
+ context_info = f'Active context: {existing_contexts[0]}'
252
+
253
+ return f'{cloud_name}[/green][dim]\n └── {context_info}[/dim][green]'
254
+ return cloud_name
@@ -131,7 +131,7 @@ class Kubernetes(clouds.Cloud):
131
131
  'Ignoring these contexts.')
132
132
 
133
133
  @classmethod
134
- def _existing_allowed_contexts(cls) -> List[str]:
134
+ def existing_allowed_contexts(cls) -> List[str]:
135
135
  """Get existing allowed contexts.
136
136
 
137
137
  If None is returned in the list, it means that we are running in a pod
@@ -175,7 +175,7 @@ class Kubernetes(clouds.Cloud):
175
175
  use_spot: bool, region: Optional[str],
176
176
  zone: Optional[str]) -> List[clouds.Region]:
177
177
  del accelerators, zone, use_spot # unused
178
- existing_contexts = cls._existing_allowed_contexts()
178
+ existing_contexts = cls.existing_allowed_contexts()
179
179
 
180
180
  regions = []
181
181
  for context in existing_contexts:
@@ -591,7 +591,7 @@ class Kubernetes(clouds.Cloud):
591
591
  def check_credentials(cls) -> Tuple[bool, Optional[str]]:
592
592
  # Test using python API
593
593
  try:
594
- existing_allowed_contexts = cls._existing_allowed_contexts()
594
+ existing_allowed_contexts = cls.existing_allowed_contexts()
595
595
  except ImportError as e:
596
596
  return (False,
597
597
  f'{common_utils.format_exception(e, use_bracket=True)}')
@@ -1,4 +1,7 @@
1
- """Controller: handles the life cycle of a managed job."""
1
+ """Controller: handles the life cycle of a managed job.
2
+
3
+ TODO(cooperc): Document lifecycle, and multiprocess layout.
4
+ """
2
5
  import argparse
3
6
  import multiprocessing
4
7
  import os
@@ -230,12 +230,12 @@ class ManagedJobStatus(enum.Enum):
230
230
  # RECOVERING: The cluster is preempted, and the controller process is
231
231
  # recovering the cluster (relaunching/failover).
232
232
  RECOVERING = 'RECOVERING'
233
- # Terminal statuses
234
- # SUCCEEDED: The job is finished successfully.
235
- SUCCEEDED = 'SUCCEEDED'
236
233
  # CANCELLING: The job is requested to be cancelled by the user, and the
237
234
  # controller is cleaning up the cluster.
238
235
  CANCELLING = 'CANCELLING'
236
+ # Terminal statuses
237
+ # SUCCEEDED: The job is finished successfully.
238
+ SUCCEEDED = 'SUCCEEDED'
239
239
  # CANCELLED: The job is cancelled by the user. When the managed job is in
240
240
  # CANCELLED status, the cluster has been cleaned up.
241
241
  CANCELLED = 'CANCELLED'
@@ -281,7 +281,6 @@ class ManagedJobStatus(enum.Enum):
281
281
  cls.FAILED_PRECHECKS,
282
282
  cls.FAILED_NO_RESOURCE,
283
283
  cls.FAILED_CONTROLLER,
284
- cls.CANCELLING,
285
284
  cls.CANCELLED,
286
285
  ]
287
286
 
@@ -512,8 +511,12 @@ def set_failed(
512
511
  failure_reason: str,
513
512
  callback_func: Optional[CallbackType] = None,
514
513
  end_time: Optional[float] = None,
514
+ override_terminal: bool = False,
515
515
  ):
516
- """Set an entire job or task to failed, if they are in non-terminal states.
516
+ """Set an entire job or task to failed.
517
+
518
+ By default, don't override tasks that are already terminal (that is, for
519
+ which end_at is already set).
517
520
 
518
521
  Args:
519
522
  job_id: The job id.
@@ -522,12 +525,13 @@ def set_failed(
522
525
  failure_type: The failure type. One of ManagedJobStatus.FAILED_*.
523
526
  failure_reason: The failure reason.
524
527
  end_time: The end time. If None, the current time will be used.
528
+ override_terminal: If True, override the current status even if end_at
529
+ is already set.
525
530
  """
526
531
  assert failure_type.is_failed(), failure_type
527
532
  end_time = time.time() if end_time is None else end_time
528
533
 
529
- fields_to_set = {
530
- 'end_at': end_time,
534
+ fields_to_set: Dict[str, Any] = {
531
535
  'status': failure_type.value,
532
536
  'failure_reason': failure_reason,
533
537
  }
@@ -542,14 +546,31 @@ def set_failed(
542
546
  # affect the job duration calculation.
543
547
  fields_to_set['last_recovered_at'] = end_time
544
548
  set_str = ', '.join(f'{k}=(?)' for k in fields_to_set)
545
- task_str = '' if task_id is None else f' AND task_id={task_id}'
549
+ task_query_str = '' if task_id is None else 'AND task_id=(?)'
550
+ task_value = [] if task_id is None else [
551
+ task_id,
552
+ ]
546
553
 
547
- cursor.execute(
548
- f"""\
549
- UPDATE spot SET
550
- {set_str}
551
- WHERE spot_job_id=(?){task_str} AND end_at IS null""",
552
- (*list(fields_to_set.values()), job_id))
554
+ if override_terminal:
555
+ # Use COALESCE for end_at to avoid overriding the existing end_at if
556
+ # it's already set.
557
+ cursor.execute(
558
+ f"""\
559
+ UPDATE spot SET
560
+ end_at = COALESCE(end_at, ?),
561
+ {set_str}
562
+ WHERE spot_job_id=(?) {task_query_str}""",
563
+ (end_time, *list(fields_to_set.values()), job_id, *task_value))
564
+ else:
565
+ # Only set if end_at is null, i.e. the previous status is not
566
+ # terminal.
567
+ cursor.execute(
568
+ f"""\
569
+ UPDATE spot SET
570
+ end_at = (?),
571
+ {set_str}
572
+ WHERE spot_job_id=(?) {task_query_str} AND end_at IS null""",
573
+ (end_time, *list(fields_to_set.values()), job_id, *task_value))
553
574
  if callback_func:
554
575
  callback_func('FAILED')
555
576
  logger.info(failure_reason)
@@ -677,6 +698,50 @@ def get_schedule_live_jobs(job_id: Optional[int]) -> List[Dict[str, Any]]:
677
698
  return jobs
678
699
 
679
700
 
701
+ def get_jobs_to_check_status(job_id: Optional[int] = None) -> List[int]:
702
+ """Get jobs that need controller process checking.
703
+
704
+ Args:
705
+ job_id: Optional job ID to check. If None, checks all jobs.
706
+
707
+ Returns a list of job_ids, including the following:
708
+ - For jobs with schedule state: jobs that have schedule state not DONE
709
+ - For legacy jobs (no schedule state): jobs that are in non-terminal status
710
+ """
711
+ job_filter = '' if job_id is None else 'AND spot.spot_job_id=(?)'
712
+ job_value = () if job_id is None else (job_id,)
713
+
714
+ status_filter_str = ', '.join(['?'] *
715
+ len(ManagedJobStatus.terminal_statuses()))
716
+ terminal_status_values = [
717
+ status.value for status in ManagedJobStatus.terminal_statuses()
718
+ ]
719
+
720
+ # Get jobs that are either:
721
+ # 1. Have schedule state that is not DONE, or
722
+ # 2. Have no schedule state (legacy) AND are in non-terminal status
723
+ with db_utils.safe_cursor(_DB_PATH) as cursor:
724
+ rows = cursor.execute(
725
+ f"""\
726
+ SELECT DISTINCT spot.spot_job_id
727
+ FROM spot
728
+ LEFT OUTER JOIN job_info
729
+ ON spot.spot_job_id=job_info.spot_job_id
730
+ WHERE (
731
+ (job_info.schedule_state IS NOT NULL AND
732
+ job_info.schedule_state IS NOT ?)
733
+ OR
734
+ (job_info.schedule_state IS NULL AND
735
+ status NOT IN ({status_filter_str}))
736
+ )
737
+ {job_filter}
738
+ ORDER BY spot.spot_job_id DESC""", [
739
+ ManagedJobScheduleState.DONE.value, *terminal_status_values,
740
+ *job_value
741
+ ]).fetchall()
742
+ return [row[0] for row in rows if row[0] is not None]
743
+
744
+
680
745
  def get_all_job_ids_by_name(name: Optional[str]) -> List[int]:
681
746
  """Get all job ids by name."""
682
747
  name_filter = ''