skypilot-nightly 1.0.0.dev20250105__tar.gz → 1.0.0.dev20250106__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 (316) hide show
  1. {skypilot_nightly-1.0.0.dev20250105/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250106}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/backend_utils.py +36 -0
  4. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/cloud_vm_ray_backend.py +17 -0
  5. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/cloud_stores.py +10 -2
  6. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/aws.py +24 -0
  7. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/cloud.py +4 -0
  8. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/gcp.py +9 -0
  9. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/data/data_utils.py +8 -4
  10. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  11. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/LICENSE +0 -0
  12. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/MANIFEST.in +0 -0
  13. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/README.md +0 -0
  14. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/pyproject.toml +0 -0
  15. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/setup.cfg +0 -0
  16. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/setup.py +0 -0
  17. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/__init__.py +0 -0
  18. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/aws.py +0 -0
  19. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/azure.py +0 -0
  20. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/cloudflare.py +0 -0
  21. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/common.py +0 -0
  22. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/cudo.py +0 -0
  23. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/do.py +0 -0
  24. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/docker.py +0 -0
  25. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/gcp.py +0 -0
  26. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/ibm.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/kubernetes.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/oci.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/runpod.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/adaptors/vsphere.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/admin_policy.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/authentication.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/__init__.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/backend.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/docker_utils.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/local_docker_backend.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/backends/wheel_utils.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/benchmark/__init__.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/benchmark/benchmark_state.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/benchmark/benchmark_utils.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/check.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/cli.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/__init__.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/azure.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/cloud_registry.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/cudo.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/do.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/fluidstack.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/ibm.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/kubernetes.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/lambda_cloud.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/oci.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/paperspace.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/runpod.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/scp.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/__init__.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/common.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/config.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/constants.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/do_catalog.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/utils/__init__.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/utils/aws_utils.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/utils/azure_utils.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/utils/gcp_utils.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/utils/oci_utils.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/utils/scp_utils.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/clouds/vsphere.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/core.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/dag.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/data/__init__.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/data/data_transfer.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/data/mounting_utils.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/data/storage.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/data/storage_utils.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/exceptions.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/execution.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/global_user_state.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/__init__.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/constants.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/controller.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/core.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/dashboard/dashboard.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/dashboard/static/favicon.ico +0 -0
  106. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/dashboard/templates/index.html +0 -0
  107. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/recovery_strategy.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/state.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/jobs/utils.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/optimizer.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/__init__.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/aws/__init__.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/aws/config.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/aws/instance.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/aws/utils.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/azure/__init__.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/azure/azure-config-template.json +0 -0
  118. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/azure/config.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/azure/instance.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/common.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/constants.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/cudo/__init__.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/cudo/config.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/cudo/cudo_machine_type.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/cudo/cudo_utils.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/cudo/cudo_wrapper.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/cudo/instance.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/do/__init__.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/do/config.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/do/constants.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/do/instance.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/do/utils.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/docker_utils.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/fluidstack/__init__.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/fluidstack/config.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/fluidstack/instance.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/gcp/__init__.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/gcp/config.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/gcp/constants.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/gcp/instance.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/gcp/instance_utils.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/gcp/mig_utils.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/instance_setup.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/__init__.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/config.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/instance.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  149. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  150. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/network.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/network_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/kubernetes/utils.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/lambda_cloud/__init__.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/lambda_cloud/config.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/lambda_cloud/instance.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/logging.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/metadata_utils.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/oci/__init__.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/oci/config.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/oci/instance.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/oci/query_utils.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/paperspace/__init__.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/paperspace/config.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/paperspace/constants.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/paperspace/instance.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/paperspace/utils.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/provisioner.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/__init__.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/api/__init__.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/api/commands.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/api/pods.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/config.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/instance.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/runpod/utils.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/__init__.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/__init__.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/custom_script.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/id_generator.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/service_manager.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/common/vim_utils.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/config.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/instance.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/provision/vsphere/vsphere_utils.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/resources.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/__init__.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/autoscalers.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/constants.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/controller.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/core.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/load_balancer.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/load_balancing_policies.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/replica_managers.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/serve_state.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/serve_utils.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/service.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/serve/service_spec.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/setup_files/MANIFEST.in +0 -0
  205. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/setup_files/dependencies.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/setup_files/setup.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/sky_logging.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/LICENSE +0 -0
  209. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/__init__.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/attempt_skylet.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/autostop_lib.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/configs.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/constants.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/events.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/job_lib.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/log_lib.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/log_lib.pyi +0 -0
  218. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/__init__.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/command_runner.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/ibm/__init__.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/ibm/node_provider.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/ibm/utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/scp/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/scp/config.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/providers/scp/node_provider.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/__init__.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  229. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/cli.py.patch +0 -0
  230. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  231. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  232. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  233. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/updater.py.patch +0 -0
  234. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/ray_patches/worker.py.patch +0 -0
  235. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/skylet.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skylet/subprocess_daemon.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/skypilot_config.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/status_lib.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/task.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/aws-ray.yml.j2 +0 -0
  241. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/azure-ray.yml.j2 +0 -0
  242. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/cudo-ray.yml.j2 +0 -0
  243. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/do-ray.yml.j2 +0 -0
  244. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  245. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/gcp-ray.yml.j2 +0 -0
  246. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/ibm-ray.yml.j2 +0 -0
  247. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/jobs-controller.yaml.j2 +0 -0
  248. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  249. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  250. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  251. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  252. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  253. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/lambda-ray.yml.j2 +0 -0
  254. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/local-ray.yml.j2 +0 -0
  255. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/oci-ray.yml.j2 +0 -0
  256. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/paperspace-ray.yml.j2 +0 -0
  257. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/runpod-ray.yml.j2 +0 -0
  258. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/scp-ray.yml.j2 +0 -0
  259. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  260. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/templates/vsphere-ray.yml.j2 +0 -0
  261. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/usage/__init__.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/usage/constants.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/usage/usage_lib.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/__init__.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/accelerator_registry.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/admin_policy_utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/cli_utils/__init__.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/cli_utils/status_utils.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/cluster_yaml_utils.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/command_runner.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/command_runner.pyi +0 -0
  272. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/common_utils.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/control_master_utils.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/controller_utils.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/dag_utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/db_utils.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/env_options.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/__init__.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/create_cluster.sh +0 -0
  280. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  281. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  282. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  284. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  286. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  287. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  288. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/kubernetes_enums.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/log_utils.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/resources_utils.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/rich_utils.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/schemas.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/subprocess_utils.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/timeline.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/ux_utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/sky/utils/validator.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
  299. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  300. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  301. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/skypilot_nightly.egg-info/requires.txt +0 -0
  302. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/skypilot_nightly.egg-info/top_level.txt +0 -0
  303. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_api.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_cli.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_config.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_global_user_state.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_jobs.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_jobs_and_serve.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_list_accelerators.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_optimizer_dryruns.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_optimizer_random_dag.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_serve_autoscaler.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_smoke.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_storage.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_wheels.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250105 → skypilot_nightly-1.0.0.dev20250106}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250105
