skypilot-nightly 1.0.0.dev20250626__tar.gz → 1.0.0.dev20250628__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 (519) hide show
  1. {skypilot_nightly-1.0.0.dev20250626/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250628}/PKG-INFO +1 -1
  2. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/__init__.py +2 -2
  3. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/kubernetes.py +7 -0
  4. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/nebius.py +2 -2
  5. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/admin_policy.py +27 -17
  6. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/authentication.py +12 -5
  7. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/backend_utils.py +92 -26
  8. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/check.py +5 -2
  9. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/cli/command.py +38 -6
  10. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/sdk.py +217 -167
  11. skypilot_nightly-1.0.0.dev20250628/sky/client/service_account_auth.py +47 -0
  12. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/aws.py +10 -4
  13. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/azure.py +5 -2
  14. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/cloud.py +5 -2
  15. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/gcp.py +31 -18
  16. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/kubernetes.py +54 -34
  17. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/nebius.py +8 -2
  18. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/ssh.py +5 -2
  19. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/utils/aws_utils.py +10 -4
  20. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/utils/gcp_utils.py +22 -7
  21. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/utils/oci_utils.py +62 -14
  22. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/404.html +1 -1
  23. {skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/bs6UB9V4Jq10TIZ5x-kBK → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/ZYLkkWSYZjJhLVsObh20y}/_buildManifest.js +1 -1
  24. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/43-f38a531f6692f281.js +1 -0
  25. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/601-111d06d9ded11d00.js +1 -0
  26. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/616-d6128fa9e7cae6e6.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/616-50a620ac4a23deb4.js +1 -1
  27. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/691.fd9292250ab089af.js +21 -0
  28. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/785.dc2686c3c1235554.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/785.3446c12ffdf3d188.js +1 -1
  29. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/871-e547295e7e21399c.js +6 -0
  30. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/937.72796f7afe54075b.js +1 -0
  31. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/938-0a770415b5ce4649.js +1 -0
  32. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/982.d7bd80ed18cad4cc.js +1 -0
  33. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-21080826c6095f21.js +6 -0
  34. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-77d4816945b04793.js +6 -0
  35. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/clusters-f119a5630a1efd61.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/clusters-65b2c90320b8afb8.js +1 -1
  36. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-64bdc0b2d3a44709.js +16 -0
  37. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/jobs-0a5695ff3075d94a.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/jobs-df7407b5e37d3750.js +1 -1
  38. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/users-4978cbb093e141e7.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/users-d7684eaa04c4f58f.js +1 -1
  39. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-cb7e720b739de53a.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-04e1b3ad4207b1e9.js +1 -1
  40. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/workspaces-50e230828730cfb3.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/workspaces-c470366a6179f16e.js +1 -1
  41. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/webpack-08fdb9e6070127fc.js → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/webpack-75a3310ef922a299.js +1 -1
  42. skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/css/605ac87514049058.css +3 -0
  43. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
  44. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/clusters/[cluster].html +1 -1
  45. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/clusters.html +1 -1
  46. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/config.html +1 -1
  47. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/index.html +1 -1
  48. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/infra/[context].html +1 -1
  49. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/infra.html +1 -1
  50. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/jobs/[job].html +1 -1
  51. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/jobs.html +1 -1
  52. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/users.html +1 -1
  53. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/volumes.html +1 -1
  54. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/workspace/new.html +1 -1
  55. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/workspaces/[name].html +1 -1
  56. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/workspaces.html +1 -1
  57. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/data/storage.py +8 -3
  58. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/global_user_state.py +257 -9
  59. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/client/sdk.py +20 -25
  60. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/models.py +16 -0
  61. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/config.py +1 -1
  62. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/instance.py +7 -4
  63. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/network.py +15 -9
  64. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/network_utils.py +42 -23
  65. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/utils.py +73 -35
  66. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/nebius/utils.py +10 -4
  67. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/resources.py +10 -4
  68. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/client/sdk.py +28 -34
  69. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/common.py +51 -3
  70. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/constants.py +3 -0
  71. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/executor.py +4 -0
  72. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/payloads.py +33 -0
  73. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/requests.py +19 -0
  74. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/rest.py +6 -15
  75. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/server.py +121 -6
  76. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/constants.py +6 -0
  77. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skypilot_config.py +32 -4
  78. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/users/permission.py +29 -0
  79. skypilot_nightly-1.0.0.dev20250628/sky/users/server.py +711 -0
  80. skypilot_nightly-1.0.0.dev20250628/sky/users/token_service.py +196 -0
  81. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/common_utils.py +4 -5
  82. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/config_utils.py +41 -0
  83. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/controller_utils.py +5 -1
  84. skypilot_nightly-1.0.0.dev20250628/sky/utils/resource_checker.py +153 -0
  85. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/resources_utils.py +12 -4
  86. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/schemas.py +87 -60
  87. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/subprocess_utils.py +2 -6
  88. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/workspaces/core.py +9 -117
  89. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628/skypilot_nightly.egg-info}/PKG-INFO +1 -1
  90. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/skypilot_nightly.egg-info/SOURCES.txt +25 -22
  91. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_cli.py +5 -5
  92. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_config.py +103 -32
  93. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/43-36177d00f6956ab2.js +0 -1
  94. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/690.55f9eed3be903f56.js +0 -16
  95. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/871-3db673be3ee3750b.js +0 -6
  96. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/937.3759f538f11a0953.js +0 -1
  97. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/938-068520cc11738deb.js +0 -1
  98. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/973-81b2d057178adb76.js +0 -1
  99. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/982.1b61658204416b0f.js +0 -1
  100. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-aff040d7bc5d0086.js +0 -6
  101. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-8040f2483897ed0c.js +0 -6
  102. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-e4b23128db0774cd.js +0 -16
  103. skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/css/52082cf558ec9705.css +0 -3
  104. skypilot_nightly-1.0.0.dev20250626/sky/users/server.py +0 -332
  105. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/LICENSE +0 -0
  106. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/MANIFEST.in +0 -0
  107. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/README.md +0 -0
  108. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/pyproject.toml +0 -0
  109. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/setup.cfg +0 -0
  110. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/setup.py +0 -0
  111. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/__init__.py +0 -0
  112. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/aws.py +0 -0
  113. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/azure.py +0 -0
  114. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/cloudflare.py +0 -0
  115. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/common.py +0 -0
  116. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/cudo.py +0 -0
  117. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/do.py +0 -0
  118. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/docker.py +0 -0
  119. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/gcp.py +0 -0
  120. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/hyperbolic.py +0 -0
  121. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/ibm.py +0 -0
  122. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/oci.py +0 -0
  123. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/runpod.py +0 -0
  124. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/vast.py +0 -0
  125. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/adaptors/vsphere.py +0 -0
  126. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/__init__.py +0 -0
  127. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/backend.py +0 -0
  128. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/cloud_vm_ray_backend.py +0 -0
  129. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/docker_utils.py +0 -0
  130. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/local_docker_backend.py +0 -0
  131. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
  132. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/backends/wheel_utils.py +0 -0
  133. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/__init__.py +0 -0
  134. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/aws_catalog.py +0 -0
  135. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/azure_catalog.py +0 -0
  136. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/common.py +0 -0
  137. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/config.py +0 -0
  138. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/cudo_catalog.py +0 -0
  139. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/__init__.py +0 -0
  140. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/analyze.py +0 -0
  141. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
  142. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
  143. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
  144. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
  145. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
  146. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_hyperbolic.py +0 -0
  147. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
  148. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
  149. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
  150. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
  151. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/do_catalog.py +0 -0
  152. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/fluidstack_catalog.py +0 -0
  153. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/gcp_catalog.py +0 -0
  154. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/hyperbolic_catalog.py +0 -0
  155. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/ibm_catalog.py +0 -0
  156. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/kubernetes_catalog.py +0 -0
  157. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/lambda_catalog.py +0 -0
  158. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/nebius_catalog.py +0 -0
  159. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/oci_catalog.py +0 -0
  160. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/paperspace_catalog.py +0 -0
  161. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/runpod_catalog.py +0 -0
  162. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/scp_catalog.py +0 -0
  163. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/ssh_catalog.py +0 -0
  164. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/vast_catalog.py +0 -0
  165. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/catalog/vsphere_catalog.py +0 -0
  166. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/cli.py +0 -0
  167. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/__init__.py +0 -0
  168. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/cli/__init__.py +0 -0
  169. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/cli/deprecation_utils.py +0 -0
  170. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/cli/flags.py +0 -0
  171. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/common.py +0 -0
  172. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/client/oauth.py +0 -0
  173. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/cloud_stores.py +0 -0
  174. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/__init__.py +0 -0
  175. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/cudo.py +0 -0
  176. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/do.py +0 -0
  177. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/fluidstack.py +0 -0
  178. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/hyperbolic.py +0 -0
  179. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/ibm.py +0 -0
  180. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/lambda_cloud.py +0 -0
  181. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/oci.py +0 -0
  182. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/paperspace.py +0 -0
  183. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/runpod.py +0 -0
  184. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/scp.py +0 -0
  185. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/utils/__init__.py +0 -0
  186. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/utils/azure_utils.py +0 -0
  187. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/utils/scp_utils.py +0 -0
  188. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/vast.py +0 -0
  189. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/clouds/vsphere.py +0 -0
  190. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/core.py +0 -0
  191. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dag.py +0 -0
  192. {skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/bs6UB9V4Jq10TIZ5x-kBK → skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/ZYLkkWSYZjJhLVsObh20y}/_ssgManifest.js +0 -0
  193. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/141-fa5a20cbf401b351.js +0 -0
  194. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/230-d6e363362017ff3a.js +0 -0
  195. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/25.76c246239df93d50.js +0 -0
  196. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/430.ed51037d1a4a438b.js +0 -0
  197. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/470-92dd1614396389be.js +0 -0
  198. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/491.b3d264269613fe09.js +0 -0
  199. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/544.110e53813fb98e2e.js +0 -0
  200. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/645.961f08e39b8ce447.js +0 -0
  201. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/664-047bc03493fda379.js +0 -0
  202. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/697.6460bf72e760addd.js +0 -0
  203. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/798-c0525dc3f21e488d.js +0 -0
  204. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/799-3625946b2ec2eb30.js +0 -0
  205. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/804-4c9fc53aa74bc191.js +0 -0
  206. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/875.52c962183328b3f2.js +0 -0
  207. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/947-6620842ef80ae879.js +0 -0
  208. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/969-d3a0b53f728d280a.js +0 -0
  209. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/984.e8bac186a24e5178.js +0 -0
  210. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/989-db34c16ad7ea6155.js +0 -0
  211. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/990-0ad5ea1699e03ee8.js +0 -0
  212. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
  213. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
  214. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
  215. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
  216. /skypilot_nightly-1.0.0.dev20250626/sky/dashboard/out/_next/static/chunks/pages/_app-9a3ce3170d2edcec.js → /skypilot_nightly-1.0.0.dev20250628/sky/dashboard/out/_next/static/chunks/pages/_app-050a9e637b057b24.js +0 -0
  217. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
  218. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/config-6b255eae088da6a3.js +0 -0
  219. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
  220. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-b302aea4d65766bf.js +0 -0
  221. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/infra-ee8cc4d449945d19.js +0 -0
  222. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/volumes-476b670ef33d1ecd.js +0 -0
  223. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-5b59bce9eb208d84.js +0 -0
  224. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
  225. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/favicon.ico +0 -0
  226. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/skypilot.svg +0 -0
  227. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
  228. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/data/__init__.py +0 -0
  229. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/data/data_transfer.py +0 -0
  230. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/data/data_utils.py +0 -0
  231. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/data/mounting_utils.py +0 -0
  232. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/data/storage_utils.py +0 -0
  233. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/exceptions.py +0 -0
  234. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/execution.py +0 -0
  235. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/__init__.py +0 -0
  236. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/client/__init__.py +0 -0
  237. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/constants.py +0 -0
  238. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/controller.py +0 -0
  239. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/recovery_strategy.py +0 -0
  240. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/scheduler.py +0 -0
  241. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/server/__init__.py +0 -0
  242. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/server/core.py +0 -0
  243. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/server/server.py +0 -0
  244. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/state.py +0 -0
  245. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/jobs/utils.py +0 -0
  246. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/logs/__init__.py +0 -0
  247. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/logs/agent.py +0 -0
  248. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/logs/gcp.py +0 -0
  249. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/optimizer.py +0 -0
  250. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/__init__.py +0 -0
  251. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/aws/__init__.py +0 -0
  252. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/aws/config.py +0 -0
  253. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/aws/instance.py +0 -0
  254. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/aws/utils.py +0 -0
  255. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/azure/__init__.py +0 -0
  256. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/azure/azure-config-template.json +0 -0
  257. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/azure/config.py +0 -0
  258. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/azure/instance.py +0 -0
  259. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/common.py +0 -0
  260. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/constants.py +0 -0
  261. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/cudo/__init__.py +0 -0
  262. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/cudo/config.py +0 -0
  263. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/cudo/cudo_machine_type.py +0 -0
  264. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/cudo/cudo_utils.py +0 -0
  265. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/cudo/cudo_wrapper.py +0 -0
  266. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/cudo/instance.py +0 -0
  267. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/do/__init__.py +0 -0
  268. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/do/config.py +0 -0
  269. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/do/constants.py +0 -0
  270. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/do/instance.py +0 -0
  271. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/do/utils.py +0 -0
  272. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/docker_utils.py +0 -0
  273. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/fluidstack/__init__.py +0 -0
  274. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/fluidstack/config.py +0 -0
  275. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
  276. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/fluidstack/instance.py +0 -0
  277. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/__init__.py +0 -0
  278. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/config.py +0 -0
  279. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/constants.py +0 -0
  280. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/instance.py +0 -0
  281. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/instance_utils.py +0 -0
  282. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/mig_utils.py +0 -0
  283. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/gcp/volume_utils.py +0 -0
  284. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/hyperbolic/__init__.py +0 -0
  285. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/hyperbolic/config.py +0 -0
  286. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/hyperbolic/instance.py +0 -0
  287. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/hyperbolic/utils.py +0 -0
  288. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/instance_setup.py +0 -0
  289. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/__init__.py +0 -0
  290. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/constants.py +0 -0
  291. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
  292. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/kubernetes/volume.py +0 -0
  293. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/lambda_cloud/__init__.py +0 -0
  294. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/lambda_cloud/config.py +0 -0
  295. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/lambda_cloud/instance.py +0 -0
  296. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
  297. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/logging.py +0 -0
  298. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/metadata_utils.py +0 -0
  299. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/nebius/__init__.py +0 -0
  300. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/nebius/config.py +0 -0
  301. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/nebius/constants.py +0 -0
  302. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/nebius/instance.py +0 -0
  303. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/oci/__init__.py +0 -0
  304. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/oci/config.py +0 -0
  305. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/oci/instance.py +0 -0
  306. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/oci/query_utils.py +0 -0
  307. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/paperspace/__init__.py +0 -0
  308. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/paperspace/config.py +0 -0
  309. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/paperspace/constants.py +0 -0
  310. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/paperspace/instance.py +0 -0
  311. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/paperspace/utils.py +0 -0
  312. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/provisioner.py +0 -0
  313. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/__init__.py +0 -0
  314. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/api/__init__.py +0 -0
  315. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/api/commands.py +0 -0
  316. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/api/pods.py +0 -0
  317. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/config.py +0 -0
  318. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/instance.py +0 -0
  319. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/runpod/utils.py +0 -0
  320. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/scp/__init__.py +0 -0
  321. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/scp/config.py +0 -0
  322. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/scp/instance.py +0 -0
  323. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/ssh/__init__.py +0 -0
  324. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vast/__init__.py +0 -0
  325. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vast/config.py +0 -0
  326. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vast/instance.py +0 -0
  327. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vast/utils.py +0 -0
  328. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/__init__.py +0 -0
  329. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/__init__.py +0 -0
  330. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/cls_api_client.py +0 -0
  331. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
  332. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/custom_script.py +0 -0
  333. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/id_generator.py +0 -0
  334. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/metadata_utils.py +0 -0
  335. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/service_manager.py +0 -0
  336. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
  337. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/ssl_helper.py +0 -0
  338. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/vapiconnect.py +0 -0
  339. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/common/vim_utils.py +0 -0
  340. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/config.py +0 -0
  341. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/instance.py +0 -0
  342. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/provision/vsphere/vsphere_utils.py +0 -0
  343. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/__init__.py +0 -0
  344. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/autoscalers.py +0 -0
  345. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/client/__init__.py +0 -0
  346. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/constants.py +0 -0
  347. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/controller.py +0 -0
  348. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/load_balancer.py +0 -0
  349. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/load_balancing_policies.py +0 -0
  350. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/replica_managers.py +0 -0
  351. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/serve_state.py +0 -0
  352. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/serve_utils.py +0 -0
  353. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/server/__init__.py +0 -0
  354. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/server/core.py +0 -0
  355. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/server/server.py +0 -0
  356. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/service.py +0 -0
  357. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/service_spec.py +0 -0
  358. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/serve/spot_placer.py +0 -0
  359. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/__init__.py +0 -0
  360. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/config.py +0 -0
  361. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/html/log.html +0 -0
  362. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/html/token_page.html +0 -0
  363. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/metrics.py +0 -0
  364. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/__init__.py +0 -0
  365. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/event_loop.py +0 -0
  366. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/preconditions.py +0 -0
  367. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/process.py +0 -0
  368. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/queues/__init__.py +0 -0
  369. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/queues/local_queue.py +0 -0
  370. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/queues/mp_queue.py +0 -0
  371. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/serializers/__init__.py +0 -0
  372. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/serializers/decoders.py +0 -0
  373. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/requests/serializers/encoders.py +0 -0
  374. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/state.py +0 -0
  375. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/stream_utils.py +0 -0
  376. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/server/uvicorn.py +0 -0
  377. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/setup_files/MANIFEST.in +0 -0
  378. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/setup_files/dependencies.py +0 -0
  379. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/setup_files/setup.py +0 -0
  380. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/sky_logging.py +0 -0
  381. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/LICENSE +0 -0
  382. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/__init__.py +0 -0
  383. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/attempt_skylet.py +0 -0
  384. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/autostop_lib.py +0 -0
  385. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/configs.py +0 -0
  386. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/events.py +0 -0
  387. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/job_lib.py +0 -0
  388. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/log_lib.py +0 -0
  389. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/log_lib.pyi +0 -0
  390. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/providers/__init__.py +0 -0
  391. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/providers/command_runner.py +0 -0
  392. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/providers/ibm/__init__.py +0 -0
  393. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/providers/ibm/node_provider.py +0 -0
  394. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/providers/ibm/utils.py +0 -0
  395. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
  396. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/__init__.py +0 -0
  397. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
  398. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/cli.py.patch +0 -0
  399. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
  400. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
  401. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
  402. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/updater.py.patch +0 -0
  403. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/ray_patches/worker.py.patch +0 -0
  404. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/skylet.py +0 -0
  405. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/skylet/subprocess_daemon.py +0 -0
  406. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/ssh_node_pools/__init__.py +0 -0
  407. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/ssh_node_pools/core.py +0 -0
  408. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/ssh_node_pools/server.py +0 -0
  409. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/task.py +0 -0
  410. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/aws-ray.yml.j2 +0 -0
  411. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/azure-ray.yml.j2 +0 -0
  412. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/cudo-ray.yml.j2 +0 -0
  413. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/do-ray.yml.j2 +0 -0
  414. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/fluidstack-ray.yml.j2 +0 -0
  415. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/gcp-ray.yml.j2 +0 -0
  416. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/hyperbolic-ray.yml.j2 +0 -0
  417. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/ibm-ray.yml.j2 +0 -0
  418. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/jobs-controller.yaml.j2 +0 -0
  419. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
  420. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
  421. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
  422. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/kubernetes-ray.yml.j2 +0 -0
  423. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
  424. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/lambda-ray.yml.j2 +0 -0
  425. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/local-ray.yml.j2 +0 -0
  426. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/nebius-ray.yml.j2 +0 -0
  427. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/oci-ray.yml.j2 +0 -0
  428. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/paperspace-ray.yml.j2 +0 -0
  429. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/runpod-ray.yml.j2 +0 -0
  430. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/scp-ray.yml.j2 +0 -0
  431. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
  432. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
  433. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/vast-ray.yml.j2 +0 -0
  434. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/vsphere-ray.yml.j2 +0 -0
  435. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/templates/websocket_proxy.py +0 -0
  436. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/usage/__init__.py +0 -0
  437. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/usage/constants.py +0 -0
  438. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/usage/usage_lib.py +0 -0
  439. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/users/__init__.py +0 -0
  440. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/users/model.conf +0 -0
  441. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/users/rbac.py +0 -0
  442. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/__init__.py +0 -0
  443. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/accelerator_registry.py +0 -0
  444. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/admin_policy_utils.py +0 -0
  445. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/annotations.py +0 -0
  446. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/atomic.py +0 -0
  447. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/aws/__init__.py +0 -0
  448. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/aws/get_default_security_group.py +0 -0
  449. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/cli_utils/__init__.py +0 -0
  450. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/cli_utils/status_utils.py +0 -0
  451. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/cluster_utils.py +0 -0
  452. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/command_runner.py +0 -0
  453. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/command_runner.pyi +0 -0
  454. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/common.py +0 -0
  455. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/context.py +0 -0
  456. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/context_utils.py +0 -0
  457. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/control_master_utils.py +0 -0
  458. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/dag_utils.py +0 -0
  459. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/db_utils.py +0 -0
  460. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/env_options.py +0 -0
  461. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/infra_utils.py +0 -0
  462. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/__init__.py +0 -0
  463. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
  464. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/config_map_utils.py +0 -0
  465. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/create_cluster.sh +0 -0
  466. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/delete_cluster.sh +0 -0
  467. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
  468. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
  469. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/generate_kind_config.py +0 -0
  470. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
  471. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/gpu_labeler.py +0 -0
  472. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
  473. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
  474. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
  475. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/rsync_helper.sh +0 -0
  476. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
  477. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
  478. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes/ssh_utils.py +0 -0
  479. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/kubernetes_enums.py +0 -0
  480. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/log_utils.py +0 -0
  481. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/message_utils.py +0 -0
  482. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/registry.py +0 -0
  483. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/rich_console_utils.py +0 -0
  484. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/rich_utils.py +0 -0
  485. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/status_lib.py +0 -0
  486. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/timeline.py +0 -0
  487. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/ux_utils.py +0 -0
  488. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/utils/validator.py +0 -0
  489. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/__init__.py +0 -0
  490. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/client/__init__.py +0 -0
  491. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/client/sdk.py +0 -0
  492. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/server/__init__.py +0 -0
  493. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/server/core.py +0 -0
  494. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/server/server.py +0 -0
  495. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/utils.py +0 -0
  496. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/volumes/volume.py +0 -0
  497. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/workspaces/__init__.py +0 -0
  498. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/workspaces/server.py +0 -0
  499. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/sky/workspaces/utils.py +0 -0
  500. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
  501. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/skypilot_nightly.egg-info/entry_points.txt +0 -0
  502. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/skypilot_nightly.egg-info/requires.txt +0 -0
  503. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/skypilot_nightly.egg-info/top_level.txt +0 -0
  504. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_api.py +0 -0
  505. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_api_compatibility.py +0 -0
  506. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_db_utils.py +0 -0
  507. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_failover.py +0 -0
  508. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_global_user_state.py +0 -0
  509. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_jobs.py +0 -0
  510. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_jobs_and_serve.py +0 -0
  511. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_list_accelerators.py +0 -0
  512. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_no_parellel.py +0 -0
  513. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_optimizer_dryruns.py +0 -0
  514. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_optimizer_random_dag.py +0 -0
  515. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_serve_autoscaler.py +0 -0
  516. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_smoke.py +0 -0
  517. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_storage.py +0 -0
  518. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/tests/test_wheels.py +0 -0
  519. {skypilot_nightly-1.0.0.dev20250626 → skypilot_nightly-1.0.0.dev20250628}/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.dev20250626
