skypilot-nightly 1.0.0.dev20250521__tar.gz → 1.0.0.dev20250522__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.dev20250521/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250522}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/client/sdk.py +72 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/__init__.py +2 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/cloud.py +6 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/gcp.py +156 -21
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/__init__.py +3 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/common.py +9 -2
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/constants.py +1 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/core.py +6 -8
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/404.html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/data/storage.py +1 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/execution.py +56 -7
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/server/core.py +4 -2
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/optimizer.py +6 -11
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/gcp/constants.py +147 -4
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/gcp/instance_utils.py +10 -0
- skypilot_nightly-1.0.0.dev20250522/sky/provision/gcp/volume_utils.py +247 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/resources.py +173 -3
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/server/core.py +2 -4
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/common.py +46 -9
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/constants.py +2 -0
- skypilot_nightly-1.0.0.dev20250522/sky/server/html/token_page.html +154 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/executor.py +3 -6
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/server.py +40 -8
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skypilot_config.py +117 -31
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/task.py +24 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/gcp-ray.yml.j2 +44 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/nebius-ray.yml.j2 +0 -2
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/admin_policy_utils.py +26 -22
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/context.py +36 -6
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/context_utils.py +15 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/resources_utils.py +14 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/schemas.py +46 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/skypilot_nightly.egg-info/SOURCES.txt +4 -2
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_config.py +7 -9
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_failover.py +6 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_optimizer_dryruns.py +28 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_optimizer_random_dag.py +2 -1
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/cloud_vm_ray_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/client/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521/sky/dashboard/out/_next/static/hvWzC5E6Q4CcKzXcWbgig → skypilot_nightly-1.0.0.dev20250522/sky/dashboard/out/_next/static/CzOVV6JpRQBRt5GhZuhyK}/_buildManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521/sky/dashboard/out/_next/static/hvWzC5E6Q4CcKzXcWbgig → skypilot_nightly-1.0.0.dev20250522/sky/dashboard/out/_next/static/CzOVV6JpRQBRt5GhZuhyK}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/236-1a3a9440417720eb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/37-d584022b0da4ac3b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/393-e1eaa440481337ec.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/480-f28cd152a98997de.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/582-683f4f27b81996dc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-33bc2bec322249b1.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-e2fc2dd1955e6c36.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/clusters-3a748bd76e5c2984.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/infra-9180cd91cee64b96.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-70756c2dad850a7e.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/pages/jobs-ecd804b9272f4a7c.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/chunks/webpack-830f59b8404e96b8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/_next/static/css/7e7ce4ff31d3977b.css +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/server/dashboard_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/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 = '417e7f813d86c03c334e9e12f38718766fc4daa5'
|
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.dev20250522'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -10,14 +10,19 @@ Usage example:
|
|
10
10
|
statuses = sky.get(request_id)
|
11
11
|
|
12
12
|
"""
|
13
|
+
import base64
|
14
|
+
import binascii
|
13
15
|
import getpass
|
16
|
+
from http import cookiejar
|
14
17
|
import json
|
15
18
|
import logging
|
16
19
|
import os
|
17
20
|
import pathlib
|
18
21
|
import subprocess
|
22
|
+
import time
|
19
23
|
import typing
|
20
24
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
25
|
+
from urllib import parse as urlparse
|
21
26
|
import webbrowser
|
22
27
|
|
23
28
|
import click
|
@@ -1841,7 +1846,73 @@ def api_login(endpoint: Optional[str] = None) -> None:
|
|
1841
1846
|
not endpoint.startswith('https://')):
|
1842
1847
|
raise click.BadParameter('Endpoint must be a valid URL.')
|
1843
1848
|
|
1844
|
-
server_common.check_server_healthy(endpoint)
|
1849
|
+
server_status = server_common.check_server_healthy(endpoint)
|
1850
|
+
if server_status == server_common.ApiServerStatus.NEEDS_AUTH:
|
1851
|
+
# We detected an auth proxy, so go through the auth proxy cookie flow.
|
1852
|
+
parsed_url = urlparse.urlparse(endpoint)
|
1853
|
+
token_url = f'{endpoint}/token'
|
1854
|
+
click.echo('Authentication is needed. Please visit this URL setup up '
|
1855
|
+
f'the token:{colorama.Style.BRIGHT}\n\n{token_url}'
|
1856
|
+
f'\n{colorama.Style.RESET_ALL}')
|
1857
|
+
if webbrowser.open(token_url):
|
1858
|
+
click.echo('Opening browser...')
|
1859
|
+
token: str = click.prompt('Paste the token')
|
1860
|
+
|
1861
|
+
# Parse the token.
|
1862
|
+
# b64decode will ignore invalid characters, but does some length and
|
1863
|
+
# padding checks.
|
1864
|
+
try:
|
1865
|
+
data = base64.b64decode(token)
|
1866
|
+
except binascii.Error as e:
|
1867
|
+
raise ValueError(f'Malformed token: {token}') from e
|
1868
|
+
logger.debug(f'Token data: {data!r}')
|
1869
|
+
try:
|
1870
|
+
cookie_dict = json.loads(data)
|
1871
|
+
except (json.JSONDecodeError, UnicodeDecodeError) as e:
|
1872
|
+
raise ValueError(f'Malformed token data: {data!r}') from e
|
1873
|
+
if not isinstance(cookie_dict, dict):
|
1874
|
+
raise ValueError(f'Malformed token JSON: {cookie_dict}')
|
1875
|
+
|
1876
|
+
cookie_jar = cookiejar.MozillaCookieJar()
|
1877
|
+
for (name, value) in cookie_dict.items():
|
1878
|
+
# dict keys in JSON must be strings
|
1879
|
+
assert isinstance(name, str)
|
1880
|
+
if not isinstance(value, str):
|
1881
|
+
raise ValueError('Malformed token - bad key/value: '
|
1882
|
+
f'{name}: {value}')
|
1883
|
+
|
1884
|
+
# See CookieJar._cookie_from_cookie_tuple
|
1885
|
+
# oauth2proxy default is Max-Age 604800
|
1886
|
+
expires = int(time.time()) + 604800
|
1887
|
+
domain = str(parsed_url.hostname)
|
1888
|
+
domain_initial_dot = domain.startswith('.')
|
1889
|
+
if not domain_initial_dot:
|
1890
|
+
domain = '.' + domain
|
1891
|
+
|
1892
|
+
cookie_jar.set_cookie(
|
1893
|
+
cookiejar.Cookie(
|
1894
|
+
version=0,
|
1895
|
+
name=name,
|
1896
|
+
value=value,
|
1897
|
+
port=None,
|
1898
|
+
port_specified=False,
|
1899
|
+
domain=domain,
|
1900
|
+
domain_specified=True,
|
1901
|
+
domain_initial_dot=domain_initial_dot,
|
1902
|
+
path='',
|
1903
|
+
path_specified=False,
|
1904
|
+
secure=False,
|
1905
|
+
expires=expires,
|
1906
|
+
discard=False,
|
1907
|
+
comment=None,
|
1908
|
+
comment_url=None,
|
1909
|
+
rest=dict(),
|
1910
|
+
))
|
1911
|
+
|
1912
|
+
# Now that the cookies are parsed, save them to the cookie jar.
|
1913
|
+
cookie_jar_path = os.path.expanduser(
|
1914
|
+
server_common.get_api_cookie_jar_path())
|
1915
|
+
cookie_jar.save(cookie_jar_path)
|
1845
1916
|
|
1846
1917
|
# Set the endpoint in the config file
|
1847
1918
|
config_path = pathlib.Path(
|
{skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/__init__.py
RENAMED
@@ -3,6 +3,7 @@
|
|
3
3
|
from sky.clouds.cloud import Cloud
|
4
4
|
from sky.clouds.cloud import cloud_in_iterable
|
5
5
|
from sky.clouds.cloud import CloudImplementationFeatures
|
6
|
+
from sky.clouds.cloud import DummyCloud
|
6
7
|
from sky.clouds.cloud import OpenPortsVersion
|
7
8
|
from sky.clouds.cloud import ProvisionerVersion
|
8
9
|
from sky.clouds.cloud import Region
|
@@ -34,6 +35,7 @@ __all__ = [
|
|
34
35
|
'Azure',
|
35
36
|
'Cloud',
|
36
37
|
'Cudo',
|
38
|
+
'DummyCloud',
|
37
39
|
'GCP',
|
38
40
|
'Lambda',
|
39
41
|
'DO',
|
{skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/clouds/cloud.py
RENAMED
@@ -888,6 +888,12 @@ class Cloud:
|
|
888
888
|
return state
|
889
889
|
|
890
890
|
|
891
|
+
class DummyCloud(Cloud):
|
892
|
+
"""A dummy Cloud that has zero egress cost from/to for optimization
|
893
|
+
purpose."""
|
894
|
+
pass
|
895
|
+
|
896
|
+
|
891
897
|
# === Helper functions ===
|
892
898
|
def cloud_in_iterable(cloud: Cloud, cloud_list: Iterable[Cloud]) -> bool:
|
893
899
|
"""Returns whether the cloud is in the given cloud list."""
|
@@ -18,6 +18,7 @@ from sky.adaptors import gcp
|
|
18
18
|
from sky.clouds import service_catalog
|
19
19
|
from sky.clouds.utils import gcp_utils
|
20
20
|
from sky.provision.gcp import constants
|
21
|
+
from sky.provision.gcp import volume_utils
|
21
22
|
from sky.utils import annotations
|
22
23
|
from sky.utils import common_utils
|
23
24
|
from sky.utils import registry
|
@@ -443,6 +444,25 @@ class GCP(clouds.Cloud):
|
|
443
444
|
disk_tier=disk_tier,
|
444
445
|
clouds='gcp')
|
445
446
|
|
447
|
+
@classmethod
|
448
|
+
def failover_disk_tier(
|
449
|
+
cls, instance_type: Optional[str],
|
450
|
+
disk_tier: Optional[resources_utils.DiskTier]
|
451
|
+
) -> Optional[resources_utils.DiskTier]:
|
452
|
+
if (disk_tier is not None and
|
453
|
+
disk_tier != resources_utils.DiskTier.BEST):
|
454
|
+
return disk_tier
|
455
|
+
# Failover disk tier from ultra to low.
|
456
|
+
all_tiers = list(reversed(resources_utils.DiskTier))
|
457
|
+
start_index = all_tiers.index(GCP._translate_disk_tier(disk_tier))
|
458
|
+
while start_index < len(all_tiers):
|
459
|
+
disk_tier = all_tiers[start_index]
|
460
|
+
ok, _ = GCP.check_disk_tier(instance_type, disk_tier)
|
461
|
+
if ok:
|
462
|
+
return disk_tier
|
463
|
+
start_index += 1
|
464
|
+
assert False, 'Low disk tier should always be supported on GCP.'
|
465
|
+
|
446
466
|
def make_deploy_resources_variables(
|
447
467
|
self,
|
448
468
|
resources: 'resources.Resources',
|
@@ -463,21 +483,6 @@ class GCP(clouds.Cloud):
|
|
463
483
|
# issue when first booted.
|
464
484
|
image_id = _DEFAULT_CPU_IMAGE_ID
|
465
485
|
|
466
|
-
def _failover_disk_tier() -> Optional[resources_utils.DiskTier]:
|
467
|
-
if (r.disk_tier is not None and
|
468
|
-
r.disk_tier != resources_utils.DiskTier.BEST):
|
469
|
-
return r.disk_tier
|
470
|
-
# Failover disk tier from ultra to low.
|
471
|
-
all_tiers = list(reversed(resources_utils.DiskTier))
|
472
|
-
start_index = all_tiers.index(GCP._translate_disk_tier(r.disk_tier))
|
473
|
-
while start_index < len(all_tiers):
|
474
|
-
disk_tier = all_tiers[start_index]
|
475
|
-
ok, _ = GCP.check_disk_tier(r.instance_type, disk_tier)
|
476
|
-
if ok:
|
477
|
-
return disk_tier
|
478
|
-
start_index += 1
|
479
|
-
assert False, 'Low disk tier should always be supported on GCP.'
|
480
|
-
|
481
486
|
r = resources
|
482
487
|
# Find GPU spec, if any.
|
483
488
|
resources_vars = {
|
@@ -491,7 +496,9 @@ class GCP(clouds.Cloud):
|
|
491
496
|
'custom_resources': None,
|
492
497
|
'use_spot': r.use_spot,
|
493
498
|
'gcp_project_id': self.get_project_id(dryrun),
|
494
|
-
**GCP._get_disk_specs(
|
499
|
+
**GCP._get_disk_specs(
|
500
|
+
r.instance_type,
|
501
|
+
GCP.failover_disk_tier(r.instance_type, r.disk_tier)),
|
495
502
|
}
|
496
503
|
enable_gpu_direct = skypilot_config.get_nested(
|
497
504
|
('gcp', 'enable_gpu_direct'),
|
@@ -593,6 +600,27 @@ class GCP(clouds.Cloud):
|
|
593
600
|
'force_enable_external_ips'] = skypilot_config.get_nested(
|
594
601
|
('gcp', 'force_enable_external_ips'), False)
|
595
602
|
|
603
|
+
volumes, device_mount_points = GCP._get_volumes_specs(
|
604
|
+
region, zones, r.instance_type, r.volumes, use_mig,
|
605
|
+
resources_vars['tpu_vm'])
|
606
|
+
resources_vars['volumes'] = volumes
|
607
|
+
|
608
|
+
resources_vars['user_data'] = None
|
609
|
+
user_data = ''
|
610
|
+
docker_run_options = []
|
611
|
+
if device_mount_points:
|
612
|
+
# Build the device_mounts array
|
613
|
+
device_mounts_array = []
|
614
|
+
for device_name, mount_point in device_mount_points.items():
|
615
|
+
device_mounts_array.append(f'["{device_name}"]="{mount_point}"')
|
616
|
+
docker_run_options.append(
|
617
|
+
f'--volume={mount_point}:{mount_point}')
|
618
|
+
device_mounts_str = '\n '.join(device_mounts_array)
|
619
|
+
|
620
|
+
# Format the template with the device_mounts array
|
621
|
+
user_data += constants.DISK_MOUNT_USER_DATA_TEMPLATE.format(
|
622
|
+
device_mounts=device_mounts_str)
|
623
|
+
|
596
624
|
# Add gVNIC from config
|
597
625
|
resources_vars['enable_gvnic'] = skypilot_config.get_nested(
|
598
626
|
('gcp', 'enable_gvnic'),
|
@@ -602,13 +630,16 @@ class GCP(clouds.Cloud):
|
|
602
630
|
('gcp', 'placement_policy'),
|
603
631
|
None,
|
604
632
|
override_configs=resources.cluster_config_overrides)
|
605
|
-
resources_vars['user_data'] = None
|
606
633
|
if enable_gpu_direct:
|
607
|
-
|
608
|
-
|
609
|
-
'docker_run_options'] = constants.GPU_DIRECT_TCPX_SPECIFIC_OPTIONS
|
634
|
+
user_data += constants.GPU_DIRECT_TCPX_USER_DATA
|
635
|
+
docker_run_options += constants.GPU_DIRECT_TCPX_SPECIFIC_OPTIONS
|
610
636
|
if placement_policy is None:
|
611
637
|
placement_policy = constants.COMPACT_GROUP_PLACEMENT_POLICY
|
638
|
+
if user_data:
|
639
|
+
resources_vars[
|
640
|
+
'user_data'] = constants.BASH_SCRIPT_START + user_data
|
641
|
+
if docker_run_options:
|
642
|
+
resources_vars['docker_run_options'] = docker_run_options
|
612
643
|
resources_vars['placement_policy'] = placement_policy
|
613
644
|
|
614
645
|
return resources_vars
|
@@ -1122,6 +1153,17 @@ class GCP(clouds.Cloud):
|
|
1122
1153
|
|
1123
1154
|
return tier2name[tier]
|
1124
1155
|
|
1156
|
+
@classmethod
|
1157
|
+
def _get_data_disk_type(
|
1158
|
+
cls,
|
1159
|
+
instance_type: Optional[str],
|
1160
|
+
disk_tier: Optional[resources_utils.DiskTier],
|
1161
|
+
) -> str:
|
1162
|
+
|
1163
|
+
tier = cls._translate_disk_tier(disk_tier)
|
1164
|
+
tier2name = volume_utils.get_data_disk_tier_mapping(instance_type)
|
1165
|
+
return tier2name[tier]
|
1166
|
+
|
1125
1167
|
@classmethod
|
1126
1168
|
def _get_disk_specs(
|
1127
1169
|
cls, instance_type: Optional[str],
|
@@ -1133,9 +1175,102 @@ class GCP(clouds.Cloud):
|
|
1133
1175
|
specs['disk_tier'] == 'pd-extreme'):
|
1134
1176
|
# Only pd-extreme supports custom iops.
|
1135
1177
|
# see https://cloud.google.com/compute/docs/disks#disk-types
|
1136
|
-
specs['disk_iops'] =
|
1178
|
+
specs['disk_iops'] = constants.PD_EXTREME_IOPS
|
1137
1179
|
return specs
|
1138
1180
|
|
1181
|
+
@classmethod
|
1182
|
+
def _get_volumes_specs(
|
1183
|
+
cls,
|
1184
|
+
region: 'clouds.Region',
|
1185
|
+
zones: Optional[List['clouds.Zone']],
|
1186
|
+
instance_type: Optional[str],
|
1187
|
+
volumes: Optional[List[Dict[str, Any]]],
|
1188
|
+
use_mig: bool,
|
1189
|
+
tpu_vm: bool,
|
1190
|
+
) -> Tuple[List[Dict[str, Any]], Dict[str, str]]:
|
1191
|
+
if volumes is None:
|
1192
|
+
return [], {}
|
1193
|
+
|
1194
|
+
project_id = cls.get_project_id()
|
1195
|
+
|
1196
|
+
volume_utils.validate_instance_volumes(instance_type, volumes)
|
1197
|
+
|
1198
|
+
volumes_specs: List[Dict[str, Any]] = []
|
1199
|
+
device_mount_points: Dict[str, str] = {}
|
1200
|
+
ssd_index = 0
|
1201
|
+
# TPU data disk index starts from 1, 0 is the boot disk
|
1202
|
+
tpu_disk_index = 1
|
1203
|
+
for i, volume in enumerate(volumes):
|
1204
|
+
volume_spec = {
|
1205
|
+
'device_name': f'sky-disk-{i}',
|
1206
|
+
'auto_delete': volume['auto_delete'],
|
1207
|
+
}
|
1208
|
+
if ('name' in volume and volume['storage_type']
|
1209
|
+
== resources_utils.StorageType.NETWORK):
|
1210
|
+
volume_info = volume_utils.check_volume_name_exist_in_region(
|
1211
|
+
project_id, region, use_mig, volume['name'])
|
1212
|
+
if volume_info is not None:
|
1213
|
+
volume_utils.check_volume_zone_match(
|
1214
|
+
volume['name'], zones, volume_info['available_zones'])
|
1215
|
+
volume_spec['source'] = volume_info['selfLink']
|
1216
|
+
volume_spec[
|
1217
|
+
'attach_mode'] = volume_utils.translate_attach_mode(
|
1218
|
+
volume['attach_mode'])
|
1219
|
+
volume_spec['storage_type'] = constants.NETWORK_STORAGE_TYPE
|
1220
|
+
volumes_specs.append(volume_spec)
|
1221
|
+
device_name = f'{constants.DEVICE_NAME_PREFIX}sky-disk-{i}'
|
1222
|
+
if tpu_vm:
|
1223
|
+
# TPU VM does not support specifying the device name,
|
1224
|
+
# so we use the default device name.
|
1225
|
+
device_name = f'{constants.DEVICE_NAME_PREFIX}persistent-disk-{tpu_disk_index}'
|
1226
|
+
tpu_disk_index += 1
|
1227
|
+
device_mount_points[device_name] = volume['path']
|
1228
|
+
continue
|
1229
|
+
if tpu_vm:
|
1230
|
+
# TODO(hailong): support creating block storage for TPU VM
|
1231
|
+
continue
|
1232
|
+
if volume['storage_type'] == resources_utils.StorageType.INSTANCE:
|
1233
|
+
device_name = f'{constants.INSTANCE_STORAGE_DEVICE_NAME_PREFIX}{ssd_index}'
|
1234
|
+
ssd_index += 1
|
1235
|
+
device_mount_points[device_name] = volume['path']
|
1236
|
+
|
1237
|
+
if instance_type is not None and instance_type in constants.SSD_AUTO_ATTACH_MACHINE_TYPES:
|
1238
|
+
# The instance storage will be attached automatically,
|
1239
|
+
# so we skip the following steps.
|
1240
|
+
continue
|
1241
|
+
|
1242
|
+
volume_spec['disk_tier'] = constants.INSTANCE_STORAGE_DISK_TYPE
|
1243
|
+
volume_spec[
|
1244
|
+
'interface_type'] = constants.INSTANCE_STORAGE_INTERFACE_TYPE
|
1245
|
+
volume_spec['storage_type'] = constants.INSTANCE_STORAGE_TYPE
|
1246
|
+
# Disk size of instance storage is fixed to 375GB
|
1247
|
+
volume_spec['disk_size'] = None
|
1248
|
+
volume_spec['auto_delete'] = True
|
1249
|
+
else:
|
1250
|
+
# TODO(hailong): this should be fixed when move the
|
1251
|
+
# disk creation out of the instance creation phase
|
1252
|
+
if not use_mig:
|
1253
|
+
volume_spec['disk_name'] = volume['name']
|
1254
|
+
device_name = f'{constants.DEVICE_NAME_PREFIX}sky-disk-{i}'
|
1255
|
+
device_mount_points[device_name] = volume['path']
|
1256
|
+
|
1257
|
+
volume_spec['storage_type'] = constants.NETWORK_STORAGE_TYPE
|
1258
|
+
if 'disk_size' in volume:
|
1259
|
+
volume_spec['disk_size'] = volume['disk_size']
|
1260
|
+
else:
|
1261
|
+
volume_spec['disk_size'] = constants.DEFAULT_DISK_SIZE
|
1262
|
+
disk_tier = cls.failover_disk_tier(instance_type,
|
1263
|
+
volume['disk_tier'])
|
1264
|
+
volume_spec['disk_tier'] = cls._get_data_disk_type(
|
1265
|
+
instance_type, disk_tier)
|
1266
|
+
if volume_spec['disk_tier'] == 'pd-extreme':
|
1267
|
+
# Only pd-extreme supports custom iops.
|
1268
|
+
# see https://cloud.google.com/compute/docs/disks#disk-types
|
1269
|
+
volume_spec['disk_iops'] = constants.PD_EXTREME_IOPS
|
1270
|
+
volumes_specs.append(volume_spec)
|
1271
|
+
|
1272
|
+
return volumes_specs, device_mount_points
|
1273
|
+
|
1139
1274
|
@classmethod
|
1140
1275
|
def _label_filter_str(cls, tag_filters: Dict[str, str]) -> str:
|
1141
1276
|
return ' '.join(f'labels.{k}={v}' for k, v in tag_filters.items())
|
@@ -9,6 +9,8 @@ from sky.clouds.service_catalog.constants import ALL_CLOUDS
|
|
9
9
|
from sky.clouds.service_catalog.constants import CATALOG_DIR
|
10
10
|
from sky.clouds.service_catalog.constants import CATALOG_SCHEMA_VERSION
|
11
11
|
from sky.clouds.service_catalog.constants import HOSTED_CATALOG_DIR_URL
|
12
|
+
from sky.clouds.service_catalog.constants import (
|
13
|
+
HOSTED_CATALOG_DIR_URL_S3_MIRROR)
|
12
14
|
from sky.utils import resources_utils
|
13
15
|
from sky.utils import subprocess_utils
|
14
16
|
|
@@ -383,6 +385,7 @@ __all__ = [
|
|
383
385
|
# Constants
|
384
386
|
'ALL_CLOUDS',
|
385
387
|
'HOSTED_CATALOG_DIR_URL',
|
388
|
+
'HOSTED_CATALOG_DIR_URL_S3_MIRROR',
|
386
389
|
'CATALOG_SCHEMA_VERSION',
|
387
390
|
'CATALOG_DIR',
|
388
391
|
]
|
@@ -197,6 +197,8 @@ def read_catalog(filename: str,
|
|
197
197
|
with filelock.FileLock(meta_path + '.lock'):
|
198
198
|
if _need_update():
|
199
199
|
url = f'{constants.HOSTED_CATALOG_DIR_URL}/{constants.CATALOG_SCHEMA_VERSION}/{filename}' # pylint: disable=line-too-long
|
200
|
+
url_fallback = f'{constants.HOSTED_CATALOG_DIR_URL_S3_MIRROR}/{constants.CATALOG_SCHEMA_VERSION}/{filename}' # pylint: disable=line-too-long
|
201
|
+
headers = {'User-Agent': 'SkyPilot/0.7'}
|
200
202
|
update_frequency_str = ''
|
201
203
|
if pull_frequency_hours is not None:
|
202
204
|
update_frequency_str = (
|
@@ -206,8 +208,13 @@ def read_catalog(filename: str,
|
|
206
208
|
f'Updating {cloud} catalog: {filename}') +
|
207
209
|
f'{update_frequency_str}'):
|
208
210
|
try:
|
209
|
-
r = requests.get(url=url,
|
210
|
-
|
211
|
+
r = requests.get(url=url, headers=headers)
|
212
|
+
if r.status_code == 429:
|
213
|
+
# fallback to s3 mirror, github introduced rate
|
214
|
+
# limit after 2025-05, see
|
215
|
+
# https://github.com/skypilot-org/skypilot/issues/5438
|
216
|
+
# for more details
|
217
|
+
r = requests.get(url=url_fallback, headers=headers)
|
211
218
|
r.raise_for_status()
|
212
219
|
except requests.exceptions.RequestException as e:
|
213
220
|
error_str = (f'Failed to fetch {cloud} catalog '
|
@@ -1,5 +1,6 @@
|
|
1
1
|
"""Constants used for service catalog."""
|
2
2
|
HOSTED_CATALOG_DIR_URL = 'https://raw.githubusercontent.com/skypilot-org/skypilot-catalog/master/catalogs' # pylint: disable=line-too-long
|
3
|
+
HOSTED_CATALOG_DIR_URL_S3_MIRROR = 'https://skypilot-catalog.s3.us-east-1.amazonaws.com/catalogs' # pylint: disable=line-too-long
|
3
4
|
CATALOG_SCHEMA_VERSION = 'v7'
|
4
5
|
CATALOG_DIR = '~/.sky/catalogs'
|
5
6
|
ALL_CLOUDS = ('aws', 'azure', 'gcp', 'ibm', 'lambda', 'scp', 'oci',
|
@@ -78,14 +78,12 @@ def optimize(
|
|
78
78
|
# is shown on `sky launch`. The optimizer is also invoked during failover,
|
79
79
|
# but we do not apply the admin policy there. We should apply the admin
|
80
80
|
# policy in the optimizer, but that will require some refactoring.
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
blocked_resources=blocked_resources,
|
88
|
-
quiet=quiet)
|
81
|
+
with admin_policy_utils.apply_and_use_config_in_current_request(
|
82
|
+
dag, request_options=request_options) as dag:
|
83
|
+
return optimizer.Optimizer.optimize(dag=dag,
|
84
|
+
minimize=minimize,
|
85
|
+
blocked_resources=blocked_resources,
|
86
|
+
quiet=quiet)
|
89
87
|
|
90
88
|
|
91
89
|
@usage_lib.entrypoint
|
{skypilot_nightly-1.0.0.dev20250521 → skypilot_nightly-1.0.0.dev20250522}/sky/dashboard/out/404.html
RENAMED
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"CzOVV6JpRQBRt5GhZuhyK","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/582-683f4f27b81996dc.js" defer=""></script><script src="/dashboard/_next/static/chunks/480-f28cd152a98997de.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-33bc2bec322249b1.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/582-683f4f27b81996dc.js" defer=""></script><script src="/dashboard/_next/static/chunks/480-f28cd152a98997de.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-33bc2bec322249b1.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"CzOVV6JpRQBRt5GhZuhyK","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/582-683f4f27b81996dc.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/480-f28cd152a98997de.js" defer=""></script><script src="/dashboard/_next/static/chunks/393-e1eaa440481337ec.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-1a3a9440417720eb.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d584022b0da4ac3b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-e2fc2dd1955e6c36.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/582-683f4f27b81996dc.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/480-f28cd152a98997de.js" defer=""></script><script src="/dashboard/_next/static/chunks/393-e1eaa440481337ec.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-1a3a9440417720eb.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d584022b0da4ac3b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-e2fc2dd1955e6c36.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"CzOVV6JpRQBRt5GhZuhyK","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Clusters | SkyPilot Dashboard</title><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="4"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/582-683f4f27b81996dc.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/480-f28cd152a98997de.js" defer=""></script><script src="/dashboard/_next/static/chunks/393-e1eaa440481337ec.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d584022b0da4ac3b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-3a748bd76e5c2984.js" defer=""></script><script src="/dashboard/_next/static/hvWzC5E6Q4CcKzXcWbgig/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/hvWzC5E6Q4CcKzXcWbgig/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><div class="h-20 w-20 flex items-center justify-center"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="w-full h-full object-contain" style="color:transparent" src="/dashboard/skypilot.svg"/></div></a></div><div class="flex items-center space-x-2 md:space-x-6 mr-6"><a class="inline-flex items-center border-b-2 border-transparent text-blue-600 px-1 pt-1 space-x-2" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center border-b-2 border-transparent hover:text-blue-600 px-1 pt-1 space-x-2" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span class="ml-2">Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div><div class="border-l border-gray-200 h-6 mx-1"></div><a class="inline-flex items-center border-b-2 border-transparent hover:text-blue-600 px-1 pt-1 space-x-2" href="/dashboard/infra"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg><span>Infra</span></a></div><div class="flex items-center space-x-1 ml-auto"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-2 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="GitHub"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Slack"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path transform="scale(0.85) translate(1.8, 1.8)" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></a><a href="https://github.com/skypilot-org/skypilot/issues/new" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Leave Feedback"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></a></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue hover:underline leading-none" href="/dashboard/clusters">Sky Clusters</a></div><div class="flex items-center"><button class="justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent h-10 px-4 py-2 text-sky-blue hover:text-sky-blue-bright flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Infra</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Started</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Actions</th></tr></thead><tbody class="[&_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&:has([role=checkbox])]:pr-0 text-center py-6 text-gray-500" colSpan="7">No active clusters</td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"hvWzC5E6Q4CcKzXcWbgig","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>Clusters | SkyPilot Dashboard</title><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="4"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/582-683f4f27b81996dc.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/480-f28cd152a98997de.js" defer=""></script><script src="/dashboard/_next/static/chunks/393-e1eaa440481337ec.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d584022b0da4ac3b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-3a748bd76e5c2984.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><div class="h-20 w-20 flex items-center justify-center"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="w-full h-full object-contain" style="color:transparent" src="/dashboard/skypilot.svg"/></div></a></div><div class="flex items-center space-x-2 md:space-x-6 mr-6"><a class="inline-flex items-center border-b-2 border-transparent text-blue-600 px-1 pt-1 space-x-2" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center border-b-2 border-transparent hover:text-blue-600 px-1 pt-1 space-x-2" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span class="ml-2">Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div><div class="border-l border-gray-200 h-6 mx-1"></div><a class="inline-flex items-center border-b-2 border-transparent hover:text-blue-600 px-1 pt-1 space-x-2" href="/dashboard/infra"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect x="4" y="4" width="16" height="16" rx="2" ry="2"></rect><rect x="9" y="9" width="6" height="6"></rect><line x1="9" y1="1" x2="9" y2="4"></line><line x1="15" y1="1" x2="15" y2="4"></line><line x1="9" y1="20" x2="9" y2="23"></line><line x1="15" y1="20" x2="15" y2="23"></line><line x1="20" y1="9" x2="23" y2="9"></line><line x1="20" y1="14" x2="23" y2="14"></line><line x1="1" y1="9" x2="4" y2="9"></line><line x1="1" y1="14" x2="4" y2="14"></line></svg><span>Infra</span></a></div><div class="flex items-center space-x-1 ml-auto"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-2 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="GitHub"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Slack"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path transform="scale(0.85) translate(1.8, 1.8)" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></a><a href="https://github.com/skypilot-org/skypilot/issues/new" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Leave Feedback"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></a></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue hover:underline leading-none" href="/dashboard/clusters">Sky Clusters</a></div><div class="flex items-center"><button class="justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent h-10 px-4 py-2 text-sky-blue hover:text-sky-blue-bright flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Infra</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Started</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Actions</th></tr></thead><tbody class="[&_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&:has([role=checkbox])]:pr-0 text-center py-6 text-gray-500" colSpan="7">No active clusters</td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"CzOVV6JpRQBRt5GhZuhyK","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-6b0d9e5031b70c58.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/7e7ce4ff31d3977b.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-8cfab319f9fb3ae8.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-6b0d9e5031b70c58.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/CzOVV6JpRQBRt5GhZuhyK/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"CzOVV6JpRQBRt5GhZuhyK","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|