skypilot-nightly 1.0.0.dev20241017__tar.gz → 1.0.0.dev20241018__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 (305) hide show
  1. {skypilot_nightly-1.0.0.dev20241017/sky/setup_files → skypilot_nightly-1.0.0.dev20241018}/MANIFEST.in +0 -1
  2. {skypilot_nightly-1.0.0.dev20241017/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20241018}/PKG-INFO +1 -1
  3. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/__init__.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/authentication.py +1 -1
  5. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/backend_utils.py +4 -0
  6. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/aws.py +15 -4
  7. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/lambda_cloud.py +4 -1
  8. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +6 -4
  9. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/__init__.py +3 -0
  10. skypilot_nightly-1.0.0.dev20241018/sky/provision/lambda_cloud/__init__.py +11 -0
  11. skypilot_nightly-1.0.0.dev20241018/sky/provision/lambda_cloud/config.py +10 -0
  12. skypilot_nightly-1.0.0.dev20241018/sky/provision/lambda_cloud/instance.py +261 -0
  13. {skypilot_nightly-1.0.0.dev20241017/sky/clouds/utils → skypilot_nightly-1.0.0.dev20241018/sky/provision/lambda_cloud}/lambda_utils.py +19 -18
  14. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018/sky/setup_files}/MANIFEST.in +0 -1
  15. skypilot_nightly-1.0.0.dev20241018/sky/templates/lambda-ray.yml.j2 +80 -0
  16. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  17. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/skypilot_nightly.egg-info/SOURCES.txt +4 -3
  18. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_smoke.py +5 -5
  19. skypilot_nightly-1.0.0.dev20241017/sky/skylet/providers/lambda_cloud/__init__.py +0 -2
  20. skypilot_nightly-1.0.0.dev20241017/sky/skylet/providers/lambda_cloud/node_provider.py +0 -320
  21. skypilot_nightly-1.0.0.dev20241017/sky/templates/lambda-ray.yml.j2 +0 -111
  22. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/LICENSE +0 -0
  23. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/README.md +0 -0
  24. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/pyproject.toml +0 -0
  25. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/setup.cfg +0 -0
  26. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/setup.py +0 -0
  27. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/__init__.py +0 -0
  28. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/aws.py +0 -0
  29. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/azure.py +0 -0
  30. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/cloudflare.py +0 -0
  31. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/common.py +0 -0
  32. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/cudo.py +0 -0
  33. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/docker.py +0 -0
  34. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/gcp.py +0 -0
  35. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/ibm.py +0 -0
  36. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/kubernetes.py +0 -0
  37. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/oci.py +0 -0
  38. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/runpod.py +0 -0
  39. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/adaptors/vsphere.py +0 -0
  40. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/admin_policy.py +0 -0
  41. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/__init__.py +0 -0
  42. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/backend.py +0 -0
  43. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/cloud_vm_ray_backend.py +0 -0
  44. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/docker_utils.py +0 -0
  45. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/local_docker_backend.py +0 -0
  46. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  47. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/backends/wheel_utils.py +0 -0
  48. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/benchmark/__init__.py +0 -0
  49. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/benchmark/benchmark_state.py +0 -0
  50. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/benchmark/benchmark_utils.py +0 -0
  51. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/check.py +0 -0
  52. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/cli.py +0 -0
  53. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/cloud_stores.py +0 -0
  54. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/__init__.py +0 -0
  55. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/azure.py +0 -0
  56. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/cloud.py +0 -0
  57. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/cloud_registry.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/cudo.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/fluidstack.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/gcp.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/ibm.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/kubernetes.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/oci.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/paperspace.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/runpod.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/scp.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/__init__.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/common.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/config.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/constants.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/utils/__init__.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/utils/aws_utils.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/utils/gcp_utils.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/utils/oci_utils.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/utils/scp_utils.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/clouds/vsphere.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/core.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/dag.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/data/__init__.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/data/data_transfer.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/data/data_utils.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/data/mounting_utils.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/data/storage.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/data/storage_utils.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/exceptions.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/execution.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/global_user_state.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/__init__.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/constants.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/controller.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/core.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/dashboard/dashboard.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/dashboard/static/favicon.ico +0 -0
  114. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/dashboard/templates/index.html +0 -0
  115. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/recovery_strategy.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/state.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/jobs/utils.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/optimizer.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/aws/__init__.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/aws/config.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/aws/instance.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/aws/utils.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/azure/__init__.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/azure/azure-config-template.json +0 -0
  125. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/azure/azure-vm-template.json +0 -0
  126. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/azure/config.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/azure/instance.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/common.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/constants.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/cudo/__init__.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/cudo/config.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/cudo/cudo_machine_type.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/cudo/cudo_utils.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/cudo/cudo_wrapper.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/cudo/instance.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/docker_utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/fluidstack/__init__.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/fluidstack/config.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/fluidstack/instance.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/gcp/__init__.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/gcp/config.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/gcp/constants.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/gcp/instance.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/gcp/instance_utils.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/gcp/mig_utils.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/instance_setup.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/__init__.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/config.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/instance.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
  152. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
  153. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/network.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/network_utils.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/kubernetes/utils.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/logging.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/metadata_utils.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/paperspace/__init__.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/paperspace/config.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/paperspace/constants.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/paperspace/instance.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/paperspace/utils.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/provisioner.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/runpod/__init__.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/runpod/config.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/runpod/instance.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/runpod/utils.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/__init__.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/__init__.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/custom_script.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/id_generator.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/service_manager.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/common/vim_utils.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/config.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/instance.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/provision/vsphere/vsphere_utils.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/resources.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/__init__.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/autoscalers.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/constants.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/controller.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/core.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/load_balancer.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/load_balancing_policies.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/replica_managers.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/serve_state.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/serve_utils.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/service.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/serve/service_spec.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/setup_files/setup.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/sky_logging.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/LICENSE +0 -0
  199. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/__init__.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/attempt_skylet.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/autostop_lib.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/configs.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/constants.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/events.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/job_lib.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/log_lib.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/log_lib.pyi +0 -0
  208. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/__init__.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/command_runner.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/ibm/__init__.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/ibm/node_provider.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/ibm/utils.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/oci/__init__.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/oci/node_provider.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/oci/query_helper.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/oci/utils.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/scp/__init__.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/scp/config.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/providers/scp/node_provider.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/__init__.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  223. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/cli.py.patch +0 -0
  224. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  225. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  226. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  227. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/updater.py.patch +0 -0
  228. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/ray_patches/worker.py.patch +0 -0
  229. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/skylet.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skylet/subprocess_daemon.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/skypilot_config.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/status_lib.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/task.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/aws-ray.yml.j2 +0 -0
  235. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/azure-ray.yml.j2 +0 -0
  236. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/cudo-ray.yml.j2 +0 -0
  237. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  238. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/gcp-ray.yml.j2 +0 -0
  239. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/ibm-ray.yml.j2 +0 -0
  240. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/jobs-controller.yaml.j2 +0 -0
  241. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  242. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  243. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  244. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  245. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  246. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/local-ray.yml.j2 +0 -0
  247. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/oci-ray.yml.j2 +0 -0
  248. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/paperspace-ray.yml.j2 +0 -0
  249. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/runpod-ray.yml.j2 +0 -0
  250. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/scp-ray.yml.j2 +0 -0
  251. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  252. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/templates/vsphere-ray.yml.j2 +0 -0
  253. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/usage/__init__.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/usage/constants.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/usage/usage_lib.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/__init__.py +0 -0
  257. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/accelerator_registry.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/admin_policy_utils.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/cli_utils/__init__.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/cli_utils/status_utils.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/cluster_yaml_utils.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/command_runner.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/command_runner.pyi +0 -0
  264. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/common_utils.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/controller_utils.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/dag_utils.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/db_utils.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/env_options.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/__init__.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/create_cluster.sh +0 -0
  271. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  272. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  273. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  275. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  277. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  278. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  279. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/kubernetes_enums.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/log_utils.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/resources_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/rich_utils.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/schemas.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/subprocess_utils.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/timeline.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/ux_utils.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/sky/utils/validator.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  290. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  291. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/skypilot_nightly.egg-info/requires.txt +0 -0
  292. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/skypilot_nightly.egg-info/top_level.txt +0 -0
  293. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_api.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_cli.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_config.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_global_user_state.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_jobs.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_jobs_and_serve.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_list_accelerators.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_optimizer_dryruns.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_optimizer_random_dag.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_serve_autoscaler.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_storage.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_wheels.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20241017 → skypilot_nightly-1.0.0.dev20241018}/tests/test_yaml_parser.py +0 -0