3
+ Version: 1.0.0.dev20250628
4
4
  Summary: SkyPilot: Run AI on Any Infra — Unified, Faster, Cheaper.
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -5,7 +5,7 @@ from typing import Optional
5
5
  import urllib.request
6
6
 
7
7
  # Replaced with the current commit when building the wheels.
8
- _SKYPILOT_COMMIT_SHA = '512c53be5771c003cd9d94b5b89c23638a5e735e'
8
+ _SKYPILOT_COMMIT_SHA = 'ba333007314473d8662d29933dca71a5e3d1fbf1'
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.dev20250626'
38
+ __version__ = '1.0.0.dev20250628'
39
39
  __root_dir__ = os.path.dirname(os.path.abspath(__file__))
40
40
 
41
41
 
@@ -211,6 +211,13 @@ def api_client(context: Optional[str] = None):
211
211
  return kubernetes.client.ApiClient()
212
212
 
213
213
 
214
+ @_api_logging_decorator('urllib3', logging.ERROR)
215
+ @annotations.lru_cache(scope='request')
216
+ def custom_resources_api(context: Optional[str] = None):
217
+ _load_config(context)
218
+ return kubernetes.client.CustomObjectsApi()
219
+
220
+
214
221
  @_api_logging_decorator('urllib3', logging.ERROR)
