skypilot-nightly 1.0.0.dev20250410__tar.gz → 1.0.0.dev20250412__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 (385) hide show
  1. {skypilot_nightly-1.0.0.dev20250410/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250412}/PKG-INFO +3 -1
  2. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/oci.py +2 -2
  4. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/authentication.py +2 -2
  5. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/backend_utils.py +1 -1
  6. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/cloud_vm_ray_backend.py +3 -3
  7. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/check.py +1 -1
  8. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/cli.py +51 -47
  9. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/client/cli.py +51 -47
  10. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/client/common.py +4 -2
  11. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/client/sdk.py +60 -27
  12. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/aws.py +2 -2
  13. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/cloud.py +3 -2
  14. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/kubernetes.py +20 -3
  15. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/nebius.py +2 -4
  16. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/oci.py +2 -2
  17. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/utils/oci_utils.py +1 -1
  18. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/core.py +12 -17
  19. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/data/mounting_utils.py +34 -10
  20. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/exceptions.py +1 -1
  21. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/execution.py +5 -4
  22. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/client/sdk.py +5 -0
  23. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/optimizer.py +1 -2
  24. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/instance_setup.py +3 -1
  25. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/config.py +41 -36
  26. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/instance.py +4 -7
  27. skypilot_nightly-1.0.0.dev20250412/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +54 -0
  28. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/network_utils.py +1 -1
  29. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/utils.py +51 -35
  30. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/client/sdk.py +6 -0
  31. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/common.py +16 -1
  32. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/constants.py +5 -0
  33. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/payloads.py +2 -0
  34. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/setup_files/dependencies.py +1 -1
  35. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/constants.py +2 -2
  36. skypilot_nightly-1.0.0.dev20250412/sky/skypilot_config.py +376 -0
  37. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/kubernetes-ray.yml.j2 +66 -25
  38. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/websocket_proxy.py +41 -2
  39. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/config_utils.py +1 -1
  40. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/controller_utils.py +1 -1
  41. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/generate_kubeconfig.sh +2 -2
  42. skypilot_nightly-1.0.0.dev20250412/sky/utils/kubernetes/rsync_helper.sh +39 -0
  43. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412/skypilot_nightly.egg-info}/PKG-INFO +3 -1
  44. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/skypilot_nightly.egg-info/SOURCES.txt +1 -2
  45. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/skypilot_nightly.egg-info/requires.txt +2 -0
  46. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_cli.py +125 -0
  47. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_config.py +158 -37
  48. skypilot_nightly-1.0.0.dev20250410/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -10
  49. skypilot_nightly-1.0.0.dev20250410/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -68
  50. skypilot_nightly-1.0.0.dev20250410/sky/skypilot_config.py +0 -249
  51. skypilot_nightly-1.0.0.dev20250410/sky/utils/kubernetes/rsync_helper.sh +0 -24
  52. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/LICENSE +0 -0
  53. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/MANIFEST.in +0 -0
  54. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/README.md +0 -0
  55. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/pyproject.toml +0 -0
  56. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/setup.cfg +0 -0
  57. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/setup.py +0 -0
  58. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/__init__.py +0 -0
  59. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/aws.py +0 -0
  60. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/azure.py +0 -0
  61. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/cloudflare.py +0 -0
  62. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/common.py +0 -0
  63. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/cudo.py +0 -0
  64. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/do.py +0 -0
  65. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/docker.py +0 -0
  66. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/gcp.py +0 -0
  67. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/ibm.py +0 -0
  68. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/kubernetes.py +0 -0
  69. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/nebius.py +0 -0
  70. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/runpod.py +0 -0
  71. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/vast.py +0 -0
  72. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/adaptors/vsphere.py +0 -0
  73. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/admin_policy.py +0 -0
  74. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/__init__.py +0 -0
  75. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/backend.py +0 -0
  76. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/docker_utils.py +0 -0
  77. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/local_docker_backend.py +0 -0
  78. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  79. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/backends/wheel_utils.py +0 -0
  80. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/benchmark/__init__.py +0 -0
  81. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/benchmark/benchmark_state.py +0 -0
  82. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/benchmark/benchmark_utils.py +0 -0
  83. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/client/__init__.py +0 -0
  84. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/cloud_stores.py +0 -0
  85. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/__init__.py +0 -0
  86. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/azure.py +0 -0
  87. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/cudo.py +0 -0
  88. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/do.py +0 -0
  89. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/fluidstack.py +0 -0
  90. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/gcp.py +0 -0
  91. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/ibm.py +0 -0
  92. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/lambda_cloud.py +0 -0
  93. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/paperspace.py +0 -0
  94. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/runpod.py +0 -0
  95. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/scp.py +0 -0
  96. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/__init__.py +0 -0
  97. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/aws_catalog.py +0 -0
  98. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/azure_catalog.py +0 -0
  99. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/common.py +0 -0
  100. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/config.py +0 -0
  101. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/constants.py +0 -0
  102. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
  103. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
  104. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
  105. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
  106. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
  107. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
  108. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
  109. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
  110. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/do_catalog.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/oci_catalog.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/scp_catalog.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/vast_catalog.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/utils/__init__.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/utils/aws_utils.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/utils/azure_utils.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/utils/gcp_utils.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/utils/scp_utils.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/vast.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/clouds/vsphere.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/dag.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/data/__init__.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/data/data_transfer.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/data/data_utils.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/data/storage.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/data/storage_utils.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/global_user_state.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/__init__.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/client/__init__.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/constants.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/controller.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/dashboard/dashboard.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/dashboard/static/favicon.ico +0 -0
  146. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/dashboard/templates/index.html +0 -0
  147. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/recovery_strategy.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/scheduler.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/server/__init__.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/server/core.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/server/dashboard_utils.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/server/server.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/state.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/jobs/utils.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/models.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/__init__.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/aws/__init__.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/aws/config.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/aws/instance.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/aws/utils.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/azure/__init__.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/azure/azure-config-template.json +0 -0
  163. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/azure/config.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/azure/instance.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/common.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/constants.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/cudo/__init__.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/cudo/config.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/cudo/cudo_machine_type.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/cudo/cudo_utils.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/cudo/cudo_wrapper.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/cudo/instance.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/do/__init__.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/do/config.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/do/constants.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/do/instance.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/do/utils.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/docker_utils.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/fluidstack/__init__.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/fluidstack/config.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/fluidstack/instance.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/gcp/__init__.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/gcp/config.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/gcp/constants.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/gcp/instance.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/gcp/instance_utils.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/gcp/mig_utils.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/__init__.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/constants.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/kubernetes/network.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/lambda_cloud/__init__.py +0 -0
  193. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/lambda_cloud/config.py +0 -0
  194. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/lambda_cloud/instance.py +0 -0
  195. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  196. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/logging.py +0 -0
  197. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/metadata_utils.py +0 -0
  198. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/nebius/__init__.py +0 -0
  199. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/nebius/config.py +0 -0
  200. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/nebius/instance.py +0 -0
  201. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/nebius/utils.py +0 -0
  202. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/oci/__init__.py +0 -0
  203. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/oci/config.py +0 -0
  204. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/oci/instance.py +0 -0
  205. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/oci/query_utils.py +0 -0
  206. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/paperspace/__init__.py +0 -0
  207. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/paperspace/config.py +0 -0
  208. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/paperspace/constants.py +0 -0
  209. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/paperspace/instance.py +0 -0
  210. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/paperspace/utils.py +0 -0
  211. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/provisioner.py +0 -0
  212. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/__init__.py +0 -0
  213. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/api/__init__.py +0 -0
  214. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/api/commands.py +0 -0
  215. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/api/pods.py +0 -0
  216. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/config.py +0 -0
  217. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/instance.py +0 -0
  218. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/runpod/utils.py +0 -0
  219. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vast/__init__.py +0 -0
  220. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vast/config.py +0 -0
  221. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vast/instance.py +0 -0
  222. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vast/utils.py +0 -0
  223. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/__init__.py +0 -0
  224. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/__init__.py +0 -0
  225. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  226. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  227. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/custom_script.py +0 -0
  228. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/id_generator.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/service_manager.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/common/vim_utils.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/config.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/instance.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/provision/vsphere/vsphere_utils.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/resources.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/__init__.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/autoscalers.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/client/__init__.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/constants.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/controller.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/load_balancer.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/load_balancing_policies.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/replica_managers.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/serve_state.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/serve_utils.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/server/__init__.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/server/core.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/server/server.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/service.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/service_spec.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/serve/spot_placer.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/__init__.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/html/log.html +0 -0
  257. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/__init__.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/event_loop.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/executor.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/preconditions.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/process.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/queues/__init__.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/queues/local_queue.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/queues/mp_queue.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/requests.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/serializers/__init__.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/serializers/decoders.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/requests/serializers/encoders.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/server.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/stream_utils.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/server/uvicorn.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/setup_files/MANIFEST.in +0 -0
  273. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/setup_files/setup.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/sky_logging.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/LICENSE +0 -0
  276. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/__init__.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/attempt_skylet.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/autostop_lib.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/configs.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/events.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/job_lib.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/log_lib.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/log_lib.pyi +0 -0
  284. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/__init__.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/command_runner.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/ibm/__init__.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/ibm/node_provider.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/ibm/utils.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/scp/__init__.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/scp/config.py +0 -0
  292. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/providers/scp/node_provider.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/__init__.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  295. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/cli.py.patch +0 -0
  296. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  297. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  298. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  299. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/updater.py.patch +0 -0
  300. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/ray_patches/worker.py.patch +0 -0
  301. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/skylet.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/skylet/subprocess_daemon.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/task.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/aws-ray.yml.j2 +0 -0
  305. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/azure-ray.yml.j2 +0 -0
  306. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/cudo-ray.yml.j2 +0 -0
  307. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/do-ray.yml.j2 +0 -0
  308. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  309. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/gcp-ray.yml.j2 +0 -0
  310. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/ibm-ray.yml.j2 +0 -0
  311. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/jobs-controller.yaml.j2 +0 -0
  312. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  313. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  314. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  315. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  316. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/lambda-ray.yml.j2 +0 -0
  317. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/local-ray.yml.j2 +0 -0
  318. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/nebius-ray.yml.j2 +0 -0
  319. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/oci-ray.yml.j2 +0 -0
  320. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/paperspace-ray.yml.j2 +0 -0
  321. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/runpod-ray.yml.j2 +0 -0
  322. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/scp-ray.yml.j2 +0 -0
  323. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  324. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  325. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/vast-ray.yml.j2 +0 -0
  326. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/templates/vsphere-ray.yml.j2 +0 -0
  327. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/usage/__init__.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/usage/constants.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/usage/usage_lib.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/__init__.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/accelerator_registry.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/admin_policy_utils.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/annotations.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/atomic.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/cli_utils/__init__.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/cli_utils/status_utils.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/cluster_utils.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/command_runner.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/command_runner.pyi +0 -0
  340. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/common.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/common_utils.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/control_master_utils.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/dag_utils.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/db_utils.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/env_options.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/__init__.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/create_cluster.sh +0 -0
  348. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  349. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
  350. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  354. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  355. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/kubernetes_enums.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/log_utils.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/message_utils.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/registry.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/resources_utils.py +0 -0
  362. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/rich_console_utils.py +0 -0
  363. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/rich_utils.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/schemas.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/status_lib.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/subprocess_utils.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/timeline.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/ux_utils.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/sky/utils/validator.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  371. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  372. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/skypilot_nightly.egg-info/top_level.txt +0 -0
  373. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_api.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_failover.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_global_user_state.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_jobs.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_jobs_and_serve.py +0 -0
  378. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_list_accelerators.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_optimizer_dryruns.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_optimizer_random_dag.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_serve_autoscaler.py +0 -0
  382. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_smoke.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_storage.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_wheels.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250410 → skypilot_nightly-1.0.0.dev20250412}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250410