@@ -6,7 +6,6 @@ include sky/setup_files/*
6
6
  include sky/skylet/*.sh
7
7
  include sky/skylet/LICENSE
8
8
  include sky/skylet/providers/ibm/*
9
- include sky/skylet/providers/lambda_cloud/*
10
9
  include sky/skylet/providers/oci/*
11
10
  include sky/skylet/providers/scp/*
12
11
  include sky/skylet/providers/*.py
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241017
3
+ Version: 1.0.0.dev20241018
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 = '3e98afe8f96531ffb6332679083918f7ad67481e'
8
+ _SKYPILOT_COMMIT_SHA = '71a95f4bf7f1446e80bb5c24d23c1695bc4fc031'
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.dev20241017'
38
+ __version__ = '1.0.0.dev20241018'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -43,9 +43,9 @@ from sky.adaptors import gcp
43
43
  from sky.adaptors import ibm
44
44
  from sky.adaptors import kubernetes
45
45
  from sky.adaptors import runpod
46
- from sky.clouds.utils import lambda_utils
47
46
  from sky.provision.fluidstack import fluidstack_utils
48
47
  from sky.provision.kubernetes import utils as kubernetes_utils
48
+ from sky.provision.lambda_cloud import lambda_utils
49
49
  from sky.utils import common_utils
50
50
  from sky.utils import kubernetes_enums
51
51
  from sky.utils import subprocess_utils
@@ -2772,6 +2772,10 @@ def get_endpoints(cluster: str,
2772
2772
  cluster_records = get_clusters(include_controller=True,
2773
2773
  refresh=False,
2774
2774
  cluster_names=[cluster])
2775
+ if not cluster_records:
2776
+ with ux_utils.print_exception_no_traceback():
2777
+ raise exceptions.ClusterNotUpError(
2778
+ f'Cluster {cluster!r} not found.', cluster_status=None)
2775
2779
  assert len(cluster_records) == 1, cluster_records
2776
2780
  cluster_record = cluster_records[0]
2777
2781
  if (not skip_status_check and
@@ -32,6 +32,14 @@ if typing.TYPE_CHECKING:
32
32
 
33
33
  logger = sky_logging.init_logger(__name__)
34
34
 
35
+ # Image ID tags
36
+ _DEFAULT_CPU_IMAGE_ID = 'skypilot:custom-cpu-ubuntu'
37
+ # For GPU-related package version,
38
+ # see sky/clouds/service_catalog/images/provisioners/cuda.sh
39
+ _DEFAULT_GPU_IMAGE_ID = 'skypilot:custom-gpu-ubuntu'
40
+ _DEFAULT_GPU_K80_IMAGE_ID = 'skypilot:k80-ubuntu-2004'
41
+ _DEFAULT_NEURON_IMAGE_ID = 'skypilot:neuron-ubuntu-2204'
42
+
35
43
  # This local file (under ~/.aws/) will be uploaded to remote nodes (any
36
44
  # cloud), if all of the following conditions hold:
37
45
  # - the current user identity is not using AWS SSO
@@ -217,17 +225,20 @@ class AWS(clouds.Cloud):
217
225
  @classmethod
218
226
  def _get_default_ami(cls, region_name: str, instance_type: str) -> str:
219
227
  acc = cls.get_accelerators_from_instance_type(instance_type)
220
- image_id = service_catalog.get_image_id_from_tag(
221
- 'skypilot:gpu-ubuntu-2004', region_name, clouds='aws')
228
+ image_id = service_catalog.get_image_id_from_tag(_DEFAULT_CPU_IMAGE_ID,
229
+ region_name,
230
+ clouds='aws')
222
231
  if acc is not None:
232
+ image_id = service_catalog.get_image_id_from_tag(
233
+ _DEFAULT_GPU_IMAGE_ID, region_name, clouds='aws')
223
234
  assert len(acc) == 1, acc
224
235
  acc_name = list(acc.keys())[0]
225
236
  if acc_name == 'K80':
226
237
  image_id = service_catalog.get_image_id_from_tag(
227
- 'skypilot:k80-ubuntu-2004', region_name, clouds='aws')
238
+ _DEFAULT_GPU_K80_IMAGE_ID, region_name, clouds='aws')
228
239
  if acc_name in ['Trainium', 'Inferentia']:
229
240
  image_id = service_catalog.get_image_id_from_tag(
230
- 'skypilot:neuron-ubuntu-2204', region_name, clouds='aws')
241
+ _DEFAULT_NEURON_IMAGE_ID, region_name, clouds='aws')
231
242
  if image_id is not None:
232
243
  return image_id
233
244
  # Raise ResourcesUnavailableError to make sure the failover in
@@ -8,7 +8,7 @@ import requests
8
8
  from sky import clouds
9
9
  from sky import status_lib
10
10
  from sky.clouds import service_catalog
11
- from sky.clouds.utils import lambda_utils
11
+ from sky.provision.lambda_cloud import lambda_utils
12
12
  from sky.utils import resources_utils
13
13
 
14
14
  if typing.TYPE_CHECKING:
@@ -48,6 +48,9 @@ class Lambda(clouds.Cloud):
48
48
  clouds.CloudImplementationFeatures.HOST_CONTROLLERS: f'Host controllers are not supported in {_REPR}.',
49
49
  }
50
50
 
51
+ PROVISIONER_VERSION = clouds.ProvisionerVersion.SKYPILOT
52
+ STATUS_VERSION = clouds.StatusVersion.SKYPILOT
53
+
51
54
  @classmethod
52
55
  def _unsupported_features_for_resources(
53
56
  cls, resources: 'resources_lib.Resources'
@@ -538,11 +538,13 @@ if __name__ == '__main__':
538
538
  instance_df.to_csv('aws/vms.csv', index=False)
539
539
  print('AWS Service Catalog saved to aws/vms.csv')
540
540
 
541
- image_df = get_all_regions_images_df(user_regions)
542
- _check_regions_integrity(image_df, 'images')
541
+ # Disable refreshing images.csv as we are using skypilot custom AMIs
542
+ # See sky/clouds/service_catalog/images/README.md for more details.
543
+ # image_df = get_all_regions_images_df(user_regions)
544
+ # _check_regions_integrity(image_df, 'images')
543
545
 
544
- image_df.to_csv('aws/images.csv', index=False)
545
- print('AWS Images saved to aws/images.csv')
546
+ # image_df.to_csv('aws/images.csv', index=False)
547
+ # print('AWS Images saved to aws/images.csv')
546
548
 
547
549
  if args.az_mappings:
548
550
  az_mappings_df = fetch_availability_zone_mappings()
@@ -19,6 +19,7 @@ from sky.provision import cudo
19
19
  from sky.provision import fluidstack
20
20
  from sky.provision import gcp
21
21
  from sky.provision import kubernetes
22
+ from sky.provision import lambda_cloud
22
23
  from sky.provision import runpod
23
24
  from sky.provision import vsphere
24
25
  from sky.utils import command_runner
@@ -39,6 +40,8 @@ def _route_to_cloud_impl(func):
39
40
  provider_name = kwargs.pop('provider_name')
40
41
 
41
42
  module_name = provider_name.lower()
43
+ if module_name == 'lambda':
44
+ module_name = 'lambda_cloud'
42
45
  module = globals().get(module_name)
43
46
  assert module is not None, f'Unknown provider: {module_name}'
44
47
 
@@ -0,0 +1,11 @@
1
+ """Lambda provisioner for SkyPilot."""
2
+
3
+ from sky.provision.lambda_cloud.config import bootstrap_instances
4
+ from sky.provision.lambda_cloud.instance import cleanup_ports
5
+ from sky.provision.lambda_cloud.instance import get_cluster_info
6
+ from sky.provision.lambda_cloud.instance import open_ports
7
+ from sky.provision.lambda_cloud.instance import query_instances
8
+ from sky.provision.lambda_cloud.instance import run_instances
9
+ from sky.provision.lambda_cloud.instance import stop_instances
10
+ from sky.provision.lambda_cloud.instance import terminate_instances
11
+ from sky.provision.lambda_cloud.instance import wait_instances
@@ -0,0 +1,10 @@
1
+ """Lambda Cloud configuration bootstrapping"""
2
+
3
+ from sky.provision import common
4
+
5
+
6
+ def bootstrap_instances(
7
+ region: str, cluster_name: str,
8
+ config: common.ProvisionConfig) -> common.ProvisionConfig:
9
+ del region, cluster_name # unused
10
+ return config
@@ -0,0 +1,261 @@
1
+ """Lambda instance provisioning."""
2
+
3
+ import time
4
+ from typing import Any, Dict, List, Optional
5
+
6
+ from sky import authentication as auth
7
+ from sky import sky_logging
8
+ from sky import status_lib
9
+ from sky.provision import common
10
+ import sky.provision.lambda_cloud.lambda_utils as lambda_utils
11
+ from sky.utils import common_utils
12
+ from sky.utils import ux_utils
13
+
14
+ POLL_INTERVAL = 1
15
+
16
+ logger = sky_logging.init_logger(__name__)
17
+ _lambda_client = None
18
+
19
+
20
+ def _get_lambda_client():
21
+ global _lambda_client
22
+ if _lambda_client is None:
23
+ _lambda_client = lambda_utils.LambdaCloudClient()
24
+ return _lambda_client
25
+
26
+
27
+ def _filter_instances(
28
+ cluster_name_on_cloud: str,
29
+ status_filters: Optional[List[str]]) -> Dict[str, Dict[str, Any]]:
30
+ lambda_client = _get_lambda_client()
31
+ instances = lambda_client.list_instances()
32
+ possible_names = [
33
+ f'{cluster_name_on_cloud}-head',
34
+ f'{cluster_name_on_cloud}-worker',
35
+ ]
36
+
37
+ filtered_instances = {}
38
+ for instance in instances:
39
+ if (status_filters is not None and
40
+ instance['status'] not in status_filters):
41
+ continue
42
+ if instance.get('name') in possible_names:
43
+ filtered_instances[instance['id']] = instance
44
+ return filtered_instances
45
+
46
+
47
+ def _get_head_instance_id(instances: Dict[str, Any]) -> Optional[str]:
48
+ head_instance_id = None
49
+ for instance_id, instance in instances.items():
50
+ if instance['name'].endswith('-head'):
51
+ head_instance_id = instance_id
52
+ break
53
+ return head_instance_id
54
+
55
+
56
+ def _get_ssh_key_name(prefix: str = '') -> str:
57
+ lambda_client = _get_lambda_client()
58
+ _, public_key_path = auth.get_or_generate_keys()
59
+ with open(public_key_path, 'r', encoding='utf-8') as f:
60
+ public_key = f.read()
61
+ name, exists = lambda_client.get_unique_ssh_key_name(prefix, public_key)
62
+ if not exists:
63
+ raise lambda_utils.LambdaCloudError('SSH key not found')
64
+ return name
65
+
66
+
67
+ def run_instances(region: str, cluster_name_on_cloud: str,
68
+ config: common.ProvisionConfig) -> common.ProvisionRecord:
69
+ """Runs instances for the given cluster"""
70
+ lambda_client = _get_lambda_client()
71
+ pending_status = ['booting']
72
+ while True:
73
+ instances = _filter_instances(cluster_name_on_cloud, pending_status)
74
+ if not instances:
75
+ break
76
+ logger.info(f'Waiting for {len(instances)} instances to be ready.')
77
+ time.sleep(POLL_INTERVAL)
78
+ exist_instances = _filter_instances(cluster_name_on_cloud, ['active'])
79
+ head_instance_id = _get_head_instance_id(exist_instances)
80
+
81
+ to_start_count = config.count - len(exist_instances)
82
+ if to_start_count < 0:
83
+ raise RuntimeError(
84
+ f'Cluster {cluster_name_on_cloud} already has '
85
+ f'{len(exist_instances)} nodes, but {config.count} are required.')
86
+ if to_start_count == 0:
87
+ if head_instance_id is None:
88
+ raise RuntimeError(
89
+ f'Cluster {cluster_name_on_cloud} has no head node.')
90
+ logger.info(f'Cluster {cluster_name_on_cloud} already has '
91
+ f'{len(exist_instances)} nodes, no need to start more.')
92
+ return common.ProvisionRecord(
93
+ provider_name='lambda',
94
+ cluster_name=cluster_name_on_cloud,
95
+ region=region,
96
+ zone=None,
97
+ head_instance_id=head_instance_id,
98
+ resumed_instance_ids=[],
99
+ created_instance_ids=[],
100
+ )
101
+
102
+ created_instance_ids = []
103
+ ssh_key_name = _get_ssh_key_name()
104
+
105
+ def launch_nodes(node_type: str, quantity: int) -> List[str]:
106
+ try:
107
+ instance_ids = lambda_client.create_instances(
108
+ instance_type=config.node_config['InstanceType'],
109
+ region=region,
110
+ name=f'{cluster_name_on_cloud}-{node_type}',
111
+ quantity=quantity,
112
+ ssh_key_name=ssh_key_name,
113
+ )
114
+ logger.info(f'Launched {len(instance_ids)} {node_type} node(s), '
115
+ f'instance_ids: {instance_ids}')
116
+ return instance_ids
117
+ except Exception as e:
118
+ logger.warning(f'run_instances error: {e}')
119
+ raise
120
+
121
+ if head_instance_id is None:
122
+ instance_ids = launch_nodes('head', 1)
123
+ assert len(instance_ids) == 1
124
+ created_instance_ids.append(instance_ids[0])
125
+ head_instance_id = instance_ids[0]
126
+
127
+ assert head_instance_id is not None, 'head_instance_id should not be None'
128
+
129
+ worker_node_count = to_start_count - 1
130
+ if worker_node_count > 0:
131
+ instance_ids = launch_nodes('worker', worker_node_count)
132
+ created_instance_ids.extend(instance_ids)
133
+
134
+ while True:
135
+ instances = _filter_instances(cluster_name_on_cloud, ['active'])
136
+ if len(instances) == config.count:
137
+ break
138
+
139
+ time.sleep(POLL_INTERVAL)
140
+
141
+ return common.ProvisionRecord(
142
+ provider_name='lambda',
143
+ cluster_name=cluster_name_on_cloud,
144
+ region=region,
145
+ zone=None,
146
+ head_instance_id=head_instance_id,
147
+ resumed_instance_ids=[],
148
+ created_instance_ids=created_instance_ids,
149
+ )
150
+
151
+
152
+ def wait_instances(region: str, cluster_name_on_cloud: str,
153
+ state: Optional[status_lib.ClusterStatus]) -> None:
154
+ del region, cluster_name_on_cloud, state # Unused.
155
+
156
+
157
+ def stop_instances(
158
+ cluster_name_on_cloud: str,
159
+ provider_config: Optional[Dict[str, Any]] = None,
160
+ worker_only: bool = False,
161
+ ) -> None:
162
+ raise NotImplementedError(
163
+ 'stop_instances is not supported for Lambda Cloud')
164
+
165
+
166
+ def terminate_instances(
167
+ cluster_name_on_cloud: str,
168
+ provider_config: Optional[Dict[str, Any]] = None,
169
+ worker_only: bool = False,
170
+ ) -> None:
171
+ """See sky/provision/__init__.py"""
172
+ del provider_config
173
+ lambda_client = _get_lambda_client()
174
+ instances = _filter_instances(cluster_name_on_cloud, None)
175
+
176
+ instance_ids_to_terminate = []
177
+ for instance_id, instance in instances.items():
178
+ if worker_only and not instance['name'].endswith('-worker'):
179
+ continue
180
+ instance_ids_to_terminate.append(instance_id)
181
+
182
+ try:
183
+ logger.debug(
184
+ f'Terminating instances {", ".join(instance_ids_to_terminate)}')
185
+ lambda_client.remove_instances(instance_ids_to_terminate)
186
+ except Exception as e: # pylint: disable=broad-except
187
+ with ux_utils.print_exception_no_traceback():
188
+ raise RuntimeError(
189
+ f'Failed to terminate instances {instance_ids_to_terminate}: '
190
+ f'{common_utils.format_exception(e, use_bracket=False)}') from e
191
+
192
+
193
+ def get_cluster_info(
194
+ region: str,
195
+ cluster_name_on_cloud: str,
196
+ provider_config: Optional[Dict[str, Any]] = None,
197
+ ) -> common.ClusterInfo:
198
+ del region # unused
199
+ running_instances = _filter_instances(cluster_name_on_cloud, ['active'])
200
+ instances: Dict[str, List[common.InstanceInfo]] = {}
201
+ head_instance_id = None
202
+ for instance_id, instance_info in running_instances.items():
203
+ instances[instance_id] = [
204
+ common.InstanceInfo(
205
+ instance_id=instance_id,
206
+ internal_ip=instance_info['private_ip'],
207
+ external_ip=instance_info['ip'],
208
+ ssh_port=22,
209
+ tags={},
210
+ )
211
+ ]
212
+ if instance_info['name'].endswith('-head'):
213
+ head_instance_id = instance_id
214
+
215
+ return common.ClusterInfo(
216
+ instances=instances,
217
+ head_instance_id=head_instance_id,
218
+ provider_name='lambda',
219
+ provider_config=provider_config,
220
+ )
221
+
222
+
223
+ def query_instances(
224
+ cluster_name_on_cloud: str,
225
+ provider_config: Optional[Dict[str, Any]] = None,
226
+ non_terminated_only: bool = True,
227
+ ) -> Dict[str, Optional[status_lib.ClusterStatus]]:
228
+ """See sky/provision/__init__.py"""
229
+ assert provider_config is not None, (cluster_name_on_cloud, provider_config)
230
+ instances = _filter_instances(cluster_name_on_cloud, None)
231
+
232
+ status_map = {
233
+ 'booting': status_lib.ClusterStatus.INIT,
234
+ 'active': status_lib.ClusterStatus.UP,
235
+ 'unhealthy': status_lib.ClusterStatus.INIT,
236
+ 'terminating': status_lib.ClusterStatus.INIT,
237
+ }
238
+ statuses: Dict[str, Optional[status_lib.ClusterStatus]] = {}
239
+ for instance_id, instance in instances.items():
240
+ status = status_map.get(instance['status'])
241
+ if non_terminated_only and status is None:
242
+ continue
243
+ statuses[instance_id] = status
244
+ return statuses
245
+
246
+
247
+ def open_ports(
248
+ cluster_name_on_cloud: str,
249
+ ports: List[str],
250
+ provider_config: Optional[Dict[str, Any]] = None,
251
+ ) -> None:
252
+ raise NotImplementedError('open_ports is not supported for Lambda Cloud')
253
+
254
+
255
+ def cleanup_ports(
256
+ cluster_name_on_cloud: str,
257
+ ports: List[str],
258
+ provider_config: Optional[Dict[str, Any]] = None,
259
+ ) -> None:
260
+ """See sky/provision/__init__.py"""
261
+ del cluster_name_on_cloud, ports, provider_config # Unused.
@@ -1,4 +1,5 @@
1
1
  """Lambda Cloud helper functions."""
2
+
2
3
  import json
3
4
  import os
4
5
  import time
@@ -76,7 +77,7 @@ class Metadata:
76
77
 
77
78
 
78
79
  def raise_lambda_error(response: requests.Response) -> None:
79
- """Raise LambdaCloudError if appropriate. """
80
+ """Raise LambdaCloudError if appropriate."""
80
81
  status_code = response.status_code
81
82
  if status_code == 200:
82
83
  return
@@ -131,20 +132,22 @@ class LambdaCloudClient:
131
132
  self.api_key = self._credentials['api_key']
132
133
  self.headers = {'Authorization': f'Bearer {self.api_key}'}
133
134
 
134
- def create_instances(self,
135
- instance_type: str = 'gpu_1x_a100_sxm4',
136
- region: str = 'us-east-1',
137
- quantity: int = 1,
138
- name: str = '',
139
- ssh_key_name: str = '') -> List[str]:
135
+ def create_instances(
136
+ self,
137
+ instance_type: str = 'gpu_1x_a100_sxm4',
138
+ region: str = 'us-east-1',
139
+ quantity: int = 1,
140
+ name: str = '',
141
+ ssh_key_name: str = '',
142
+ ) -> List[str]:
140
143
  """Launch new instances."""
141
144
  # Optimization:
142
145
  # Most API requests are rate limited at ~1 request every second but
143
146
  # launch requests are rate limited at ~1 request every 10 seconds.
144
147
  # So don't use launch requests to check availability.
145
148
  # See https://docs.lambdalabs.com/cloud/rate-limiting/ for more.
146
- available_regions = self.list_catalog()[instance_type]\
147
- ['regions_with_capacity_available']
149
+ available_regions = (self.list_catalog()[instance_type]
150
+ ['regions_with_capacity_available'])
148
151
  available_regions = [reg['name'] for reg in available_regions]
149
152
  if region not in available_regions:
150
153
  if len(available_regions) > 0:
@@ -163,27 +166,25 @@ class LambdaCloudClient:
163
166
  'instance_type_name': instance_type,
164
167
  'ssh_key_names': [ssh_key_name],
165
168
  'quantity': quantity,
166
- 'name': name
169
+ 'name': name,
167
170
  })
168
171
  response = _try_request_with_backoff(
169
172
  'post',
170
173
  f'{API_ENDPOINT}/instance-operations/launch',
171
174
  data=data,
172
- headers=self.headers)
175
+ headers=self.headers,
176
+ )
173
177
  return response.json().get('data', []).get('instance_ids', [])
174
178
 
175
- def remove_instances(self, *instance_ids: str) -> Dict[str, Any]:
179
+ def remove_instances(self, instance_ids: List[str]) -> Dict[str, Any]:
176
180
  """Terminate instances."""
177
- data = json.dumps({
178
- 'instance_ids': [
179
- instance_ids[0] # TODO(ewzeng) don't hardcode
180
- ]
181
- })
181
+ data = json.dumps({'instance_ids': instance_ids})
182
182
  response = _try_request_with_backoff(
183
183
  'post',
184
184
  f'{API_ENDPOINT}/instance-operations/terminate',
185
185
  data=data,
186
- headers=self.headers)
186
+ headers=self.headers,
187
+ )
187
188
  return response.json().get('data', []).get('terminated_instances', [])
188
189
 
189
190
  def list_instances(self) -> List[Dict[str, Any]]:
@@ -6,7 +6,6 @@ include sky/setup_files/*
6
6
  include sky/skylet/*.sh
7
7
  include sky/skylet/LICENSE
8
8
  include sky/skylet/providers/ibm/*
9
- include sky/skylet/providers/lambda_cloud/*
10
9
  include sky/skylet/providers/oci/*
11
10
  include sky/skylet/providers/scp/*
12
11
  include sky/skylet/providers/*.py
@@ -0,0 +1,80 @@
1
+ cluster_name: {{cluster_name_on_cloud}}
2
+
3
+ # The maximum number of workers nodes to launch in addition to the head node.
4
+ max_workers: {{num_nodes - 1}}
5
+ upscaling_speed: {{num_nodes - 1}}
6
+ idle_timeout_minutes: 60
7
+
8
+ provider:
9
+ type: external
10
+ module: sky.provision.lambda
11
+ region: {{region}}
12
+ # Disable launch config check for worker nodes as it can cause resource
13
+ # leakage.
14
+ # Reference: https://github.com/ray-project/ray/blob/cd1ba65e239360c8a7b130f991ed414eccc063ce/python/ray/autoscaler/_private/autoscaler.py#L1115
15
+ # The upper-level SkyPilot code has make sure there will not be resource
16
+ # leakage.
17
+ disable_launch_config_check: true
18
+
19
+ auth:
20
+ ssh_user: ubuntu
21
+ ssh_private_key: {{ssh_private_key}}
22
+
23
+ available_node_types:
24
+ ray_head_default:
25
+ resources: {}
26
+ node_config:
27
+ InstanceType: {{instance_type}}
28
+
29
+ head_node_type: ray_head_default
30
+
31
+ # Format: `REMOTE_PATH : LOCAL_PATH`
32
+ file_mounts: {
33
+ "{{sky_ray_yaml_remote_path}}": "{{sky_ray_yaml_local_path}}",
34
+ "{{sky_remote_path}}/{{sky_wheel_hash}}": "{{sky_local_path}}",
35
+ {%- for remote_path, local_path in credentials.items() %}
36
+ "{{remote_path}}": "{{local_path}}",
37
+ {%- endfor %}
38
+ }
39
+
40
+ rsync_exclude: []
41
+
42
+ initialization_commands: []
43
+
44
+ # List of shell commands to run to set up nodes.
45
+ # NOTE: these are very performance-sensitive. Each new item opens/closes an SSH
46
+ # connection, which is expensive. Try your best to co-locate commands into fewer
47
+ # items!
48
+ #
49
+ # Increment the following for catching performance bugs easier:
50
+ # current num items (num SSH connections): 1
51
+ setup_commands:
52
+ # Disable `unattended-upgrades` to prevent apt-get from hanging. It should be called at the beginning before the process started to avoid being blocked. (This is a temporary fix.)
53
+ # Create ~/.ssh/config file in case the file does not exist in the image.
54
+ # Line 'rm ..': there is another installation of pip.
55
+ # Line 'sudo bash ..': set the ulimit as suggested by ray docs for performance. https://docs.ray.io/en/latest/cluster/vms/user-guides/large-cluster-best-practices.html#system-configuration
56
+ # Line 'sudo grep ..': set the number of threads per process to unlimited to avoid ray job submit stucking issue when the number of running ray jobs increase.
57
+ # Line 'mkdir -p ..': disable host key check
58
+ # Line 'python3 -c ..': patch the buggy ray files and enable `-o allow_other` option for `goofys`
59
+ - {%- for initial_setup_command in initial_setup_commands %}
60
+ {{ initial_setup_command }}
61
+ {%- endfor %}
62
+ sudo systemctl stop unattended-upgrades || true;
63
+ sudo systemctl disable unattended-upgrades || true;
64
+ sudo sed -i 's/Unattended-Upgrade "1"/Unattended-Upgrade "0"/g' /etc/apt/apt.conf.d/20auto-upgrades || true;
65
+ sudo kill -9 `sudo lsof /var/lib/dpkg/lock-frontend | awk '{print $2}' | tail -n 1` || true;
66
+ sudo pkill -9 apt-get;
67
+ sudo pkill -9 dpkg;
68
+ sudo dpkg --configure -a;
69
+ mkdir -p ~/.ssh; touch ~/.ssh/config;
70
+ rm ~/.local/bin/pip ~/.local/bin/pip3 ~/.local/bin/pip3.8 ~/.local/bin/pip3.10;
71
+ {{ conda_installation_commands }}
72
+ {{ ray_skypilot_installation_commands }}
73
+ touch ~/.sudo_as_admin_successful;
74
+ sudo bash -c 'rm -rf /etc/security/limits.d; echo "* soft nofile 1048576" >> /etc/security/limits.conf; echo "* hard nofile 1048576" >> /etc/security/limits.conf';
75
+ sudo grep -e '^DefaultTasksMax' /etc/systemd/system.conf || (sudo bash -c 'echo "DefaultTasksMax=infinity" >> /etc/systemd/system.conf'); sudo systemctl set-property user-$(id -u $(whoami)).slice TasksMax=infinity; sudo systemctl daemon-reload;
76
+ mkdir -p ~/.ssh; (grep -Pzo -q "Host \*\n StrictHostKeyChecking no" ~/.ssh/config) || printf "Host *\n StrictHostKeyChecking no\n" >> ~/.ssh/config;
77
+ [ -f /etc/fuse.conf ] && sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf || (sudo sh -c 'echo "user_allow_other" > /etc/fuse.conf');
78
+
79
+ # Command to start ray clusters are now placed in `sky.provision.instance_setup`.
80
+ # We do not need to list it here anymore.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20241017
3
+ Version: 1.0.0.dev20241018
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -88,7 +88,6 @@ sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py
88
88
  sky/clouds/utils/__init__.py
89
89
  sky/clouds/utils/aws_utils.py
90
90
  sky/clouds/utils/gcp_utils.py
91
- sky/clouds/utils/lambda_utils.py
92
91
  sky/clouds/utils/oci_utils.py
93
92
  sky/clouds/utils/scp_utils.py
94
93
  sky/data/__init__.py
@@ -148,6 +147,10 @@ sky/provision/kubernetes/network_utils.py
148
147
  sky/provision/kubernetes/utils.py
149
148
  sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml
150
149
  sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml
150
+ sky/provision/lambda_cloud/__init__.py
151
+ sky/provision/lambda_cloud/config.py
152
+ sky/provision/lambda_cloud/instance.py
153
+ sky/provision/lambda_cloud/lambda_utils.py
151
154
  sky/provision/paperspace/__init__.py
152
155
  sky/provision/paperspace/config.py
153
156
  sky/provision/paperspace/constants.py
@@ -204,8 +207,6 @@ sky/skylet/providers/ibm/__init__.py
204
207
  sky/skylet/providers/ibm/node_provider.py
205
208
  sky/skylet/providers/ibm/utils.py
206
209
  sky/skylet/providers/ibm/vpc_provider.py
207
- sky/skylet/providers/lambda_cloud/__init__.py
208
- sky/skylet/providers/lambda_cloud/node_provider.py
209
210
  sky/skylet/providers/oci/__init__.py
210
211
  sky/skylet/providers/oci/node_provider.py
211
212
  sky/skylet/providers/oci/query_helper.py