215
222
  @annotations.lru_cache(scope='request')
216
223
  def watch(context: Optional[str] = None):
@@ -120,8 +120,8 @@ def get_tenant_id():
120
120
  'tenant_id', None)
121
121
  if tenant_id_in_ws_config is not None:
122
122
  return tenant_id_in_ws_config
123
- tenant_id_in_config = skypilot_config.get_nested(('nebius', 'tenant_id'),
124
- None)
123
+ tenant_id_in_config = skypilot_config.get_effective_region_config(
124
+ cloud='nebius', region=None, keys=('tenant_id',), default_value=None)
125
125
  if tenant_id_in_config is not None:
126
126
  return tenant_id_in_config
127
127
  try:
@@ -2,7 +2,7 @@
2
2
  import abc
3
3
  import dataclasses
4
4
  import typing
5
- from typing import Any, Dict, Optional
5
+ from typing import Optional
6
6
 
7
7
  import colorama
8
8
  import pydantic
@@ -44,8 +44,10 @@ class RequestOptions(pydantic.BaseModel):
44
44
 
45
45
  class _UserRequestBody(pydantic.BaseModel):
46
46
  """Auxiliary model to validate and serialize a user request."""
47
- task: Dict[str, Any]
48
- skypilot_config: Dict[str, Any]
47
+ # We have to use serialized YAML string, instead of a dict, because dict
48
+ # will be converted to JSON string, which will lose the None key.
49
+ task: str
50
+ skypilot_config: str
49
51
  request_options: Optional[RequestOptions] = None