3
+ Version: 1.0.0.dev20250412
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -88,6 +88,7 @@ Requires-Dist: oci; extra == "oci"
88
88
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "oci"
89
89
  Provides-Extra: kubernetes
90
90
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "kubernetes"
91
+ Requires-Dist: websockets; extra == "kubernetes"
91
92
  Provides-Extra: remote
92
93
  Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "remote"
93
94
  Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "remote"
@@ -145,6 +146,7 @@ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
145
146
  Requires-Dist: oci; extra == "all"
146
147
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
147
148
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
149
+ Requires-Dist: websockets; extra == "all"
148
150
  Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "all"
149
151
  Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "all"
150
152
  Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "all"
@@ -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 = '022a5c3ffe258f365764b03cb20fac70934f5a60'
8
+ _SKYPILOT_COMMIT_SHA = 'ac3cbfe07c8c1129480d4facd683f4844ff6e1f7'
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.dev20250410'
38
+ __version__ = '1.0.0.dev20250412'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -13,7 +13,7 @@ from sky.clouds.utils import oci_utils
13
13
  # effect.
14
14
  logging.getLogger('oci.circuit_breaker').setLevel(logging.WARNING)
15
15
 
16
- CONFIG_PATH = '~/.oci/config'
16
+ OCI_CONFIG_PATH = '~/.oci/config'
17
17
  ENV_VAR_OCI_CONFIG = 'OCI_CONFIG'