3
+ Version: 1.0.0.dev20250106
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 = '4ab8e1668053fef8ae87ba9c832073c444078e49'
8
+ _SKYPILOT_COMMIT_SHA = '38a822ac6b553df0e784e559715ee4269c21f780'
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.dev20250105'
38
+ __version__ = '1.0.0.dev20250106'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -650,6 +650,42 @@ def _replace_yaml_dicts(
650
650
  return common_utils.dump_yaml_str(new_config)
651
651
 
652
652
 
653
+ def get_expirable_clouds(
654
+ enabled_clouds: Sequence[clouds.Cloud]) -> List[clouds.Cloud]:
655
+ """Returns a list of clouds that use local credentials and whose credentials can expire.
656
+
657
+ This function checks each cloud in the provided sequence to determine if it uses local credentials
658
+ and if its credentials can expire. If both conditions are met, the cloud is added to the list of
659
+ expirable clouds.
660
+
661
+ Args:
662
+ enabled_clouds (Sequence[clouds.Cloud]): A sequence of cloud objects to check.
663
+
664
+ Returns:
665
+ list[clouds.Cloud]: A list of cloud objects that use local credentials and whose credentials can expire.
666
+ """
667
+ expirable_clouds = []
668
+ local_credentials_value = schemas.RemoteIdentityOptions.LOCAL_CREDENTIALS.value
669
+ for cloud in enabled_clouds:
670
+ remote_identities = skypilot_config.get_nested(
671
+ (str(cloud).lower(), 'remote_identity'), None)
672
+ if remote_identities is None:
673
+ remote_identities = schemas.get_default_remote_identity(
674
+ str(cloud).lower())
675
+
676
+ local_credential_expiring = cloud.can_credential_expire()
677
+ if isinstance(remote_identities, str):
678
+ if remote_identities == local_credentials_value and local_credential_expiring:
679
+ expirable_clouds.append(cloud)
680
+ elif isinstance(remote_identities, list):
681
+ for profile in remote_identities:
682
+ if list(profile.values(
683
+ ))[0] == local_credentials_value and local_credential_expiring:
684
+ expirable_clouds.append(cloud)
685
+ break
686
+ return expirable_clouds
687
+
688
+
653
689
  # TODO: too many things happening here - leaky abstraction. Refactor.
654
690
  @timeline.event
655
691
  def write_cluster_config(
@@ -26,6 +26,7 @@ import filelock
26
26
 
27
27
  import sky
28
28
  from sky import backends
29
+ from sky import check as sky_check
29
30
  from sky import cloud_stores
30
31
  from sky import clouds
31
32
  from sky import exceptions
@@ -1996,6 +1997,22 @@ class RetryingVmProvisioner(object):
1996
1997
  skip_unnecessary_provisioning else None)
1997
1998
 
1998
1999
  failover_history: List[Exception] = list()
2000
+ # If the user is using local credentials which may expire, the
2001
+ # controller may leak resources if the credentials expire while a job
2002
+ # is running. Here we check the enabled clouds and expiring credentials
2003
+ # and raise a warning to the user.
2004
+ if task.is_controller_task():
2005
+ enabled_clouds = sky_check.get_cached_enabled_clouds_or_refresh()
2006
+ expirable_clouds = backend_utils.get_expirable_clouds(
2007
+ enabled_clouds)
2008
+
2009
+ if len(expirable_clouds) > 0:
2010
+ warnings = (f'\033[93mWarning: Credentials used for '
2011
+ f'{expirable_clouds} may expire. Clusters may be '
2012
+ f'leaked if the credentials expire while jobs '
2013
+ f'are running. It is recommended to use credentials'
2014
+ f' that never expire or a service account.\033[0m')
2015
+ logger.warning(warnings)
1999
2016
 
2000
2017
  # Retrying launchable resources.
2001
2018
  while True:
@@ -113,8 +113,16 @@ class GcsCloudStorage(CloudStorage):
113
113
  @property
114
114
  def _gsutil_command(self):
115
115
  gsutil_alias, alias_gen = data_utils.get_gsutil_command()
116
- return (f'{alias_gen}; GOOGLE_APPLICATION_CREDENTIALS='
117
- f'{gcp.DEFAULT_GCP_APPLICATION_CREDENTIAL_PATH} {gsutil_alias}')
116
+ return (
117
+ f'{alias_gen}; GOOGLE_APPLICATION_CREDENTIALS='
118
+ f'{gcp.DEFAULT_GCP_APPLICATION_CREDENTIAL_PATH}; '
119
+ # Explicitly activate service account. Unlike the gcp packages
120
+ # and other GCP commands, gsutil does not automatically pick up
121
+ # the default credential keys when it is a service account.
122
+ 'gcloud auth activate-service-account '
123
+ '--key-file=$GOOGLE_APPLICATION_CREDENTIALS '
124
+ '2> /dev/null || true; '
125
+ f'{gsutil_alias}')
118
126
 
119
127
  def is_directory(self, url: str) -> bool:
120
128
  """Returns whether 'url' is a directory.
@@ -103,6 +103,24 @@ class AWSIdentityType(enum.Enum):
103
103
  # region us-east-1 config-file ~/.aws/config
104
104
  SHARED_CREDENTIALS_FILE = 'shared-credentials-file'
105
105
 
106
+ def can_credential_expire(self) -> bool:
107
+ """Check if the AWS identity type can expire.
108
+
109
+ SSO,IAM_ROLE and CONTAINER_ROLE are temporary credentials and refreshed
110
+ automatically. ENV and SHARED_CREDENTIALS_FILE are short-lived
111
+ credentials without refresh.
112
+ IAM ROLE:
113
+ https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html
114
+ SSO/Container-role refresh token:
115
+ https://docs.aws.amazon.com/solutions/latest/dea-api/auth-refreshtoken.html
116
+ """
117
+ # TODO(hong): Add a CLI based check for the expiration of the temporary
118
+ # credentials
119
+ expirable_types = {
120
+ AWSIdentityType.ENV, AWSIdentityType.SHARED_CREDENTIALS_FILE
121
+ }
122
+ return self in expirable_types
123
+
106
124
 
107
125
  @clouds.CLOUD_REGISTRY.register
108
126
  class AWS(clouds.Cloud):
@@ -860,6 +878,12 @@ class AWS(clouds.Cloud):
860
878
  if os.path.exists(os.path.expanduser(f'~/.aws/{filename}'))
861
879
  }
862
880
 
881
+ @functools.lru_cache(maxsize=1)
882
+ def can_credential_expire(self) -> bool:
883
+ identity_type = self._current_identity_type()
884
+ return identity_type is not None and identity_type.can_credential_expire(
885
+ )
886
+
863
887
  def instance_type_exists(self, instance_type):
864
888
  return service_catalog.instance_type_exists(instance_type, clouds='aws')
865
889
 
@@ -536,6 +536,10 @@ class Cloud:
536
536
  """
537
537
  raise NotImplementedError
538
538
 
539
+ def can_credential_expire(self) -> bool:
540
+ """Returns whether the cloud credential can expire."""
541
+ return False
542
+
539
543
  @classmethod
540
544
  def get_image_size(cls, image_id: str, region: Optional[str]) -> float:
541
545
  """Check the image size from the cloud.
@@ -132,6 +132,9 @@ class GCPIdentityType(enum.Enum):
132
132
 
133
133
  SHARED_CREDENTIALS_FILE = ''
134
134
 
135
+ def can_credential_expire(self) -> bool:
136
+ return self == GCPIdentityType.SHARED_CREDENTIALS_FILE
137
+
135
138
 
136
139
  @clouds.CLOUD_REGISTRY.register
137
140
  class GCP(clouds.Cloud):
@@ -863,6 +866,12 @@ class GCP(clouds.Cloud):
863
866
  pass
864
867
  return credentials
865
868
 
869
+ @functools.lru_cache(maxsize=1)
870
+ def can_credential_expire(self) -> bool:
871
+ identity_type = self._get_identity_type()
872
+ return identity_type is not None and identity_type.can_credential_expire(
873
+ )
874
+
866
875
  @classmethod
867
876
  def _get_identity_type(cls) -> Optional[GCPIdentityType]:
868
877
  try:
@@ -523,10 +523,14 @@ def get_gsutil_command() -> Tuple[str, str]:
523
523
 
524
524
  def run_upload_cli(command: str, access_denied_message: str, bucket_name: str,
525
525
  log_path: str):
526
- returncode, stdout, stderr = log_lib.run_with_log(command,
527
- log_path,
528
- shell=True,
529
- require_outputs=True)
526
+ returncode, stdout, stderr = log_lib.run_with_log(
527
+ command,
528
+ log_path,
529
+ shell=True,
530
+ require_outputs=True,
531
+ # We need to use bash as some of the cloud commands uses bash syntax,
532
+ # such as [[ ... ]]
533
+ executable='/bin/bash')
530
534
  if access_denied_message in stderr:
531
535
  with ux_utils.print_exception_no_traceback():
532
536
  raise PermissionError('Failed to upload files to '
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250105
3
+ Version: 1.0.0.dev20250106
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0