50
52
  at_client_side: bool = False
51
53
 
@@ -78,25 +80,31 @@ class UserRequest:
78
80
 
79
81
  def encode(self) -> str:
80
82
  return _UserRequestBody(
81
- task=self.task.to_yaml_config(),
82
- skypilot_config=dict(self.skypilot_config),
83
+ task=common_utils.dump_yaml_str(self.task.to_yaml_config()),
84
+ skypilot_config=common_utils.dump_yaml_str(
85
+ dict(self.skypilot_config)),
83
86
  request_options=self.request_options,
84
- at_client_side=self.at_client_side).model_dump_json()
87
+ at_client_side=self.at_client_side,
88
+ ).model_dump_json()
85
89
 
86
90
  @classmethod
87
91
  def decode(cls, body: str) -> 'UserRequest':
88
92
  user_request_body = _UserRequestBody.model_validate_json(body)
89
- return cls(task=sky.Task.from_yaml_config(user_request_body.task),
90
- skypilot_config=config_utils.Config.from_dict(
91
- user_request_body.skypilot_config),
92
- request_options=user_request_body.request_options,
93
- at_client_side=user_request_body.at_client_side)
93
+ return cls(
94
+ task=sky.Task.from_yaml_config(
95
+ common_utils.read_yaml_all_str(user_request_body.task)[0]),
96
+ skypilot_config=config_utils.Config.from_dict(
97
+ common_utils.read_yaml_all_str(
98
+ user_request_body.skypilot_config)[0]),
99
+ request_options=user_request_body.request_options,
100
+ at_client_side=user_request_body.at_client_side,
101
+ )
94
102
 