18
18
 
19
19
  oci = common.LazyImport(
@@ -23,7 +23,7 @@ oci = common.LazyImport(
23
23
 
24
24
 
25
25
  def get_config_file() -> str:
26
- conf_file_path = CONFIG_PATH
26
+ conf_file_path = OCI_CONFIG_PATH
27
27
  config_path_via_env_var = os.environ.get(ENV_VAR_OCI_CONFIG)
28
28
  if config_path_via_env_var is not None:
29
29
  conf_file_path = config_path_via_env_var
@@ -382,10 +382,10 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
382
382
  network_mode = kubernetes_enums.KubernetesNetworkingMode.from_str(
383
383
  network_mode_str)
384
384
  except ValueError as e:
385
- # Add message saying "Please check: ~/.sky/config.yaml" to the error
385
+ # Add message saying "Please check: ~/.sky/skyconfig.yaml" to the error
386
386
  # message.
387
387
  with ux_utils.print_exception_no_traceback():
388
- raise ValueError(str(e) + ' Please check: ~/.sky/config.yaml.') \
388
+ raise ValueError(str(e) + ' Please check: ~/.sky/skyconfig.yaml.') \
389
389
  from None
390
390
  _, public_key_path = get_or_generate_keys()
391
391
 
@@ -682,7 +682,7 @@ def write_cluster_config(
682
682
  ssh_proxy_command = ssh_proxy_command_config[region_name]
683
683
  logger.debug(f'Using ssh_proxy_command: {ssh_proxy_command!r}')
684
684
 
685
- # User-supplied global instance tags from ~/.sky/config.yaml.
685
+ # User-supplied global instance tags from ~/.sky/skyconfig.yaml.
686
686
  labels = skypilot_config.get_nested((str(cloud).lower(), 'labels'), {})
687
687
  # labels is a dict, which is guaranteed by the type check in
688
688
  # schemas.py
@@ -1473,7 +1473,7 @@ class RetryingVmProvisioner(object):
1473
1473
  f'invalid cloud credentials: '
1474
1474
  f'{common_utils.format_exception(e)}')
1475
1475
  except exceptions.InvalidCloudConfigs as e:
1476
- # Failed due to invalid user configs in ~/.sky/config.yaml.
1476
+ # Failed due to invalid user configs in ~/.sky/skyconfig.yaml.
1477
1477
  logger.warning(f'{common_utils.format_exception(e)}')
1478
1478
  # We should block the entire cloud if the user config is
1479
1479
  # invalid.
@@ -2065,10 +2065,10 @@ class RetryingVmProvisioner(object):
2065
2065
  (clouds.Kubernetes, clouds.RunPod)) and
2066
2066
  controller_utils.Controllers.from_name(cluster_name)
2067
2067
  is not None):
