skypilot-nightly 1.0.0.dev20250611__tar.gz → 1.0.0.dev20250612__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.dev20250611/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250612}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/check.py +41 -2
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/kubernetes.py +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/404.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/clusters/[cluster].html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/clusters.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/config.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/index.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/infra/[context].html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/infra.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/jobs/[job].html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/jobs.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/users.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/workspace/new.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/workspaces/[name].html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/workspaces.html +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/global_user_state.py +38 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/server/core.py +1 -68
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/jobs-controller.yaml.j2 +0 -23
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/controller_utils.py +10 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/skypilot_nightly.egg-info/SOURCES.txt +2 -6
- skypilot_nightly-1.0.0.dev20250611/sky/jobs/dashboard/dashboard.py +0 -223
- skypilot_nightly-1.0.0.dev20250611/sky/jobs/dashboard/static/favicon.ico +0 -0
- skypilot_nightly-1.0.0.dev20250611/sky/jobs/dashboard/templates/index.html +0 -831
- skypilot_nightly-1.0.0.dev20250611/sky/jobs/server/dashboard_utils.py +0 -69
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/cloud_vm_ray_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/analyze.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/ssh_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/client/cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/client/oauth.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/ssh.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611/sky/dashboard/out/_next/static/zJqasksBQ3HcqMpA2wTUZ → skypilot_nightly-1.0.0.dev20250612/sky/dashboard/out/_next/static/G3DXdMFu2Jzd-Dody9iq1}/_buildManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611/sky/dashboard/out/_next/static/zJqasksBQ3HcqMpA2wTUZ → skypilot_nightly-1.0.0.dev20250612/sky/dashboard/out/_next/static/G3DXdMFu2Jzd-Dody9iq1}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/211.692afc57e812ae1a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/350.9e123a4551f68b0d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/37-d8aebf1683522a0b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/42.d39e24467181b06b.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/443.b2242d0efcdf5f47.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/470-4d1a5dbe58a8a2b9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/491.b3d264269613fe09.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/513.211357a2914a34b2.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/600.15a0009177e86b86.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/616-d6128fa9e7cae6e6.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/664-047bc03493fda379.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/682.4dd5dc116f740b5f.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/760-a89d354797ce7af5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/798-c0525dc3f21e488d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/799-3625946b2ec2eb30.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/804-4c9fc53aa74bc191.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/843-6fcc4bf91ac45b39.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/856-0776dc6ed6000c39.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/901-b424d293275e1fd7.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/937.3759f538f11a0953.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/938-ab185187a63f9cdb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/947-6620842ef80ae879.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/969-20d54a9d998dc102.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/973-c807fc34f09c7df3.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/fd9d1056-2821b0f0cabcd8bd.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/framework-87d061ee6ed71b28.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/main-app-241eb28595532291.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/main-e0e2335212e72357.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/_app-7bbd9d39d6f9a98a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/_error-1be831200e60c5c0.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-89216c616dbaa9c5.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-451a14e7e755ebbc.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/clusters-e56b17fd85d0ba58.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/config-497a35a7ed49734a.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/index-6b0d9e5031b70c58.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/infra/[context]-d2910be98e9227cb.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/infra-780860bcc1103945.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-b3dbf38b51cb29be.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/jobs-fe233baf3d073491.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/users-c69ffcab9d6e5269.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-c8c2191328532b7d.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/pages/workspaces-82e6601baa5dd280.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/chunks/webpack-208a9812ab4f61c9.js +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/_next/static/css/5d71bfc09f184bab.css +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/skypilot.svg +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/videos/cursor-small.mp4 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/gcp/volume_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/nebius/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/ssh/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/serve/spot_placer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/html/token_page.html +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/event_loop.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/payloads.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/preconditions.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/process.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/queues/local_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/server/uvicorn.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/users/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/users/model.conf +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/users/permission.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/users/rbac.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/users/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/atomic.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/aws/get_default_security_group.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/context.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/context_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/infra_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/cleanup-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/config_map_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/deploy_remote_cluster.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/ssh-tunnel.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/rich_console_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/workspaces/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/workspaces/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/workspaces/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/workspaces/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_failover.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/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 = '88962061c851edfe5dfcfe12a1c3cf63a703dfd8'
|
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.dev20250612'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -11,6 +11,7 @@ import colorama
|
|
11
11
|
from sky import clouds as sky_clouds
|
12
12
|
from sky import exceptions
|
13
13
|
from sky import global_user_state
|
14
|
+
from sky import sky_logging
|
14
15
|
from sky import skypilot_config
|
15
16
|
from sky.adaptors import cloudflare
|
16
17
|
from sky.clouds import cloud as sky_cloud
|
@@ -23,6 +24,30 @@ from sky.utils import ux_utils
|
|
23
24
|
CHECK_MARK_EMOJI = '\U00002714' # Heavy check mark unicode
|
24
25
|
PARTY_POPPER_EMOJI = '\U0001F389' # Party popper unicode
|
25
26
|
|
27
|
+
logger = sky_logging.init_logger(__name__)
|
28
|
+
|
29
|
+
|
30
|
+
def _get_workspace_allowed_clouds(workspace: str) -> List[str]:
|
31
|
+
# Use allowed_clouds from config if it exists, otherwise check all
|
32
|
+
# clouds. Also validate names with get_cloud_tuple.
|
33
|
+
config_allowed_cloud_names = skypilot_config.get_nested(
|
34
|
+
('allowed_clouds',),
|
35
|
+
[repr(c) for c in registry.CLOUD_REGISTRY.values()] + [cloudflare.NAME])
|
36
|
+
# filter out the clouds that are disabled in the workspace config
|
37
|
+
workspace_disabled_clouds = []
|
38
|
+
for cloud in config_allowed_cloud_names:
|
39
|
+
cloud_config = skypilot_config.get_workspace_cloud(cloud.lower(),
|
40
|
+
workspace=workspace)
|
41
|
+
cloud_disabled = cloud_config.get('disabled', False)
|
42
|
+
if cloud_disabled:
|
43
|
+
workspace_disabled_clouds.append(cloud.lower())
|
44
|
+
|
45
|
+
config_allowed_cloud_names = [
|
46
|
+
c for c in config_allowed_cloud_names
|
47
|
+
if c.lower() not in workspace_disabled_clouds
|
48
|
+
]
|
49
|
+
return config_allowed_cloud_names
|
50
|
+
|
26
51
|
|
27
52
|
def check_capabilities(
|
28
53
|
quiet: bool = False,
|
@@ -132,6 +157,8 @@ def check_capabilities(
|
|
132
157
|
c for c in config_allowed_cloud_names
|
133
158
|
if c not in workspace_disabled_clouds
|
134
159
|
]
|
160
|
+
global_user_state.set_allowed_clouds(
|
161
|
+
[c for c in config_allowed_cloud_names], current_workspace_name)
|
135
162
|
|
136
163
|
# Use disallowed_cloud_names for logging the clouds that will be
|
137
164
|
# disabled because they are not included in allowed_clouds in
|
@@ -341,11 +368,22 @@ def get_cached_enabled_clouds_or_refresh(
|
|
341
368
|
raise_if_no_cloud_access is set to True.
|
342
369
|
"""
|
343
370
|
active_workspace = skypilot_config.get_active_workspace()
|
371
|
+
allowed_clouds_changed = False
|
372
|
+
cached_allowed_clouds = global_user_state.get_allowed_clouds(
|
373
|
+
active_workspace)
|
374
|
+
skypilot_config_allowed_clouds = _get_workspace_allowed_clouds(
|
375
|
+
active_workspace)
|
376
|
+
if sorted(cached_allowed_clouds) != sorted(skypilot_config_allowed_clouds):
|
377
|
+
allowed_clouds_changed = True
|
378
|
+
|
344
379
|
cached_enabled_clouds = global_user_state.get_cached_enabled_clouds(
|
345
380
|
capability, active_workspace)
|
346
|
-
if not cached_enabled_clouds:
|
381
|
+
if not cached_enabled_clouds or allowed_clouds_changed:
|
347
382
|
try:
|
348
383
|
check_capability(capability, quiet=True, workspace=active_workspace)
|
384
|
+
if allowed_clouds_changed:
|
385
|
+
global_user_state.set_allowed_clouds(
|
386
|
+
skypilot_config_allowed_clouds, active_workspace)
|
349
387
|
except SystemExit:
|
350
388
|
# If no cloud is enabled, check() will raise SystemExit.
|
351
389
|
# Here we catch it and raise the exception later only if
|
@@ -382,7 +420,8 @@ def get_cloud_credential_file_mounts(
|
|
382
420
|
cloud_file_mounts = cloud.get_credential_file_mounts()
|
383
421
|
for remote_path, local_path in cloud_file_mounts.items():
|
384
422
|
if os.path.exists(os.path.expanduser(local_path)):
|
385
|
-
file_mounts[remote_path] =
|
423
|
+
file_mounts[remote_path] = os.path.realpath(
|
424
|
+
os.path.expanduser(local_path))
|
386
425
|
# Currently, get_cached_enabled_clouds_or_refresh() does not support r2 as
|
387
426
|
# only clouds with computing instances are marked as enabled by skypilot.
|
388
427
|
# This will be removed when cloudflare/r2 is added as a 'cloud'.
|
{skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/clouds/kubernetes.py
RENAMED
@@ -772,7 +772,7 @@ class Kubernetes(clouds.Cloud):
|
|
772
772
|
"""Checks if the user has access credentials to
|
773
773
|
Kubernetes."""
|
774
774
|
# Check for port forward dependencies
|
775
|
-
logger.
|
775
|
+
logger.debug(f'Checking compute credentials for {cls.canonical_name()}')
|
776
776
|
reasons = kubernetes_utils.check_port_forward_mode_dependencies(False)
|
777
777
|
if reasons is not None:
|
778
778
|
formatted = '\n'.join(
|
{skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/dashboard/out/404.html
RENAMED
@@ -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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.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"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-89216c616dbaa9c5.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-89216c616dbaa9c5.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-0776dc6ed6000c39.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-c807fc34f09c7df3.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-ab185187a63f9cdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d8aebf1683522a0b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-451a14e7e755ebbc.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-0776dc6ed6000c39.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-c807fc34f09c7df3.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-ab185187a63f9cdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-d8aebf1683522a0b.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-451a14e7e755ebbc.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-e56b17fd85d0ba58.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-e56b17fd85d0ba58.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-497a35a7ed49734a.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-497a35a7ed49734a.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-6b0d9e5031b70c58.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-d2910be98e9227cb.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-d2910be98e9227cb.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-780860bcc1103945.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-780860bcc1103945.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-b3dbf38b51cb29be.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-b3dbf38b51cb29be.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-fe233baf3d073491.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-fe233baf3d073491.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-c69ffcab9d6e5269.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-c69ffcab9d6e5269.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-0776dc6ed6000c39.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-c807fc34f09c7df3.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-ab185187a63f9cdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/843-6fcc4bf91ac45b39.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-c8c2191328532b7d.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-d6128fa9e7cae6e6.js" defer=""></script><script src="/dashboard/_next/static/chunks/760-a89d354797ce7af5.js" defer=""></script><script src="/dashboard/_next/static/chunks/799-3625946b2ec2eb30.js" defer=""></script><script src="/dashboard/_next/static/chunks/804-4c9fc53aa74bc191.js" defer=""></script><script src="/dashboard/_next/static/chunks/664-047bc03493fda379.js" defer=""></script><script src="/dashboard/_next/static/chunks/798-c0525dc3f21e488d.js" defer=""></script><script src="/dashboard/_next/static/chunks/947-6620842ef80ae879.js" defer=""></script><script src="/dashboard/_next/static/chunks/470-4d1a5dbe58a8a2b9.js" defer=""></script><script src="/dashboard/_next/static/chunks/901-b424d293275e1fd7.js" defer=""></script><script src="/dashboard/_next/static/chunks/969-20d54a9d998dc102.js" defer=""></script><script src="/dashboard/_next/static/chunks/856-0776dc6ed6000c39.js" defer=""></script><script src="/dashboard/_next/static/chunks/973-c807fc34f09c7df3.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-ab185187a63f9cdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/843-6fcc4bf91ac45b39.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-c8c2191328532b7d.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-82e6601baa5dd280.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/5d71bfc09f184bab.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/5d71bfc09f184bab.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-208a9812ab4f61c9.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-7bbd9d39d6f9a98a.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-82e6601baa5dd280.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"G3DXdMFu2Jzd-Dody9iq1","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
{skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/global_user_state.py
RENAMED
@@ -45,6 +45,7 @@ if typing.TYPE_CHECKING:
|
|
45
45
|
logger = sky_logging.init_logger(__name__)
|
46
46
|
|
47
47
|
_ENABLED_CLOUDS_KEY_PREFIX = 'enabled_clouds_'
|
48
|
+
_ALLOWED_CLOUDS_KEY_PREFIX = 'allowed_clouds_'
|
48
49
|
|
49
50
|
_SQLALCHEMY_ENGINE: Optional[sqlalchemy.engine.Engine] = None
|
50
51
|
_DB_INIT_LOCK = threading.Lock()
|
@@ -1087,6 +1088,43 @@ def _get_enabled_clouds_key(cloud_capability: 'cloud.CloudCapability',
|
|
1087
1088
|
return _ENABLED_CLOUDS_KEY_PREFIX + workspace + '_' + cloud_capability.value
|
1088
1089
|
|
1089
1090
|
|
1091
|
+
@_init_db
|
1092
|
+
def get_allowed_clouds(workspace: str) -> List[str]:
|
1093
|
+
assert _SQLALCHEMY_ENGINE is not None
|
1094
|
+
with orm.Session(_SQLALCHEMY_ENGINE) as session:
|
1095
|
+
row = session.query(config_table).filter_by(
|
1096
|
+
key=_get_allowed_clouds_key(workspace)).first()
|
1097
|
+
if row:
|
1098
|
+
return json.loads(row.value)
|
1099
|
+
return []
|
1100
|
+
|
1101
|
+
|
1102
|
+
@_init_db
|
1103
|
+
def set_allowed_clouds(allowed_clouds: List[str], workspace: str) -> None:
|
1104
|
+
assert _SQLALCHEMY_ENGINE is not None
|
1105
|
+
with orm.Session(_SQLALCHEMY_ENGINE) as session:
|
1106
|
+
if (_SQLALCHEMY_ENGINE.dialect.name ==
|
1107
|
+
db_utils.SQLAlchemyDialect.SQLITE.value):
|
1108
|
+
insert_func = sqlite.insert
|
1109
|
+
elif (_SQLALCHEMY_ENGINE.dialect.name ==
|
1110
|
+
db_utils.SQLAlchemyDialect.POSTGRESQL.value):
|
1111
|
+
insert_func = postgresql.insert
|
1112
|
+
else:
|
1113
|
+
raise ValueError('Unsupported database dialect')
|
1114
|
+
insert_stmnt = insert_func(config_table).values(
|
1115
|
+
key=_get_allowed_clouds_key(workspace),
|
1116
|
+
value=json.dumps(allowed_clouds))
|
1117
|
+
do_update_stmt = insert_stmnt.on_conflict_do_update(
|
1118
|
+
index_elements=[config_table.c.key],
|
1119
|
+
set_={config_table.c.value: json.dumps(allowed_clouds)})
|
1120
|
+
session.execute(do_update_stmt)
|
1121
|
+
session.commit()
|
1122
|
+
|
1123
|
+
|
1124
|
+
def _get_allowed_clouds_key(workspace: str) -> str:
|
1125
|
+
return _ALLOWED_CLOUDS_KEY_PREFIX + workspace
|
1126
|
+
|
1127
|
+
|
1090
1128
|
@_init_db
|
1091
1129
|
def add_or_update_storage(storage_name: str,
|
1092
1130
|
storage_handle: 'Storage.StorageMetadata',
|
{skypilot_nightly-1.0.0.dev20250611 → skypilot_nightly-1.0.0.dev20250612}/sky/jobs/server/core.py
RENAMED
@@ -1,9 +1,6 @@
|
|
1
1
|
"""SDK functions for managed jobs."""
|
2
2
|
import os
|
3
|
-
import signal
|
4
|
-
import subprocess
|
5
3
|
import tempfile
|
6
|
-
import time
|
7
4
|
import typing
|
8
5
|
from typing import Any, Dict, List, Optional, Tuple, Union
|
9
6
|
import uuid
|
@@ -213,8 +210,6 @@ def launch(
|
|
213
210
|
'remote_env_file_path': remote_env_file_path,
|
214
211
|
'modified_catalogs':
|
215
212
|
service_catalog_common.get_modified_catalog_file_mounts(),
|
216
|
-
'dashboard_setup_cmd': managed_job_constants.DASHBOARD_SETUP_CMD,
|
217
|
-
'dashboard_user_id': common.SERVER_ID,
|
218
213
|
'priority': priority,
|
219
214
|
**controller_utils.shared_controller_vars_to_fill(
|
220
215
|
controller,
|
@@ -368,20 +363,7 @@ def _maybe_restart_controller(
|
|
368
363
|
skylet_constants.SKYPILOT_DEFAULT_WORKSPACE):
|
369
364
|
handle = core.start(
|
370
365
|
cluster_name=jobs_controller_type.value.cluster_name)
|
371
|
-
|
372
|
-
# We should not directly use execution.launch() and have the dashboard cmd
|
373
|
-
# in the task setup because since we are using detached_setup, it will
|
374
|
-
# become a job on controller which messes up the job IDs (we assume the
|
375
|
-
# job ID in controller's job queue is consistent with managed job IDs).
|
376
|
-
with rich_utils.safe_status(
|
377
|
-
ux_utils.spinner_message('Starting dashboard...')):
|
378
|
-
runner = handle.get_command_runners()[0]
|
379
|
-
runner.run(
|
380
|
-
f'export '
|
381
|
-
f'{skylet_constants.USER_ID_ENV_VAR}={common.SERVER_ID!r}; '
|
382
|
-
f'{managed_job_constants.DASHBOARD_SETUP_CMD}',
|
383
|
-
stream_logs=True,
|
384
|
-
)
|
366
|
+
|
385
367
|
controller_status = status_lib.ClusterStatus.UP
|
386
368
|
rich_utils.force_update_status(ux_utils.spinner_message(spinner_message))
|
387
369
|
|
@@ -598,55 +580,6 @@ def tail_logs(name: Optional[str],
|
|
598
580
|
tail=tail)
|
599
581
|
|
600
582
|
|
601
|
-
def start_dashboard_forwarding(refresh: bool = False) -> Tuple[int, int]:
|
602
|
-
"""Opens a dashboard for managed jobs (needs controller to be UP)."""
|
603
|
-
# TODO(SKY-1212): ideally, the controller/dashboard server should expose the
|
604
|
-
# API perhaps via REST. Then here we would (1) not have to use SSH to try to
|
605
|
-
# see if the controller is UP first, which is slow; (2) not have to run SSH
|
606
|
-
# port forwarding first (we'd just launch a local dashboard which would make
|
607
|
-
# REST API calls to the controller dashboard server).
|
608
|
-
logger.info('Starting dashboard')
|
609
|
-
hint = ('Dashboard is not available if jobs controller is not up. Run '
|
610
|
-
'a managed job first or run: sky jobs queue --refresh')
|
611
|
-
handle = _maybe_restart_controller(
|
612
|
-
refresh=refresh,
|
613
|
-
stopped_message=hint,
|
614
|
-
spinner_message='Checking jobs controller')
|
615
|
-
|
616
|
-
# SSH forward a free local port to remote's dashboard port.
|
617
|
-
remote_port = skylet_constants.SPOT_DASHBOARD_REMOTE_PORT
|
618
|
-
free_port = common_utils.find_free_port(remote_port)
|
619
|
-
runner = handle.get_command_runners()[0]
|
620
|
-
port_forward_command = ' '.join(
|
621
|
-
runner.port_forward_command(port_forward=[(free_port, remote_port)],
|
622
|
-
connect_timeout=1))
|
623
|
-
port_forward_command = (
|
624
|
-
f'{port_forward_command} '
|
625
|
-
f'> ~/sky_logs/api_server/dashboard-{common_utils.get_user_hash()}.log '
|
626
|
-
'2>&1')
|
627
|
-
logger.info(f'Forwarding port: {colorama.Style.DIM}{port_forward_command}'
|
628
|
-
f'{colorama.Style.RESET_ALL}')
|
629
|
-
|
630
|
-
ssh_process = subprocess.Popen(port_forward_command,
|
631
|
-
shell=True,
|
632
|
-
start_new_session=True)
|
633
|
-
time.sleep(3) # Added delay for ssh_command to initialize.
|
634
|
-
logger.info(f'{colorama.Fore.GREEN}Dashboard is now available at: '
|
635
|
-
f'http://127.0.0.1:{free_port}{colorama.Style.RESET_ALL}')
|
636
|
-
|
637
|
-
return free_port, ssh_process.pid
|
638
|
-
|
639
|
-
|
640
|
-
def stop_dashboard_forwarding(pid: int) -> None:
|
641
|
-
# Exit the ssh command when the context manager is closed.
|
642
|
-
try:
|
643
|
-
os.killpg(os.getpgid(pid), signal.SIGTERM)
|
644
|
-
except ProcessLookupError:
|
645
|
-
# This happens if jobs controller is auto-stopped.
|
646
|
-
pass
|
647
|
-
logger.info('Forwarding port closed. Exiting.')
|
648
|
-
|
649
|
-
|
650
583
|
@usage_lib.entrypoint
|
651
584
|
def download_logs(
|
652
585
|
name: Optional[str],
|
@@ -29,29 +29,6 @@ setup: |
|
|
29
29
|
grep -q 'export SKYPILOT_DEV=' ~/.bashrc || echo 'export SKYPILOT_DEV=1' >> ~/.bashrc
|
30
30
|
grep -q 'alias sky-env=' ~/.bashrc || echo 'alias sky-env="{{ sky_activate_python_env }}"' >> ~/.bashrc
|
31
31
|
{% endif %}
|
32
|
-
|
33
|
-
# Create systemd service file
|
34
|
-
mkdir -p ~/.config/systemd/user/
|
35
|
-
|
36
|
-
# Create systemd user service file
|
37
|
-
cat << EOF > ~/.config/systemd/user/skypilot-dashboard.service
|
38
|
-
[Unit]
|
39
|
-
Description=SkyPilot Jobs Dashboard
|
40
|
-
After=network.target
|
41
|
-
|
42
|
-
[Service]
|
43
|
-
Environment="SKYPILOT_USER_ID={{ dashboard_user_id }}"
|
44
|
-
Restart=always
|
45
|
-
StandardOutput=append:/home/$USER/.sky/job-dashboard.log
|
46
|
-
StandardError=append:/home/$USER/.sky/job-dashboard.log
|
47
|
-
ExecStart={{ sky_python_cmd }} -m sky.jobs.dashboard.dashboard
|
48
|
-
|
49
|
-
[Install]
|
50
|
-
WantedBy=default.target
|
51
|
-
EOF
|
52
|
-
|
53
|
-
export SKYPILOT_USER_ID="{{ dashboard_user_id }}"
|
54
|
-
{{ dashboard_setup_cmd }}
|
55
32
|
|
56
33
|
run: |
|
57
34
|
{{ sky_activate_python_env }}
|
@@ -285,6 +285,16 @@ def _get_cloud_dependencies_installation_commands(
|
|
285
285
|
commands.append(
|
286
286
|
'(command -v gke-gcloud-auth-plugin &>/dev/null || '
|
287
287
|
'(gcloud components install gke-gcloud-auth-plugin --quiet &>/dev/null))') # pylint: disable=line-too-long
|
288
|
+
elif isinstance(cloud, clouds.Nebius):
|
289
|
+
step_prefix = prefix_str.replace('<step>', str(len(commands) + 1))
|
290
|
+
commands.append(
|
291
|
+
f'echo -en "\\r{step_prefix}Nebius{empty_str}" && '
|
292
|
+
'curl -sSL https://storage.eu-north1.nebius.cloud/cli/install.sh ' # pylint: disable=line-too-long
|
293
|
+
'| sudo NEBIUS_INSTALL_FOLDER=/usr/local/bin bash &> /dev/null && '
|
294
|
+
'nebius profile create --profile sky '
|
295
|
+
'--endpoint api.nebius.cloud '
|
296
|
+
'--service-account-file $HOME/.nebius/credentials.json '
|
297
|
+
'&> /dev/null || echo "Unable to create Nebius profile."')
|
288
298
|
elif isinstance(cloud, clouds.Kubernetes):
|
289
299
|
step_prefix = prefix_str.replace('<step>', str(len(commands) + 1))
|
290
300
|
commands.append(
|
@@ -118,6 +118,8 @@ sky/dashboard/out/jobs.html
|
|
118
118
|
sky/dashboard/out/skypilot.svg
|
119
119
|
sky/dashboard/out/users.html
|
120
120
|
sky/dashboard/out/workspaces.html
|
121
|
+
sky/dashboard/out/_next/static/G3DXdMFu2Jzd-Dody9iq1/_buildManifest.js
|
122
|
+
sky/dashboard/out/_next/static/G3DXdMFu2Jzd-Dody9iq1/_ssgManifest.js
|
121
123
|
sky/dashboard/out/_next/static/chunks/211.692afc57e812ae1a.js
|
122
124
|
sky/dashboard/out/_next/static/chunks/350.9e123a4551f68b0d.js
|
123
125
|
sky/dashboard/out/_next/static/chunks/37-d8aebf1683522a0b.js
|
@@ -164,8 +166,6 @@ sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-b3dbf38b51cb29be.js
|
|
164
166
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-31aa8bdcb7592635.js
|
165
167
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-c8c2191328532b7d.js
|
166
168
|
sky/dashboard/out/_next/static/css/5d71bfc09f184bab.css
|
167
|
-
sky/dashboard/out/_next/static/zJqasksBQ3HcqMpA2wTUZ/_buildManifest.js
|
168
|
-
sky/dashboard/out/_next/static/zJqasksBQ3HcqMpA2wTUZ/_ssgManifest.js
|
169
169
|
sky/dashboard/out/clusters/[cluster].html
|
170
170
|
sky/dashboard/out/clusters/[cluster]/[job].html
|
171
171
|
sky/dashboard/out/infra/[context].html
|
@@ -188,12 +188,8 @@ sky/jobs/state.py
|
|
188
188
|
sky/jobs/utils.py
|
189
189
|
sky/jobs/client/__init__.py
|
190
190
|
sky/jobs/client/sdk.py
|
191
|
-
sky/jobs/dashboard/dashboard.py
|
192
|
-
sky/jobs/dashboard/static/favicon.ico
|
193
|
-
sky/jobs/dashboard/templates/index.html
|
194
191
|
sky/jobs/server/__init__.py
|
195
192
|
sky/jobs/server/core.py
|
196
|
-
sky/jobs/server/dashboard_utils.py
|
197
193
|
sky/jobs/server/server.py
|
198
194
|
sky/provision/__init__.py
|
199
195
|
sky/provision/common.py
|