95
103
 
96
104
  class _MutatedUserRequestBody(pydantic.BaseModel):
97
105
  """Auxiliary model to validate and serialize a user request."""
98
- task: Dict[str, Any]
99
- skypilot_config: Dict[str, Any]
106
+ task: str
107
+ skypilot_config: str
100
108
 
101
109
 
102
110
  @dataclasses.dataclass
@@ -108,17 +116,19 @@ class MutatedUserRequest:
108
116
 
109
117
  def encode(self) -> str:
110
118
  return _MutatedUserRequestBody(
111
- task=self.task.to_yaml_config(),
112
- skypilot_config=dict(self.skypilot_config)).model_dump_json()
119
+ task=common_utils.dump_yaml_str(self.task.to_yaml_config()),
120
+ skypilot_config=common_utils.dump_yaml_str(
121
+ dict(self.skypilot_config),)).model_dump_json()
113
122
 
114
123
  @classmethod
115
124
  def decode(cls, mutated_user_request_body: str) -> 'MutatedUserRequest':
116
125
  mutated_user_request_body = _MutatedUserRequestBody.model_validate_json(
117
126
  mutated_user_request_body)
118
127
  return cls(task=sky.Task.from_yaml_config(
119
- mutated_user_request_body.task),
128
+ common_utils.read_yaml_all_str(mutated_user_request_body.task)[0]),
120
129
  skypilot_config=config_utils.Config.from_dict(
121
- mutated_user_request_body.skypilot_config))
130
+ common_utils.read_yaml_all_str(
131
+ mutated_user_request_body.skypilot_config)[0],))
122
132
 