2068
- assert (clouds.CloudImplementationFeatures.STOP
2068
+ assert (clouds.CloudImplementationFeatures.AUTOSTOP
2069
2069
  in requested_features), requested_features
2070
2070
  requested_features.remove(
2071
- clouds.CloudImplementationFeatures.STOP)
2071
+ clouds.CloudImplementationFeatures.AUTOSTOP)
2072
2072
 
2073
2073
  # Skip if to_provision.cloud does not support requested features
2074
2074
  to_provision.cloud.check_features_are_supported(
@@ -142,7 +142,7 @@ def check_capabilities(
142
142
  if disallowed_cloud_names:
143
143
  disallowed_clouds_hint = (
144
144
  '\nNote: The following clouds were disabled because they were not '
145
- 'included in allowed_clouds in ~/.sky/config.yaml: '
145
+ 'included in allowed_clouds in ~/.sky/skyconfig.yaml: '
146
146
  f'{", ".join([c for c in disallowed_cloud_names])}')
147
147
  if not all_enabled_clouds:
148
148
  echo(
@@ -35,7 +35,8 @@ import sys
35
35
  import textwrap
36
36
  import traceback
37
37
  import typing
38
- from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Union
38
+ from typing import (Any, Callable, Dict, Generator, List, Optional, Set, Tuple,
39
+ Union)
39
40
 
40
41
  import click
41
42
  import colorama
@@ -134,49 +135,51 @@ def _get_cluster_records_and_set_ssh_config(
134
135
  # Update the SSH config for all clusters
135
136
  for record in cluster_records:
136
137
  handle = record['handle']
137
- # During the failover, even though a cluster does not exist, the handle
138
- # can still exist in the record, and we check for credentials to avoid
139
- # updating the SSH config for non-existent clusters.
140
- if (handle is not None and handle.cached_external_ips is not None and
141
- 'credentials' in record):
142
- credentials = record['credentials']
143
- if isinstance(handle.launched_resources.cloud, clouds.Kubernetes):
144
- # Replace the proxy command to proxy through the SkyPilot API
145
- # server with websocket.
146
- key_path = (
147
- cluster_utils.SSHConfigHelper.generate_local_key_file(
148
- handle.cluster_name, credentials))
149
- # Instead of directly use websocket_proxy.py, we add an
150
- # additional proxy, so that ssh can use the head pod in the
151
- # cluster to jump to worker pods.
152
- proxy_command = (
153
- f'ssh -tt -i {key_path} '
154
- '-o StrictHostKeyChecking=no '
155
- '-o UserKnownHostsFile=/dev/null '
156
- '-o IdentitiesOnly=yes '
157
- '-W %h:%p '
158
- f'{handle.ssh_user}@127.0.0.1 '
159
- '-o ProxyCommand='
160
- # TODO(zhwu): write the template to a temp file, don't use
161
- # the one in skypilot repo, to avoid changing the file when
162
- # updating skypilot.
163
- f'\'{sys.executable} {sky.__root_dir__}/templates/'
164
- f'websocket_proxy.py '
165
- f'{server_common.get_server_url().split("://")[1]} '
166
- f'{handle.cluster_name}\'')
167
- credentials['ssh_proxy_command'] = proxy_command
168
- cluster_utils.SSHConfigHelper.add_cluster(
169
- handle.cluster_name,
170
- handle.cached_external_ips,
171
- credentials,
172
- handle.cached_external_ssh_ports,
173
- handle.docker_user,
174
- handle.ssh_user,
175
- )
176
- else:
138
+
139
+ if not (handle is not None and handle.cached_external_ips is not None
140
+ and 'credentials' in record):
177
141
  # If the cluster is not UP or does not have credentials available,
178
142
  # we need to remove the cluster from the SSH config.
179
143
  cluster_utils.SSHConfigHelper.remove_cluster(record['name'])
144
+ continue
145
+
146
+ # During the failover, even though a cluster does not exist, the handle
147
+ # can still exist in the record, and we check for credentials to avoid
148
+ # updating the SSH config for non-existent clusters.
149
+ credentials = record['credentials']
150
+ if isinstance(handle.launched_resources.cloud, clouds.Kubernetes):
151
+ # Replace the proxy command to proxy through the SkyPilot API
152
+ # server with websocket.
153
+ key_path = (cluster_utils.SSHConfigHelper.generate_local_key_file(
154
+ handle.cluster_name, credentials))
155
+ # Instead of directly use websocket_proxy.py, we add an
156
+ # additional proxy, so that ssh can use the head pod in the
157
+ # cluster to jump to worker pods.
158
+ proxy_command = (
159
+ f'ssh -tt -i {key_path} '
160
+ '-o StrictHostKeyChecking=no '
161
+ '-o UserKnownHostsFile=/dev/null '
162
+ '-o IdentitiesOnly=yes '
163
+ '-W %h:%p '
164
+ f'{handle.ssh_user}@127.0.0.1 '
165
+ '-o ProxyCommand='
166
+ # TODO(zhwu): write the template to a temp file, don't use
167
+ # the one in skypilot repo, to avoid changing the file when
168
+ # updating skypilot.
169
+ f'\'{sys.executable} {sky.__root_dir__}/templates/'
170
+ f'websocket_proxy.py '
171
+ f'{server_common.get_server_url()} '
172
+ f'{handle.cluster_name}\'')
173
+ credentials['ssh_proxy_command'] = proxy_command
174
+
175
+ cluster_utils.SSHConfigHelper.add_cluster(
176
+ handle.cluster_name,
177
+ handle.cached_external_ips,
178
+ credentials,
179
+ handle.cached_external_ssh_ports,
180
+ handle.docker_user,
181
+ handle.ssh_user,
182
+ )
180
183
 
181
184
  # Clean up SSH configs for clusters that do not exist.
182
185
  #
@@ -186,14 +189,15 @@ def _get_cluster_records_and_set_ssh_config(
186
189
  # removing clusters, because SkyPilot has no idea whether to remove
187
190
  # ssh config of a cluster from another user.
188
191
  clusters_exists = set(record['name'] for record in cluster_records)
192
+ clusters_to_remove: Set[str] = set()
189
193
  if clusters is not None:
190
- for cluster in clusters:
191
- if cluster not in clusters_exists:
192
- cluster_utils.SSHConfigHelper.remove_cluster(cluster)
194
+ clusters_to_remove = set(clusters) - clusters_exists
193
195
  elif all_users:
194
- for cluster_name in cluster_utils.SSHConfigHelper.list_cluster_names():
195
- if cluster_name not in clusters_exists:
196
- cluster_utils.SSHConfigHelper.remove_cluster(cluster_name)
196
+ clusters_to_remove = set(cluster_utils.SSHConfigHelper.
197
+ list_cluster_names()) - clusters_exists
198
+
199
+ for cluster_name in clusters_to_remove:
200
+ cluster_utils.SSHConfigHelper.remove_cluster(cluster_name)
197
201
 
198
202
  return cluster_records
199
203
 
@@ -35,7 +35,8 @@ import sys
35
35
  import textwrap
36
36
  import traceback
37
37
  import typing
38
- from typing import Any, Callable, Dict, Generator, List, Optional, Tuple, Union
38
+ from typing import (Any, Callable, Dict, Generator, List, Optional, Set, Tuple,
39
+ Union)
39
40
 
40
41
  import click
41
42
  import colorama
@@ -134,49 +135,51 @@ def _get_cluster_records_and_set_ssh_config(
134
135
  # Update the SSH config for all clusters
135
136
  for record in cluster_records:
136
137
  handle = record['handle']
137
- # During the failover, even though a cluster does not exist, the handle
138
- # can still exist in the record, and we check for credentials to avoid
139
- # updating the SSH config for non-existent clusters.
140
- if (handle is not None and handle.cached_external_ips is not None and
141
- 'credentials' in record):
142
- credentials = record['credentials']
143
- if isinstance(handle.launched_resources.cloud, clouds.Kubernetes):
144
- # Replace the proxy command to proxy through the SkyPilot API
145
- # server with websocket.
146
- key_path = (
147
- cluster_utils.SSHConfigHelper.generate_local_key_file(
148
- handle.cluster_name, credentials))
149
- # Instead of directly use websocket_proxy.py, we add an
150
- # additional proxy, so that ssh can use the head pod in the
151
- # cluster to jump to worker pods.
152
- proxy_command = (
153
- f'ssh -tt -i {key_path} '
154
- '-o StrictHostKeyChecking=no '
155
- '-o UserKnownHostsFile=/dev/null '
156
- '-o IdentitiesOnly=yes '
157
- '-W %h:%p '
158
- f'{handle.ssh_user}@127.0.0.1 '
159
- '-o ProxyCommand='
160
- # TODO(zhwu): write the template to a temp file, don't use
161
- # the one in skypilot repo, to avoid changing the file when
162
- # updating skypilot.
163
- f'\'{sys.executable} {sky.__root_dir__}/templates/'
164
- f'websocket_proxy.py '
165
- f'{server_common.get_server_url().split("://")[1]} '
166
- f'{handle.cluster_name}\'')
167
- credentials['ssh_proxy_command'] = proxy_command
168
- cluster_utils.SSHConfigHelper.add_cluster(
169
- handle.cluster_name,
170
- handle.cached_external_ips,
171
- credentials,
172
- handle.cached_external_ssh_ports,
173
- handle.docker_user,
174
- handle.ssh_user,
175
- )
176
- else:
138
+
139
+ if not (handle is not None and handle.cached_external_ips is not None
140
+ and 'credentials' in record):
177
141
  # If the cluster is not UP or does not have credentials available,
178
142
  # we need to remove the cluster from the SSH config.
179
143
  cluster_utils.SSHConfigHelper.remove_cluster(record['name'])
144
+ continue
145
+
146
+ # During the failover, even though a cluster does not exist, the handle
147
+ # can still exist in the record, and we check for credentials to avoid
148
+ # updating the SSH config for non-existent clusters.
149
+ credentials = record['credentials']
150
+ if isinstance(handle.launched_resources.cloud, clouds.Kubernetes):
151
+ # Replace the proxy command to proxy through the SkyPilot API
152
+ # server with websocket.
153
+ key_path = (cluster_utils.SSHConfigHelper.generate_local_key_file(
154
+ handle.cluster_name, credentials))
155
+ # Instead of directly use websocket_proxy.py, we add an
156
+ # additional proxy, so that ssh can use the head pod in the
157
+ # cluster to jump to worker pods.
158
+ proxy_command = (
159
+ f'ssh -tt -i {key_path} '
160
+ '-o StrictHostKeyChecking=no '
161
+ '-o UserKnownHostsFile=/dev/null '
162
+ '-o IdentitiesOnly=yes '
163
+ '-W %h:%p '
164
+ f'{handle.ssh_user}@127.0.0.1 '
165
+ '-o ProxyCommand='
166
+ # TODO(zhwu): write the template to a temp file, don't use
167
+ # the one in skypilot repo, to avoid changing the file when
168
+ # updating skypilot.
169
+ f'\'{sys.executable} {sky.__root_dir__}/templates/'
170
+ f'websocket_proxy.py '
171
+ f'{server_common.get_server_url()} '
172
+ f'{handle.cluster_name}\'')
173
+ credentials['ssh_proxy_command'] = proxy_command
174
+
175
+ cluster_utils.SSHConfigHelper.add_cluster(
176
+ handle.cluster_name,
177
+ handle.cached_external_ips,
178
+ credentials,
179
+ handle.cached_external_ssh_ports,
180
+ handle.docker_user,
181
+ handle.ssh_user,
182
+ )
180
183
 
181
184
  # Clean up SSH configs for clusters that do not exist.
182
185
  #
@@ -186,14 +189,15 @@ def _get_cluster_records_and_set_ssh_config(
186
189
  # removing clusters, because SkyPilot has no idea whether to remove
187
190
  # ssh config of a cluster from another user.
188
191
  clusters_exists = set(record['name'] for record in cluster_records)
192
+ clusters_to_remove: Set[str] = set()
189
193
  if clusters is not None:
190
- for cluster in clusters:
191
- if cluster not in clusters_exists:
192
- cluster_utils.SSHConfigHelper.remove_cluster(cluster)
194
+ clusters_to_remove = set(clusters) - clusters_exists
193
195
  elif all_users:
194
- for cluster_name in cluster_utils.SSHConfigHelper.list_cluster_names():
195
- if cluster_name not in clusters_exists:
196
- cluster_utils.SSHConfigHelper.remove_cluster(cluster_name)
196
+ clusters_to_remove = set(cluster_utils.SSHConfigHelper.
197
+ list_cluster_names()) - clusters_exists
198
+
199
+ for cluster_name in clusters_to_remove:
200
+ cluster_utils.SSHConfigHelper.remove_cluster(cluster_name)
197
201
 
198
202
  return cluster_records
199
203
 
@@ -75,7 +75,8 @@ def download_logs_from_api_server(
75
75
  body = payloads.DownloadBody(folder_paths=list(paths_on_api_server),)
76
76
  response = requests.post(f'{server_common.get_server_url()}/download',
77
77
  json=json.loads(body.model_dump_json()),
78
- stream=True)
78
+ stream=True,
79
+ cookies=server_common.get_api_cookie_jar())
79
80
  if response.status_code == 200:
80
81
  remote_home_path = response.headers.get('X-Home-Path')
81
82
  assert remote_home_path is not None, response.headers
@@ -176,7 +177,8 @@ def _upload_chunk_with_retry(params: UploadChunkParams) -> None:
176
177
  },
177
178
  content=FileChunkIterator(f, _UPLOAD_CHUNK_BYTES,
178
179
  params.chunk_index),
179
- headers={'Content-Type': 'application/octet-stream'})
180
+ headers={'Content-Type': 'application/octet-stream'},
181
+ cookies=server_common.get_api_cookie_jar())
180
182
  if response.status_code == 200:
181
183
  data = response.json()
182
184
  status = data.get('status')