skypilot-nightly 1.0.0.dev20250510__tar.gz → 1.0.0.dev20250514__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.
- {skypilot_nightly-1.0.0.dev20250510/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250514}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/cloud_vm_ray_backend.py +22 -3
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/cli.py +109 -109
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/cli.py +109 -109
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/gcp.py +59 -16
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +33 -11
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/gcp_catalog.py +7 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/404.html +1 -1
- skypilot_nightly-1.0.0.dev20250514/sky/dashboard/out/_next/static/chunks/845-0ca6f2c1ba667c3b.js +1 -0
- {skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ → skypilot_nightly-1.0.0.dev20250514/sky/dashboard/out/_next/static/tdxxQrPV6NW90a983oHXe}/_buildManifest.js +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/docker_utils.py +4 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/config.py +197 -15
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/constants.py +64 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/instance.py +3 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/utils.py +4 -2
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/resources.py +4 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/constants.py +3 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/gcp-ray.yml.j2 +11 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/nebius-ray.yml.j2 +7 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/websocket_proxy.py +29 -9
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/schemas.py +9 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/SOURCES.txt +3 -3
- skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/chunks/845-0f8017370869e269.js +0 -1
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/236-f49500b82ad5392d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/37-0a572fe0dbb89c4d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/678-206dddca808e6d16.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/979-7bf73a4c7cea0f5c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/_app-e6b013bc3f77ad60.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-e15db85d0ea1fbe1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-f383db7389368ea7.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/index-f9f039532ca8cbc4.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-03f279c6741fb48b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/_next/static/css/c6933bbb2ce7f4dd.css +0 -0
- {skypilot_nightly-1.0.0.dev20250510/sky/dashboard/out/_next/static/C0fkLhvxyqkymoV7IeInQ → skypilot_nightly-1.0.0.dev20250514/sky/dashboard/out/_next/static/tdxxQrPV6NW90a983oHXe}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/dashboard_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250510 → skypilot_nightly-1.0.0.dev20250514}/tests/test_yaml_parser.py +0 -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 = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = '72eec01ce074d475ef65d48fbdf91b9216f41754'
|
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.
|
38
|
+
__version__ = '1.0.0.dev20250514'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -4657,6 +4657,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
4657
4657
|
handle_before_refresh = record['handle']
|
4658
4658
|
status_before_refresh = record['status']
|
4659
4659
|
|
4660
|
+
handle: Optional[CloudVmRayResourceHandle]
|
4660
4661
|
prev_cluster_status, handle = (status_before_refresh,
|
4661
4662
|
handle_before_refresh)
|
4662
4663
|
|
@@ -4677,7 +4678,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
4677
4678
|
prev_cluster_status = None
|
4678
4679
|
handle = None
|
4679
4680
|
# We should check the cluster_ever_up after refresh, because if the
|
4680
|
-
# cluster is terminated (through console or auto-
|
4681
|
+
# cluster is terminated (through console or auto-down), the record will
|
4681
4682
|
# become None and the cluster_ever_up should be considered as False.
|
4682
4683
|
cluster_ever_up = record is not None and record['cluster_ever_up']
|
4683
4684
|
prev_config_hash = record['config_hash'] if record is not None else None
|
@@ -4690,11 +4691,14 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
4690
4691
|
self.check_resources_fit_cluster(handle, task)
|
4691
4692
|
# Use the existing cluster.
|
4692
4693
|
assert handle.launched_resources is not None, (cluster_name, handle)
|
4694
|
+
# Take a random resource in order to get resource info that applies
|
4695
|
+
# to all resources.
|
4696
|
+
one_task_resource = list(task.resources)[0]
|
4693
4697
|
# Assume resources share the same ports.
|
4694
4698
|
for resource in task.resources:
|
4695
|
-
assert resource.ports ==
|
4699
|
+
assert resource.ports == one_task_resource.ports
|
4696
4700
|
requested_ports_set = resources_utils.port_ranges_to_set(
|
4697
|
-
|
4701
|
+
one_task_resource.ports)
|
4698
4702
|
current_ports_set = resources_utils.port_ranges_to_set(
|
4699
4703
|
handle.launched_resources.ports)
|
4700
4704
|
all_ports = resources_utils.port_set_to_ranges(current_ports_set |
|
@@ -4713,6 +4717,21 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
4713
4717
|
'a new cluster with the desired ports open.')
|
4714
4718
|
if all_ports:
|
4715
4719
|
to_provision = to_provision.copy(ports=all_ports)
|
4720
|
+
# Docker login should always be the same for all resources, since
|
4721
|
+
# it's set from envs.
|
4722
|
+
for resource in task.resources:
|
4723
|
+
assert (resource.docker_login_config ==
|
4724
|
+
one_task_resource.docker_login_config), (
|
4725
|
+
resource.docker_login_config,
|
4726
|
+
one_task_resource.docker_login_config)
|
4727
|
+
# If we have docker login config in the new task, override the
|
4728
|
+
# existing resources to pick up new credentials. This allows the
|
4729
|
+
# user to specify new or fixed credentials if the existing
|
4730
|
+
# credentials are not working. If we don't do this, the credentials
|
4731
|
+
# from the existing resources will always be reused.
|
4732
|
+
if one_task_resource.docker_login_config is not None:
|
4733
|
+
to_provision = to_provision.copy(
|
4734
|
+
_docker_login_config=one_task_resource.docker_login_config)
|
4716
4735
|
return RetryingVmProvisioner.ToProvisionConfig(
|
4717
4736
|
cluster_name,
|
4718
4737
|
to_provision,
|
@@ -91,6 +91,8 @@ from sky.utils.cli_utils import status_utils
|
|
91
91
|
if typing.TYPE_CHECKING:
|
92
92
|
import types
|
93
93
|
|
94
|
+
import prettytable
|
95
|
+
|
94
96
|
pd = adaptors_common.LazyImport('pandas')
|
95
97
|
logger = sky_logging.init_logger(__name__)
|
96
98
|
|
@@ -3371,12 +3373,8 @@ def show_gpus(
|
|
3371
3373
|
* ``QTY_PER_NODE`` (Kubernetes only): GPU quantities that can be requested
|
3372
3374
|
on a single node.
|
3373
3375
|
|
3374
|
-
* ``
|
3375
|
-
Kubernetes cluster.
|
3376
|
-
|
3377
|
-
* ``TOTAL_FREE_GPUS`` (Kubernetes only): Number of currently free GPUs
|
3378
|
-
in the Kubernetes cluster. This is fetched in real-time and may change
|
3379
|
-
when other users are using the cluster.
|
3376
|
+
* ``UTILIZATION`` (Kubernetes only): Total number of GPUs free / available
|
3377
|
+
in the Kubernetes cluster.
|
3380
3378
|
"""
|
3381
3379
|
# validation for the --region flag
|
3382
3380
|
if region is not None and cloud is None:
|
@@ -3415,15 +3413,16 @@ def show_gpus(
|
|
3415
3413
|
# TODO(zhwu,romilb): We should move most of these kubernetes related
|
3416
3414
|
# queries into the backend, especially behind the server.
|
3417
3415
|
def _get_kubernetes_realtime_gpu_tables(
|
3418
|
-
|
3419
|
-
|
3420
|
-
|
3416
|
+
context: Optional[str] = None,
|
3417
|
+
name_filter: Optional[str] = None,
|
3418
|
+
quantity_filter: Optional[int] = None
|
3419
|
+
) -> Tuple[List[Tuple[str, 'prettytable.PrettyTable']],
|
3420
|
+
Optional['prettytable.PrettyTable'], List[Tuple[
|
3421
|
+
str, 'models.KubernetesNodesInfo']]]:
|
3421
3422
|
if quantity_filter:
|
3422
3423
|
qty_header = 'QTY_FILTER'
|
3423
|
-
free_header = 'FILTERED_FREE_GPUS'
|
3424
3424
|
else:
|
3425
3425
|
qty_header = 'REQUESTABLE_QTY_PER_NODE'
|
3426
|
-
free_header = 'TOTAL_FREE_GPUS'
|
3427
3426
|
|
3428
3427
|
realtime_gpu_availability_lists = sdk.stream_and_get(
|
3429
3428
|
sdk.realtime_kubernetes_gpu_availability(
|
@@ -3449,41 +3448,19 @@ def show_gpus(
|
|
3449
3448
|
realtime_gpu_infos = []
|
3450
3449
|
total_gpu_info: Dict[str, List[int]] = collections.defaultdict(
|
3451
3450
|
lambda: [0, 0])
|
3451
|
+
all_nodes_info = []
|
3452
3452
|
|
3453
|
-
# TODO(kyuds): remove backwards compatibility code (else branch)
|
3454
|
-
# when API version is bumped
|
3455
3453
|
if realtime_gpu_availability_lists:
|
3456
|
-
|
3457
|
-
|
3458
|
-
|
3459
|
-
|
3460
|
-
|
3461
|
-
|
3462
|
-
|
3463
|
-
|
3464
|
-
available_qty = (gpu_availability.available
|
3465
|
-
if gpu_availability.available != -1
|
3466
|
-
else no_permissions_str)
|
3467
|
-
realtime_gpu_table.add_row([
|
3468
|
-
gpu_availability.gpu,
|
3469
|
-
_list_to_str(gpu_availability.counts),
|
3470
|
-
gpu_availability.capacity,
|
3471
|
-
available_qty,
|
3472
|
-
])
|
3473
|
-
gpu = gpu_availability.gpu
|
3474
|
-
capacity = gpu_availability.capacity
|
3475
|
-
# we want total, so skip permission denied.
|
3476
|
-
available = max(gpu_availability.available, 0)
|
3477
|
-
if capacity > 0:
|
3478
|
-
total_gpu_info[gpu][0] += capacity
|
3479
|
-
total_gpu_info[gpu][1] += available
|
3480
|
-
realtime_gpu_infos.append((ctx, realtime_gpu_table))
|
3481
|
-
else:
|
3482
|
-
# can remove this with api server version bump.
|
3483
|
-
# 2025.05.03
|
3484
|
-
availability_list = realtime_gpu_availability_lists
|
3454
|
+
if len(realtime_gpu_availability_lists[0]) != 2:
|
3455
|
+
# TODO(kyuds): for backwards compatibility, as we add new
|
3456
|
+
# context to the API server response in #5362. Remove this after
|
3457
|
+
# 0.10.0.
|
3458
|
+
realtime_gpu_availability_lists = [
|
3459
|
+
(context, realtime_gpu_availability_lists)
|
3460
|
+
]
|
3461
|
+
for (ctx, availability_list) in realtime_gpu_availability_lists:
|
3485
3462
|
realtime_gpu_table = log_utils.create_table(
|
3486
|
-
['GPU', qty_header, '
|
3463
|
+
['GPU', qty_header, 'UTILIZATION'])
|
3487
3464
|
for realtime_gpu_availability in sorted(availability_list):
|
3488
3465
|
gpu_availability = models.RealtimeGpuAvailability(
|
3489
3466
|
*realtime_gpu_availability)
|
@@ -3493,49 +3470,100 @@ def show_gpus(
|
|
3493
3470
|
realtime_gpu_table.add_row([
|
3494
3471
|
gpu_availability.gpu,
|
3495
3472
|
_list_to_str(gpu_availability.counts),
|
3496
|
-
gpu_availability.capacity,
|
3497
|
-
available_qty,
|
3473
|
+
f'{available_qty} of {gpu_availability.capacity} free',
|
3498
3474
|
])
|
3499
|
-
|
3475
|
+
gpu = gpu_availability.gpu
|
3476
|
+
capacity = gpu_availability.capacity
|
3477
|
+
# we want total, so skip permission denied.
|
3478
|
+
available = max(gpu_availability.available, 0)
|
3479
|
+
if capacity > 0:
|
3480
|
+
total_gpu_info[gpu][0] += capacity
|
3481
|
+
total_gpu_info[gpu][1] += available
|
3482
|
+
realtime_gpu_infos.append((ctx, realtime_gpu_table))
|
3483
|
+
# Collect node info for this context
|
3484
|
+
nodes_info = sdk.stream_and_get(
|
3485
|
+
sdk.kubernetes_node_info(context=ctx))
|
3486
|
+
all_nodes_info.append((ctx, nodes_info))
|
3500
3487
|
|
3501
3488
|
# display an aggregated table for all contexts
|
3502
3489
|
# if there are more than one contexts with GPUs
|
3503
3490
|
if len(realtime_gpu_infos) > 1:
|
3504
3491
|
total_realtime_gpu_table = log_utils.create_table(
|
3505
|
-
['GPU', '
|
3492
|
+
['GPU', 'UTILIZATION'])
|
3506
3493
|
for gpu, stats in total_gpu_info.items():
|
3507
|
-
total_realtime_gpu_table.add_row(
|
3494
|
+
total_realtime_gpu_table.add_row(
|
3495
|
+
[gpu, f'{stats[1]} of {stats[0]} free'])
|
3508
3496
|
else:
|
3509
3497
|
total_realtime_gpu_table = None
|
3510
3498
|
|
3511
|
-
return realtime_gpu_infos, total_realtime_gpu_table
|
3499
|
+
return realtime_gpu_infos, total_realtime_gpu_table, all_nodes_info
|
3512
3500
|
|
3513
|
-
def
|
3501
|
+
def _format_kubernetes_node_info_combined(
|
3502
|
+
contexts_info: List[Tuple[str,
|
3503
|
+
'models.KubernetesNodesInfo']]) -> str:
|
3514
3504
|
node_table = log_utils.create_table(
|
3515
|
-
['
|
3505
|
+
['CONTEXT', 'NODE', 'GPU', 'UTILIZATION'])
|
3516
3506
|
|
3517
|
-
nodes_info = sdk.stream_and_get(
|
3518
|
-
sdk.kubernetes_node_info(context=context))
|
3519
3507
|
no_permissions_str = '<no permissions>'
|
3520
|
-
|
3521
|
-
|
3522
|
-
|
3523
|
-
|
3524
|
-
|
3525
|
-
|
3508
|
+
hints = []
|
3509
|
+
|
3510
|
+
for context, nodes_info in contexts_info:
|
3511
|
+
context_name = context if context else 'default'
|
3512
|
+
if nodes_info.hint:
|
3513
|
+
hints.append(f'{context_name}: {nodes_info.hint}')
|
3514
|
+
|
3515
|
+
for node_name, node_info in nodes_info.node_info_dict.items():
|
3516
|
+
available = node_info.free[
|
3517
|
+
'accelerators_available'] if node_info.free[
|
3518
|
+
'accelerators_available'] != -1 else no_permissions_str
|
3519
|
+
acc_type = node_info.accelerator_type
|
3520
|
+
if acc_type is None:
|
3521
|
+
acc_type = '-'
|
3526
3522
|
node_table.add_row([
|
3527
|
-
node_name,
|
3528
|
-
node_info.total[
|
3523
|
+
context_name, node_name, acc_type,
|
3524
|
+
f'{available} of {node_info.total["accelerator_count"]} '
|
3525
|
+
'free'
|
3529
3526
|
])
|
3530
|
-
|
3531
|
-
|
3532
|
-
if
|
3533
|
-
k8s_per_node_acc_message +=
|
3527
|
+
|
3528
|
+
k8s_per_node_acc_message = ('Kubernetes per-node GPU availability')
|
3529
|
+
if hints:
|
3530
|
+
k8s_per_node_acc_message += ' (' + '; '.join(hints) + ')'
|
3531
|
+
|
3534
3532
|
return (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3535
3533
|
f'{k8s_per_node_acc_message}'
|
3536
3534
|
f'{colorama.Style.RESET_ALL}\n'
|
3537
3535
|
f'{node_table.get_string()}')
|
3538
3536
|
|
3537
|
+
def _format_kubernetes_realtime_gpu(
|
3538
|
+
total_table: 'prettytable.PrettyTable',
|
3539
|
+
k8s_realtime_infos: List[Tuple[str, 'prettytable.PrettyTable']],
|
3540
|
+
all_nodes_info: List[Tuple[str, 'models.KubernetesNodesInfo']],
|
3541
|
+
show_node_info: bool) -> Generator[str, None, None]:
|
3542
|
+
yield (f'{colorama.Fore.GREEN}{colorama.Style.BRIGHT}'
|
3543
|
+
'Kubernetes GPUs'
|
3544
|
+
f'{colorama.Style.RESET_ALL}')
|
3545
|
+
# print total table
|
3546
|
+
if total_table is not None:
|
3547
|
+
yield '\n'
|
3548
|
+
yield from total_table.get_string()
|
3549
|
+
|
3550
|
+
# print individual infos.
|
3551
|
+
for (ctx, k8s_realtime_table) in k8s_realtime_infos:
|
3552
|
+
yield '\n'
|
3553
|
+
# Print context header separately
|
3554
|
+
if ctx:
|
3555
|
+
context_str = f'Context: {ctx}'
|
3556
|
+
else:
|
3557
|
+
context_str = 'Default Context'
|
3558
|
+
yield (
|
3559
|
+
f'{colorama.Fore.CYAN}{context_str}{colorama.Style.RESET_ALL}\n'
|
3560
|
+
)
|
3561
|
+
yield from k8s_realtime_table.get_string()
|
3562
|
+
|
3563
|
+
if show_node_info:
|
3564
|
+
yield '\n'
|
3565
|
+
yield _format_kubernetes_node_info_combined(all_nodes_info)
|
3566
|
+
|
3539
3567
|
def _output() -> Generator[str, None, None]:
|
3540
3568
|
gpu_table = log_utils.create_table(
|
3541
3569
|
['COMMON_GPU', 'AVAILABLE_QUANTITIES'])
|
@@ -3568,7 +3596,7 @@ def show_gpus(
|
|
3568
3596
|
# If --cloud kubernetes is not specified, we want to catch
|
3569
3597
|
# the case where no GPUs are available on the cluster and
|
3570
3598
|
# print the warning at the end.
|
3571
|
-
k8s_realtime_infos, total_table = _get_kubernetes_realtime_gpu_tables(context) # pylint: disable=line-too-long
|
3599
|
+
k8s_realtime_infos, total_table, all_nodes_info = _get_kubernetes_realtime_gpu_tables(context) # pylint: disable=line-too-long
|
3572
3600
|
except ValueError as e:
|
3573
3601
|
if not cloud_is_kubernetes:
|
3574
3602
|
# Make it a note if cloud is not kubernetes
|
@@ -3577,27 +3605,12 @@ def show_gpus(
|
|
3577
3605
|
else:
|
3578
3606
|
print_section_titles = True
|
3579
3607
|
|
3580
|
-
|
3581
|
-
|
3582
|
-
|
3583
|
-
|
3584
|
-
|
3585
|
-
|
3586
|
-
yield '\n\n'
|
3587
|
-
|
3588
|
-
# print individual infos.
|
3589
|
-
for (idx,
|
3590
|
-
(ctx,
|
3591
|
-
k8s_realtime_table)) in enumerate(k8s_realtime_infos):
|
3592
|
-
context_str = f'(Context: {ctx})' if ctx else ''
|
3593
|
-
yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3594
|
-
f'Kubernetes GPUs {context_str}'
|
3595
|
-
f'{colorama.Style.RESET_ALL}\n')
|
3596
|
-
yield from k8s_realtime_table.get_string()
|
3597
|
-
yield '\n\n'
|
3598
|
-
yield _format_kubernetes_node_info(ctx)
|
3599
|
-
if idx != len(k8s_realtime_infos) - 1:
|
3600
|
-
yield '\n\n'
|
3608
|
+
yield from _format_kubernetes_realtime_gpu(
|
3609
|
+
total_table,
|
3610
|
+
k8s_realtime_infos,
|
3611
|
+
all_nodes_info,
|
3612
|
+
show_node_info=True)
|
3613
|
+
|
3601
3614
|
if kubernetes_autoscaling:
|
3602
3615
|
k8s_messages += (
|
3603
3616
|
'\n' + kubernetes_utils.KUBERNETES_AUTOSCALER_NOTE)
|
@@ -3688,31 +3701,18 @@ def show_gpus(
|
|
3688
3701
|
print_section_titles = True
|
3689
3702
|
# TODO(romilb): Show filtered per node GPU availability here as well
|
3690
3703
|
try:
|
3691
|
-
k8s_realtime_infos, total_table
|
3692
|
-
|
3693
|
-
|
3694
|
-
|
3695
|
-
|
3696
|
-
|
3697
|
-
|
3698
|
-
|
3699
|
-
'Total Kubernetes GPUs'
|
3700
|
-
f'{colorama.Style.RESET_ALL}\n')
|
3701
|
-
yield from total_table.get_string()
|
3702
|
-
yield '\n\n'
|
3703
|
-
|
3704
|
-
# print individual tables
|
3705
|
-
for (ctx, k8s_realtime_table) in k8s_realtime_infos:
|
3706
|
-
context_str = f'(Context: {ctx})' if ctx else ''
|
3707
|
-
yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3708
|
-
f'Kubernetes GPUs {context_str}'
|
3709
|
-
f'{colorama.Style.RESET_ALL}\n')
|
3710
|
-
yield from k8s_realtime_table.get_string()
|
3711
|
-
yield '\n\n'
|
3704
|
+
(k8s_realtime_infos, total_table,
|
3705
|
+
all_nodes_info) = _get_kubernetes_realtime_gpu_tables(
|
3706
|
+
context=region, name_filter=name, quantity_filter=quantity)
|
3707
|
+
|
3708
|
+
yield from _format_kubernetes_realtime_gpu(total_table,
|
3709
|
+
k8s_realtime_infos,
|
3710
|
+
all_nodes_info,
|
3711
|
+
show_node_info=False)
|
3712
3712
|
except ValueError as e:
|
3713
3713
|
# In the case of a specific accelerator, show the error message
|
3714
3714
|
# immediately (e.g., "Resources H100 not found ...")
|
3715
|
-
yield
|
3715
|
+
yield common_utils.format_exception(e, use_bracket=True)
|
3716
3716
|
if kubernetes_autoscaling:
|
3717
3717
|
k8s_messages += ('\n' +
|
3718
3718
|
kubernetes_utils.KUBERNETES_AUTOSCALER_NOTE)
|