123
133
 
124
134
  class PolicyInterface:
@@ -419,12 +419,17 @@ def setup_ibm_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
419
419
 
420
420
 
421
421
  def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
422
+ context = kubernetes_utils.get_context_from_config(config['provider'])
423
+
422
424
  # Default ssh session is established with kubectl port-forwarding with
423
425
  # ClusterIP service.
424
426
  nodeport_mode = kubernetes_enums.KubernetesNetworkingMode.NODEPORT
425
427
  port_forward_mode = kubernetes_enums.KubernetesNetworkingMode.PORTFORWARD
426
- network_mode_str = skypilot_config.get_nested(('kubernetes', 'networking'),
427
- port_forward_mode.value)
428
+ network_mode_str = skypilot_config.get_effective_region_config(
429
+ cloud='kubernetes',
430
+ region=context,
431
+ keys=('networking',),
432
+ default_value=port_forward_mode.value)
428
433
  try:
429
434
  network_mode = kubernetes_enums.KubernetesNetworkingMode.from_str(
430
435
  network_mode_str)
@@ -439,7 +444,6 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
439
444
  # Add the user's public key to the SkyPilot cluster.
440
445
  secret_name = clouds.Kubernetes.SKY_SSH_KEY_SECRET_NAME
441
446
  secret_field_name = clouds.Kubernetes().ssh_key_secret_field_name
442
- context = kubernetes_utils.get_context_from_config(config['provider'])
443
447
  namespace = kubernetes_utils.get_namespace_from_config(config['provider'])
444
448
  k8s = kubernetes.kubernetes
445
449
  with open(public_key_path, 'r', encoding='utf-8') as f:
@@ -454,8 +458,11 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
454
458
  'parent': 'skypilot'
455
459
  }
456
460
  }
457
- custom_metadata = skypilot_config.get_nested(
458
- ('kubernetes', 'custom_metadata'), {})
461
+ custom_metadata = skypilot_config.get_effective_region_config(
462
+ cloud='kubernetes',
463
+ region=context,
464
+ keys=('custom_metadata',),
465
+ default_value={})
459
466
  config_utils.merge_k8s_configs(secret_metadata, custom_metadata)
460
467
 
461
468
  secret = k8s.client.V1Secret(
@@ -520,11 +520,51 @@ def get_expirable_clouds(
520
520
  expirable_clouds = []
521
521
  local_credentials_value = schemas.RemoteIdentityOptions.LOCAL_CREDENTIALS.value
522
522
  for cloud in enabled_clouds:
523
- remote_identities = skypilot_config.get_nested(
524
- (str(cloud).lower(), 'remote_identity'), None)
525
- if remote_identities is None:
526
- remote_identities = schemas.get_default_remote_identity(
527
- str(cloud).lower())
523
+ # Kubernetes config might have context-specific properties
524
+ if isinstance(cloud, clouds.Kubernetes):
525
+ # get all custom contexts
526
+ contexts = kubernetes_utils.get_custom_config_k8s_contexts()
527
+ # add remote_identity of each context if it exists
528
+ remote_identities = None
529
+ for context in contexts:
530
+ context_remote_identity = skypilot_config.get_effective_region_config(
531
+ cloud='kubernetes',
532
+ region=context,
533
+ keys=('remote_identity',),
534
+ default_value=None)
535
+ if context_remote_identity is not None:
536
+ if remote_identities is None:
537
+ remote_identities = []
538
+ if isinstance(context_remote_identity, str):
539
+ remote_identities.append(
540
+ {context: context_remote_identity})
541
+ elif isinstance(context_remote_identity, list):
542
+ remote_identities.extend(context_remote_identity)
543
+ # add global kubernetes remote identity if it exists, if not, add default
544
+ global_remote_identity = skypilot_config.get_effective_region_config(
545
+ cloud='kubernetes',
546
+ region=None,
547
+ keys=('remote_identity',),
548
+ default_value=None)
549
+ if global_remote_identity is not None:
550
+ if remote_identities is None:
551
+ remote_identities = []
552
+ if isinstance(global_remote_identity, str):
553
+ remote_identities.append({'*': global_remote_identity})
554
+ elif isinstance(global_remote_identity, list):
555
+ remote_identities.extend(global_remote_identity)
556
+ if remote_identities is None:
557
+ remote_identities = schemas.get_default_remote_identity(
558
+ str(cloud).lower())
559
+ else:
560
+ remote_identities = skypilot_config.get_effective_region_config(
561
+ cloud=str(cloud).lower(),
562
+ region=None,
563
+ keys=('remote_identity',),
564
+ default_value=None)
565
+ if remote_identities is None:
566
+ remote_identities = schemas.get_default_remote_identity(
567
+ str(cloud).lower())
528
568
 
529
569
  local_credential_expiring = cloud.can_credential_expire()
530
570
  if isinstance(remote_identities, str):
@@ -605,8 +645,11 @@ def write_cluster_config(
605
645
  config_dict = {}
606
646
 
607
647
  specific_reservations = set(
608
- skypilot_config.get_nested(
609
- (str(to_provision.cloud).lower(), 'specific_reservations'), set()))
648
+ skypilot_config.get_effective_region_config(
649
+ cloud=str(to_provision.cloud).lower(),
650
+ region=to_provision.region,
651
+ keys=('specific_reservations',),
652
+ default_value=set()))
610
653
 
611
654
  # Remote identity handling can have 4 cases:
612
655
  # 1. LOCAL_CREDENTIALS (default for most clouds): Upload local credentials
@@ -619,8 +662,11 @@ def write_cluster_config(
619
662
  # running required checks.
620
663
  assert cluster_name is not None
621
664
  excluded_clouds: Set[clouds.Cloud] = set()
622
- remote_identity_config = skypilot_config.get_nested(
623
- (str(cloud).lower(), 'remote_identity'), None)
665
+ remote_identity_config = skypilot_config.get_effective_region_config(
666
+ cloud=str(cloud).lower(),
667
+ region=region.name,
668
+ keys=('remote_identity',),
669
+ default_value=None)
624
670
  remote_identity = schemas.get_default_remote_identity(str(cloud).lower())
625
671
  if isinstance(remote_identity_config, str):
626
672
  remote_identity = remote_identity_config
@@ -649,15 +695,21 @@ def write_cluster_config(
649
695
  'is not supported by this cloud. Remove the config or set: '
650
696
  '`remote_identity: LOCAL_CREDENTIALS`.')
651
697
  if isinstance(cloud, clouds.Kubernetes):
652
- if skypilot_config.get_nested(
653
- ('kubernetes', 'allowed_contexts'), None) is None:
698
+ if skypilot_config.get_effective_region_config(
699
+ cloud='kubernetes',
700
+ region=None,
701
+ keys=('allowed_contexts',),
702
+ default_value=None) is None:
654
703
  excluded_clouds.add(cloud)
655
704
  else:
656
705
  excluded_clouds.add(cloud)
657
706
 
658
707
  for cloud_str, cloud_obj in registry.CLOUD_REGISTRY.items():
659
- remote_identity_config = skypilot_config.get_nested(
660
- (cloud_str.lower(), 'remote_identity'), None)
708
+ remote_identity_config = skypilot_config.get_effective_region_config(
709
+ cloud=cloud_str.lower(),
710
+ region=region.name,
711
+ keys=('remote_identity',),
712
+ default_value=None)
661
713
  if remote_identity_config:
662
714
  if (remote_identity_config ==
663
715
  schemas.RemoteIdentityOptions.NO_UPLOAD.value):
@@ -678,8 +730,11 @@ def write_cluster_config(
678
730
  yaml_path = _get_yaml_path_from_cluster_name(cluster_name)
679
731
 
680
732
  # Retrieve the ssh_proxy_command for the given cloud / region.
681
- ssh_proxy_command_config = skypilot_config.get_nested(
682
- (str(cloud).lower(), 'ssh_proxy_command'), None)
733
+ ssh_proxy_command_config = skypilot_config.get_effective_region_config(
734
+ cloud=str(cloud).lower(),
735
+ region=None,
736
+ keys=('ssh_proxy_command',),
737
+ default_value=None)
683
738
  if (isinstance(ssh_proxy_command_config, str) or
684
739
  ssh_proxy_command_config is None):
685
740
  ssh_proxy_command = ssh_proxy_command_config
@@ -705,7 +760,11 @@ def write_cluster_config(
705
760
  logger.debug(f'Using ssh_proxy_command: {ssh_proxy_command!r}')
706
761
 
707
762
  # User-supplied global instance tags from ~/.sky/config.yaml.
708
- labels = skypilot_config.get_nested((str(cloud).lower(), 'labels'), {})
763
+ labels = skypilot_config.get_effective_region_config(
764
+ cloud=str(cloud).lower(),
765
+ region=region.name,
766
+ keys=('labels',),
767
+ default_value={})
709
768
  # labels is a dict, which is guaranteed by the type check in
710
769
  # schemas.py
711
770
  assert isinstance(labels, dict), labels
@@ -762,12 +821,17 @@ def write_cluster_config(
762
821
  os.environ.get(constants.USER_ENV_VAR, '')),
763
822
 
764
823
  # Networking configs
765
- 'use_internal_ips': skypilot_config.get_nested(
766
- (str(cloud).lower(), 'use_internal_ips'), False),
824
+ 'use_internal_ips': skypilot_config.get_effective_region_config(
825
+ cloud=str(cloud).lower(),
826
+ region=region.name,
827
+ keys=('use_internal_ips',),
828
+ default_value=False),
767
829
  'ssh_proxy_command': ssh_proxy_command,
768
- 'vpc_name': skypilot_config.get_nested(
769
- (str(cloud).lower(), 'vpc_name'), None),
770
-
830
+ 'vpc_name': skypilot_config.get_effective_region_config(
831
+ cloud=str(cloud).lower(),
832
+ region=region.name,
833
+ keys=('vpc_name',),
834
+ default_value=None),
771
835
  # User-supplied labels.
772
836
  'labels': labels,
773
837
  # User-supplied remote_identity
@@ -847,8 +911,9 @@ def write_cluster_config(
847
911
  kubernetes_utils.combine_pod_config_fields(
848
912
  tmp_yaml_path,
849
913
  cluster_config_overrides=cluster_config_overrides,
850
- cloud=cloud)
851
- kubernetes_utils.combine_metadata_fields(tmp_yaml_path)
914
+ cloud=cloud,
915
+ context=region.name)
916
+ kubernetes_utils.combine_metadata_fields(tmp_yaml_path, region.name)
852
917
  yaml_obj = common_utils.read_yaml(tmp_yaml_path)
853
918
  pod_config: Dict[str, Any] = yaml_obj['available_node_types'][
854
919
  'ray_head_default']['node_config']
@@ -3095,7 +3160,8 @@ def get_endpoints(cluster: str,
3095
3160
  f'{_ENDPOINTS_RETRY_MESSAGE} ')
3096
3161
  if launched_resources.cloud.is_same_cloud(clouds.Kubernetes()):
3097
3162
  # Add Kubernetes specific debugging info
3098
- error_msg += (kubernetes_utils.get_endpoint_debug_message())
3163
+ error_msg += kubernetes_utils.get_endpoint_debug_message(
3164
+ launched_resources.region)
3099
3165
  logger.warning(error_msg)
3100
3166
  return {}
3101
3167
  return {port: port_details[port][0].url()}
@@ -3113,8 +3179,8 @@ def get_endpoints(cluster: str,
3113
3179
  f'{_ENDPOINTS_RETRY_MESSAGE} ')
3114
3180
  if launched_resources.cloud.is_same_cloud(clouds.Kubernetes()):
3115
3181
  # Add Kubernetes specific debugging info
3116
- error_msg += \
3117
- kubernetes_utils.get_endpoint_debug_message()
3182
+ error_msg += kubernetes_utils.get_endpoint_debug_message(
3183
+ launched_resources.region)
3118
3184
  logger.warning(error_msg)
3119
3185
  return {}
3120
3186
  return {
@@ -619,8 +619,11 @@ def _format_enabled_cloud(cloud_name: str,
619
619
  return _green_color(cloud_and_capabilities)
620
620
 
621
621
  # Check if allowed_contexts is explicitly set in config
622
- allowed_contexts = skypilot_config.get_nested(
623
- ('kubernetes', 'allowed_contexts'), None)
622
+ allowed_contexts = skypilot_config.get_effective_region_config(
623
+ cloud='kubernetes',
624
+ region=None,
625
+ keys=('allowed_contexts',),
626
+ default_value=None)
624
627
 
625
628
  # Format the context info with consistent styling
626
629
  if allowed_contexts is not None:
@@ -3176,7 +3176,11 @@ def show_gpus(
3176
3176
  cloud_obj, clouds.Kubernetes) and not isinstance(cloud_obj, clouds.SSH)
3177
3177
  cloud_is_ssh = isinstance(cloud_obj, clouds.SSH)
3178
3178
  # TODO(romilb): We should move this to the backend.
3179
- kubernetes_autoscaling = kubernetes_utils.get_autoscaler_type() is not None
3179
+ kubernetes_autoscaling = skypilot_config.get_effective_region_config(
3180
+ cloud='kubernetes',
3181
+ region=region,
3182
+ keys=('autoscaler',),
3183
+ default_value=None) is not None
3180
3184
  kubernetes_is_enabled = clouds.Kubernetes.canonical_name() in enabled_clouds
3181
3185
  ssh_is_enabled = clouds.SSH.canonical_name() in enabled_clouds
3182
3186
  query_k8s_realtime_gpu = (kubernetes_is_enabled and
@@ -5358,14 +5362,42 @@ def api_status(request_ids: Optional[List[str]], all_status: bool,
5358
5362
  '-e',
5359
5363
  required=False,
5360
5364
  help='The SkyPilot API server endpoint.')
5361
- @click.option('--get-token',
5365
+ @click.option('--relogin',
5362
5366
  is_flag=True,
5363
5367
  default=False,
5364
- help='Force token-based login.')
5368
+ help='Force relogin with OAuth2 when enabled.')
5369
+ @click.option(
5370
+ '--service-account-token',
5371
+ '--token',
5372
+ '-t',
5373
+ required=False,
5374
+ help='Service account token for authentication (starts with ``sky_``).')
5365
5375
  @usage_lib.entrypoint
5366
- def api_login(endpoint: Optional[str], get_token: bool):
5367
- """Logs into a SkyPilot API server."""
5368
- sdk.api_login(endpoint, get_token)
5376
+ def api_login(endpoint: Optional[str], relogin: bool,
5377
+ service_account_token: Optional[str]):
5378
+ """Logs into a SkyPilot API server.
5379
+
5380
+ If your remote API server has enabled OAuth2 authentication, you can use
5381
+ one of the following methods to login:
5382
+
5383
+ 1. OAuth2 browser-based authentication (default)
5384
+
5385
+ 2. Service account token via ``--token`` flag
5386
+
5387
+ 3. Service account token in ``~/.sky/config.yaml``
5388
+
5389
+ Examples:
5390
+
5391
+ .. code-block:: bash
5392
+
5393
+ # OAuth2 browser login
5394
+ sky api login -e https://api.example.com
5395
+ \b
5396
+ # Service account token login
5397
+ sky api login -e https://api.example.com --token sky_abc123...
5398
+
5399
+ """
5400
+ sdk.api_login(endpoint, relogin, service_account_token)
5369
5401
 
5370
5402
 
5371
5403
  @api.command('info', cls=_DocumentedCodeCommand)