skypilot-nightly 1.0.0.dev20250303__tar.gz → 1.0.0.dev20250304__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.dev20250303/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20250304}/PKG-INFO +28 -41
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/README.md +27 -40
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/cloud_vm_ray_backend.py +16 -8
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/cli.py +35 -17
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/client/cli.py +35 -17
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/client/sdk.py +32 -9
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/core.py +55 -6
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/exceptions.py +80 -1
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/client/sdk.py +7 -2
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/constants.py +1 -1
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/server/core.py +11 -6
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/utils.py +51 -21
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/constants.py +1 -1
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/payloads.py +16 -8
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/server.py +15 -2
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/constants.py +1 -1
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/job_lib.py +10 -1
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304/skypilot_nightly.egg-info}/PKG-INFO +28 -41
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/client/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/do.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/nebius.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/do_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/nebius_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/vast_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/utils/azure_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/vast.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/scheduler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/server/dashboard_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/models.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/do/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/do/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/do/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/do/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/do/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/lambda_cloud/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/lambda_cloud/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/lambda_cloud/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/nebius/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/nebius/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/nebius/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/nebius/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/oci/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/oci/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/oci/query_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/api/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/api/commands.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/api/pods.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vast/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vast/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vast/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vast/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/client/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/client/sdk.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/server/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/server/server.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/html/log.html +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/executor.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/queues/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/queues/mp_queue.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/requests.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/serializers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/serializers/decoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/requests/serializers/encoders.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/server/stream_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/setup_files/dependencies.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/do-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/nebius-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/skypilot-server-kubernetes-proxy.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/vast-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/templates/websocket_proxy.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/annotations.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/cluster_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/config_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/control_master_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/deploy_remote_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/exec_kubeconfig_converter.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/kubernetes_deploy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/message_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_smoke.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20250303 → skypilot_nightly-1.0.0.dev20250304}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20250304
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -241,13 +241,13 @@ pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidst
|
|
241
241
|
</p>
|
242
242
|
|
243
243
|
|
244
|
-
## Getting
|
244
|
+
## Getting started
|
245
245
|
You can find our documentation [here](https://docs.skypilot.co/).
|
246
246
|
- [Installation](https://docs.skypilot.co/en/latest/getting-started/installation.html)
|
247
247
|
- [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html)
|
248
248
|
- [CLI reference](https://docs.skypilot.co/en/latest/reference/cli.html)
|
249
249
|
|
250
|
-
## SkyPilot in 1
|
250
|
+
## SkyPilot in 1 minute
|
251
251
|
|
252
252
|
A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.
|
253
253
|
|
@@ -299,59 +299,46 @@ SkyPilot then performs the heavy-lifting for you, including:
|
|
299
299
|
</p>
|
300
300
|
|
301
301
|
|
302
|
-
|
302
|
+
See [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
|
303
303
|
|
304
|
-
##
|
304
|
+
## Runnable examples
|
305
|
+
|
306
|
+
See [**SkyPilot examples**](https://docs.skypilot.co/en/docs-examples/examples/index.html) that cover: development, training, serving, LLM models, AI apps, and common frameworks.
|
307
|
+
|
308
|
+
Latest featured examples:
|
309
|
+
|
310
|
+
| Task | Examples |
|
311
|
+
|----------|----------|
|
312
|
+
| Training | [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [Finetune Llama 3](https://docs.skypilot.co/en/latest/examples/training/llama-3_1-finetuning.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
|
313
|
+
| Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
|
314
|
+
| Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
|
315
|
+
| AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
|
316
|
+
| Common frameworks | [Airflow](https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html), [Jupyter](https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html) |
|
317
|
+
|
318
|
+
Source files and more examples can be found in [`llm/`](https://github.com/skypilot-org/skypilot/tree/master/llm) and [`examples/`](https://github.com/skypilot-org/skypilot/tree/master/examples).
|
319
|
+
|
320
|
+
## More information
|
305
321
|
To learn more, see [SkyPilot Overview](https://docs.skypilot.co/en/latest/overview.html), [SkyPilot docs](https://docs.skypilot.co/en/latest/), and [SkyPilot blog](https://blog.skypilot.co/).
|
306
322
|
|
307
|
-
|
308
|
-
Runnable examples:
|
309
|
-
- [**AI Gallery**](https://docs.skypilot.co/en/latest/gallery/index.html)
|
310
|
-
- LLMs on SkyPilot
|
311
|
-
- [DeepSeek-R1](./llm/deepseek-r1/)
|
312
|
-
- [DeepSeek-Janus](./llm/deepseek-janus/)
|
313
|
-
- [Llama 3.2: lightweight and vision models](./llm/llama-3_2/)
|
314
|
-
- [Pixtral](./llm/pixtral/)
|
315
|
-
- [Llama 3.1 finetuning](./llm/llama-3_1-finetuning/) and [serving](./llm/llama-3_1/)
|
316
|
-
- [GPT-2 via `llm.c`](./llm/gpt-2/)
|
317
|
-
- [Llama 3](./llm/llama-3/)
|
318
|
-
- [Qwen](./llm/qwen/)
|
319
|
-
- [Databricks DBRX](./llm/dbrx/)
|
320
|
-
- [Gemma](./llm/gemma/)
|
321
|
-
- [Mixtral 8x7B](./llm/mixtral/); [Mistral 7B](https://docs.mistral.ai/self-deployment/skypilot/) (from official Mistral team)
|
322
|
-
- [Code Llama](./llm/codellama/)
|
323
|
-
- [vLLM: Serving LLM 24x Faster On the Cloud](./llm/vllm/) (from official vLLM team)
|
324
|
-
- [SGLang: Fast and Expressive LLM Serving On the Cloud](./llm/sglang/) (from official SGLang team)
|
325
|
-
- [Vicuna chatbots: Training & Serving](./llm/vicuna/) (from official Vicuna team)
|
326
|
-
- [Train your own Vicuna on Llama-2](./llm/vicuna-llama-2/)
|
327
|
-
- [Self-Hosted Llama-2 Chatbot](./llm/llama-2/)
|
328
|
-
- [Ollama: Quantized LLMs on CPUs](./llm/ollama/)
|
329
|
-
- [LoRAX](./llm/lorax/)
|
330
|
-
- [QLoRA](https://github.com/artidoro/qlora/pull/132)
|
331
|
-
- [LLaMA-LoRA-Tuner](https://github.com/zetavg/LLaMA-LoRA-Tuner#run-on-a-cloud-service-via-skypilot)
|
332
|
-
- [Tabby: Self-hosted AI coding assistant](https://github.com/TabbyML/tabby/blob/bed723fcedb44a6b867ce22a7b1f03d2f3531c1e/experimental/eval/skypilot.yaml)
|
333
|
-
- [LocalGPT](./llm/localgpt)
|
334
|
-
- [Falcon](./llm/falcon)
|
335
|
-
- Add yours here & see more in [`llm/`](./llm)!
|
336
|
-
- Framework examples: [Vector Database](./examples/vector_database/), [PyTorch DDP](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_distributed_torch.yaml), [DeepSpeed](./examples/deepspeed-multinode/sky.yaml), [JAX/Flax on TPU](https://github.com/skypilot-org/skypilot/blob/master/examples/tpu/tpuvm_mnist.yaml), [Stable Diffusion](https://github.com/skypilot-org/skypilot/tree/master/examples/stable_diffusion), [Detectron2](https://github.com/skypilot-org/skypilot/blob/master/examples/detectron2_docker.yaml), [Distributed](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_distributed_tf_app.py) [TensorFlow](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_app_storage.yaml), [Ray Train](examples/distributed_ray_train/ray_train.yaml), [NeMo](https://github.com/skypilot-org/skypilot/blob/master/examples/nemo/), [programmatic grid search](https://github.com/skypilot-org/skypilot/blob/master/examples/huggingface_glue_imdb_grid_search_app.py), [Docker](https://github.com/skypilot-org/skypilot/blob/master/examples/docker/echo_app.yaml), [Cog](https://github.com/skypilot-org/skypilot/blob/master/examples/cog/), [Unsloth](https://github.com/skypilot-org/skypilot/blob/master/examples/unsloth/unsloth.yaml), [Ollama](https://github.com/skypilot-org/skypilot/blob/master/llm/ollama), [llm.c](https://github.com/skypilot-org/skypilot/tree/master/llm/gpt-2), [Airflow](./examples/airflow/training_workflow) and [many more (`examples/`)](./examples).
|
337
|
-
|
338
|
-
Case Studies and Integrations: [Community Spotlights](https://blog.skypilot.co/community/)
|
323
|
+
Case studies and integrations: [Community Spotlights](https://blog.skypilot.co/community/)
|
339
324
|
|
340
325
|
Follow updates:
|
341
|
-
- [Twitter](https://twitter.com/skypilot_org)
|
342
326
|
- [Slack](http://slack.skypilot.co)
|
327
|
+
- [X / Twitter](https://twitter.com/skypilot_org)
|
328
|
+
- [LinkedIn](https://www.linkedin.com/company/skypilot-oss/)
|
343
329
|
- [SkyPilot Blog](https://blog.skypilot.co/) ([Introductory blog post](https://blog.skypilot.co/introducing-skypilot/))
|
344
330
|
|
345
331
|
Read the research:
|
346
332
|
- [SkyPilot paper](https://www.usenix.org/system/files/nsdi23-yang-zongheng.pdf) and [talk](https://www.usenix.org/conference/nsdi23/presentation/yang-zongheng) (NSDI 2023)
|
347
333
|
- [Sky Computing whitepaper](https://arxiv.org/abs/2205.07147)
|
348
334
|
- [Sky Computing vision paper](https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s02-stoica.pdf) (HotOS 2021)
|
349
|
-
- [
|
335
|
+
- [SkyServe: AI serving across regions and clouds](https://arxiv.org/pdf/2411.01438) (EuroSys 2025)
|
336
|
+
- [Managed jobs spot instance policy](https://www.usenix.org/conference/nsdi24/presentation/wu-zhanghao) (NSDI 2024)
|
350
337
|
|
351
338
|
SkyPilot was initially started at the [Sky Computing Lab](https://sky.cs.berkeley.edu) at UC Berkeley and has since gained many industry contributors. To read about the project's origin and vision, see [Concept: Sky Computing](https://docs.skypilot.co/en/latest/sky-computing.html).
|
352
339
|
|
353
|
-
##
|
354
|
-
We are excited to hear your feedback
|
340
|
+
## Questions and feedback
|
341
|
+
We are excited to hear your feedback:
|
355
342
|
* For issues and feature requests, please [open a GitHub issue](https://github.com/skypilot-org/skypilot/issues/new).
|
356
343
|
* For questions, please use [GitHub Discussions](https://github.com/skypilot-org/skypilot/discussions).
|
357
344
|
|
@@ -84,13 +84,13 @@ pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidst
|
|
84
84
|
</p>
|
85
85
|
|
86
86
|
|
87
|
-
## Getting
|
87
|
+
## Getting started
|
88
88
|
You can find our documentation [here](https://docs.skypilot.co/).
|
89
89
|
- [Installation](https://docs.skypilot.co/en/latest/getting-started/installation.html)
|
90
90
|
- [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html)
|
91
91
|
- [CLI reference](https://docs.skypilot.co/en/latest/reference/cli.html)
|
92
92
|
|
93
|
-
## SkyPilot in 1
|
93
|
+
## SkyPilot in 1 minute
|
94
94
|
|
95
95
|
A SkyPilot task specifies: resource requirements, data to be synced, setup commands, and the task commands.
|
96
96
|
|
@@ -142,59 +142,46 @@ SkyPilot then performs the heavy-lifting for you, including:
|
|
142
142
|
</p>
|
143
143
|
|
144
144
|
|
145
|
-
|
145
|
+
See [Quickstart](https://docs.skypilot.co/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
|
146
146
|
|
147
|
-
##
|
147
|
+
## Runnable examples
|
148
|
+
|
149
|
+
See [**SkyPilot examples**](https://docs.skypilot.co/en/docs-examples/examples/index.html) that cover: development, training, serving, LLM models, AI apps, and common frameworks.
|
150
|
+
|
151
|
+
Latest featured examples:
|
152
|
+
|
153
|
+
| Task | Examples |
|
154
|
+
|----------|----------|
|
155
|
+
| Training | [PyTorch](https://docs.skypilot.co/en/latest/getting-started/tutorial.html), [DeepSpeed](https://docs.skypilot.co/en/latest/examples/training/deepspeed.html), [Finetune Llama 3](https://docs.skypilot.co/en/latest/examples/training/llama-3_1-finetuning.html), [NeMo](https://docs.skypilot.co/en/latest/examples/training/nemo.html), [Ray](https://docs.skypilot.co/en/latest/examples/training/ray.html), [Unsloth](https://docs.skypilot.co/en/latest/examples/training/unsloth.html), [Jax/TPU](https://docs.skypilot.co/en/latest/examples/training/tpu.html) |
|
156
|
+
| Serving | [vLLM](https://docs.skypilot.co/en/latest/examples/serving/vllm.html), [SGLang](https://docs.skypilot.co/en/latest/examples/serving/sglang.html), [Ollama](https://docs.skypilot.co/en/latest/examples/serving/ollama.html) |
|
157
|
+
| Models | [DeepSeek-R1](https://docs.skypilot.co/en/latest/examples/models/deepseek-r1.html), [Llama 3](https://docs.skypilot.co/en/latest/examples/models/llama-3.html), [CodeLlama](https://docs.skypilot.co/en/latest/examples/models/codellama.html), [Qwen](https://docs.skypilot.co/en/latest/examples/models/qwen.html), [Mixtral](https://docs.skypilot.co/en/latest/examples/models/mixtral.html) |
|
158
|
+
| AI apps | [RAG](https://docs.skypilot.co/en/latest/examples/applications/rag.html), [vector databases](https://docs.skypilot.co/en/latest/examples/applications/vector_database.html) (ChromaDB, CLIP) |
|
159
|
+
| Common frameworks | [Airflow](https://docs.skypilot.co/en/latest/examples/frameworks/airflow.html), [Jupyter](https://docs.skypilot.co/en/latest/examples/frameworks/jupyter.html) |
|
160
|
+
|
161
|
+
Source files and more examples can be found in [`llm/`](https://github.com/skypilot-org/skypilot/tree/master/llm) and [`examples/`](https://github.com/skypilot-org/skypilot/tree/master/examples).
|
162
|
+
|
163
|
+
## More information
|
148
164
|
To learn more, see [SkyPilot Overview](https://docs.skypilot.co/en/latest/overview.html), [SkyPilot docs](https://docs.skypilot.co/en/latest/), and [SkyPilot blog](https://blog.skypilot.co/).
|
149
165
|
|
150
|
-
|
151
|
-
Runnable examples:
|
152
|
-
- [**AI Gallery**](https://docs.skypilot.co/en/latest/gallery/index.html)
|
153
|
-
- LLMs on SkyPilot
|
154
|
-
- [DeepSeek-R1](./llm/deepseek-r1/)
|
155
|
-
- [DeepSeek-Janus](./llm/deepseek-janus/)
|
156
|
-
- [Llama 3.2: lightweight and vision models](./llm/llama-3_2/)
|
157
|
-
- [Pixtral](./llm/pixtral/)
|
158
|
-
- [Llama 3.1 finetuning](./llm/llama-3_1-finetuning/) and [serving](./llm/llama-3_1/)
|
159
|
-
- [GPT-2 via `llm.c`](./llm/gpt-2/)
|
160
|
-
- [Llama 3](./llm/llama-3/)
|
161
|
-
- [Qwen](./llm/qwen/)
|
162
|
-
- [Databricks DBRX](./llm/dbrx/)
|
163
|
-
- [Gemma](./llm/gemma/)
|
164
|
-
- [Mixtral 8x7B](./llm/mixtral/); [Mistral 7B](https://docs.mistral.ai/self-deployment/skypilot/) (from official Mistral team)
|
165
|
-
- [Code Llama](./llm/codellama/)
|
166
|
-
- [vLLM: Serving LLM 24x Faster On the Cloud](./llm/vllm/) (from official vLLM team)
|
167
|
-
- [SGLang: Fast and Expressive LLM Serving On the Cloud](./llm/sglang/) (from official SGLang team)
|
168
|
-
- [Vicuna chatbots: Training & Serving](./llm/vicuna/) (from official Vicuna team)
|
169
|
-
- [Train your own Vicuna on Llama-2](./llm/vicuna-llama-2/)
|
170
|
-
- [Self-Hosted Llama-2 Chatbot](./llm/llama-2/)
|
171
|
-
- [Ollama: Quantized LLMs on CPUs](./llm/ollama/)
|
172
|
-
- [LoRAX](./llm/lorax/)
|
173
|
-
- [QLoRA](https://github.com/artidoro/qlora/pull/132)
|
174
|
-
- [LLaMA-LoRA-Tuner](https://github.com/zetavg/LLaMA-LoRA-Tuner#run-on-a-cloud-service-via-skypilot)
|
175
|
-
- [Tabby: Self-hosted AI coding assistant](https://github.com/TabbyML/tabby/blob/bed723fcedb44a6b867ce22a7b1f03d2f3531c1e/experimental/eval/skypilot.yaml)
|
176
|
-
- [LocalGPT](./llm/localgpt)
|
177
|
-
- [Falcon](./llm/falcon)
|
178
|
-
- Add yours here & see more in [`llm/`](./llm)!
|
179
|
-
- Framework examples: [Vector Database](./examples/vector_database/), [PyTorch DDP](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_distributed_torch.yaml), [DeepSpeed](./examples/deepspeed-multinode/sky.yaml), [JAX/Flax on TPU](https://github.com/skypilot-org/skypilot/blob/master/examples/tpu/tpuvm_mnist.yaml), [Stable Diffusion](https://github.com/skypilot-org/skypilot/tree/master/examples/stable_diffusion), [Detectron2](https://github.com/skypilot-org/skypilot/blob/master/examples/detectron2_docker.yaml), [Distributed](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_distributed_tf_app.py) [TensorFlow](https://github.com/skypilot-org/skypilot/blob/master/examples/resnet_app_storage.yaml), [Ray Train](examples/distributed_ray_train/ray_train.yaml), [NeMo](https://github.com/skypilot-org/skypilot/blob/master/examples/nemo/), [programmatic grid search](https://github.com/skypilot-org/skypilot/blob/master/examples/huggingface_glue_imdb_grid_search_app.py), [Docker](https://github.com/skypilot-org/skypilot/blob/master/examples/docker/echo_app.yaml), [Cog](https://github.com/skypilot-org/skypilot/blob/master/examples/cog/), [Unsloth](https://github.com/skypilot-org/skypilot/blob/master/examples/unsloth/unsloth.yaml), [Ollama](https://github.com/skypilot-org/skypilot/blob/master/llm/ollama), [llm.c](https://github.com/skypilot-org/skypilot/tree/master/llm/gpt-2), [Airflow](./examples/airflow/training_workflow) and [many more (`examples/`)](./examples).
|
180
|
-
|
181
|
-
Case Studies and Integrations: [Community Spotlights](https://blog.skypilot.co/community/)
|
166
|
+
Case studies and integrations: [Community Spotlights](https://blog.skypilot.co/community/)
|
182
167
|
|
183
168
|
Follow updates:
|
184
|
-
- [Twitter](https://twitter.com/skypilot_org)
|
185
169
|
- [Slack](http://slack.skypilot.co)
|
170
|
+
- [X / Twitter](https://twitter.com/skypilot_org)
|
171
|
+
- [LinkedIn](https://www.linkedin.com/company/skypilot-oss/)
|
186
172
|
- [SkyPilot Blog](https://blog.skypilot.co/) ([Introductory blog post](https://blog.skypilot.co/introducing-skypilot/))
|
187
173
|
|
188
174
|
Read the research:
|
189
175
|
- [SkyPilot paper](https://www.usenix.org/system/files/nsdi23-yang-zongheng.pdf) and [talk](https://www.usenix.org/conference/nsdi23/presentation/yang-zongheng) (NSDI 2023)
|
190
176
|
- [Sky Computing whitepaper](https://arxiv.org/abs/2205.07147)
|
191
177
|
- [Sky Computing vision paper](https://sigops.org/s/conferences/hotos/2021/papers/hotos21-s02-stoica.pdf) (HotOS 2021)
|
192
|
-
- [
|
178
|
+
- [SkyServe: AI serving across regions and clouds](https://arxiv.org/pdf/2411.01438) (EuroSys 2025)
|
179
|
+
- [Managed jobs spot instance policy](https://www.usenix.org/conference/nsdi24/presentation/wu-zhanghao) (NSDI 2024)
|
193
180
|
|
194
181
|
SkyPilot was initially started at the [Sky Computing Lab](https://sky.cs.berkeley.edu) at UC Berkeley and has since gained many industry contributors. To read about the project's origin and vision, see [Concept: Sky Computing](https://docs.skypilot.co/en/latest/sky-computing.html).
|
195
182
|
|
196
|
-
##
|
197
|
-
We are excited to hear your feedback
|
183
|
+
## Questions and feedback
|
184
|
+
We are excited to hear your feedback:
|
198
185
|
* For issues and feature requests, please [open a GitHub issue](https://github.com/skypilot-org/skypilot/issues/new).
|
199
186
|
* For questions, please use [GitHub Discussions](https://github.com/skypilot-org/skypilot/discussions).
|
200
187
|
|
@@ -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 = '5c126400a3a3791b34beebd5e7b5a3717efd9505'
|
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.dev20250304'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -3823,6 +3823,10 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3823
3823
|
follow: Whether to follow the logs.
|
3824
3824
|
tail: The number of lines to display from the end of the
|
3825
3825
|
log file. If 0, print all lines.
|
3826
|
+
|
3827
|
+
Returns:
|
3828
|
+
The exit code of the tail command. Returns code 100 if the job has
|
3829
|
+
failed. See exceptions.JobExitCode for possible return codes.
|
3826
3830
|
"""
|
3827
3831
|
code = job_lib.JobLibCodeGen.tail_logs(job_id,
|
3828
3832
|
managed_job_id=managed_job_id,
|
@@ -3856,7 +3860,7 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3856
3860
|
job_id: Optional[int] = None,
|
3857
3861
|
job_name: Optional[str] = None,
|
3858
3862
|
controller: bool = False,
|
3859
|
-
follow: bool = True) ->
|
3863
|
+
follow: bool = True) -> int:
|
3860
3864
|
# if job_name is not None, job_id should be None
|
3861
3865
|
assert job_name is None or job_id is None, (job_name, job_id)
|
3862
3866
|
code = managed_jobs.ManagedJobCodeGen.stream_logs(
|
@@ -3869,13 +3873,17 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3869
3873
|
signal.signal(signal.SIGTSTP, backend_utils.stop_handler)
|
3870
3874
|
|
3871
3875
|
# Refer to the notes in tail_logs.
|
3872
|
-
|
3873
|
-
|
3874
|
-
|
3875
|
-
|
3876
|
-
|
3877
|
-
|
3878
|
-
|
3876
|
+
try:
|
3877
|
+
returncode = self.run_on_head(
|
3878
|
+
handle,
|
3879
|
+
code,
|
3880
|
+
stream_logs=True,
|
3881
|
+
process_stream=False,
|
3882
|
+
ssh_mode=command_runner.SshMode.INTERACTIVE,
|
3883
|
+
)
|
3884
|
+
except SystemExit as e:
|
3885
|
+
returncode = e.code
|
3886
|
+
return returncode
|
3879
3887
|
|
3880
3888
|
def sync_down_managed_job_logs(
|
3881
3889
|
self,
|
@@ -1227,11 +1227,15 @@ def launch(
|
|
1227
1227
|
clusters=[handle.get_cluster_name()])
|
1228
1228
|
# job_id will be None if no job was submitted (e.g. no entrypoint
|
1229
1229
|
# provided)
|
1230
|
+
returncode = 0
|
1230
1231
|
if not detach_run and job_id is not None:
|
1231
|
-
sdk.tail_logs(handle.get_cluster_name(),
|
1232
|
+
returncode = sdk.tail_logs(handle.get_cluster_name(),
|
1233
|
+
job_id,
|
1234
|
+
follow=True)
|
1232
1235
|
click.secho(
|
1233
1236
|
ux_utils.command_hint_messages(ux_utils.CommandHintType.CLUSTER_JOB,
|
1234
1237
|
job_id, handle.get_cluster_name()))
|
1238
|
+
sys.exit(returncode)
|
1235
1239
|
|
1236
1240
|
|
1237
1241
|
@cli.command(cls=_DocumentedCodeCommand)
|
@@ -1377,7 +1381,8 @@ def exec(cluster: Optional[str], cluster_option: Optional[str],
|
|
1377
1381
|
job_id_handle = _async_call_or_wait(request_id, async_call, 'sky.exec')
|
1378
1382
|
if not async_call and not detach_run:
|
1379
1383
|
job_id, _ = job_id_handle
|
1380
|
-
sdk.tail_logs(cluster, job_id, follow=True)
|
1384
|
+
returncode = sdk.tail_logs(cluster, job_id, follow=True)
|
1385
|
+
sys.exit(returncode)
|
1381
1386
|
|
1382
1387
|
|
1383
1388
|
def _handle_jobs_queue_request(
|
@@ -2121,12 +2126,20 @@ def logs(
|
|
2121
2126
|
one job_id can be provided.
|
2122
2127
|
|
2123
2128
|
2. If ``--status`` is specified, print the status of the job and exit with
|
2124
|
-
returncode 0 if the job succeeded
|
2125
|
-
be specified.
|
2129
|
+
returncode 0 if the job succeeded. At most one job_id can
|
2130
|
+
be specified. Other possible return codes:
|
2131
|
+
|
2132
|
+
- 100: job failed.
|
2133
|
+
- 101: job not finished.
|
2134
|
+
- 102: job not found.
|
2135
|
+
- 103: job was cancelled by the user.
|
2126
2136
|
|
2127
2137
|
3. If ``--sync-down`` is specified, the logs of the job will be downloaded
|
2128
2138
|
from the cluster and saved to the local machine under
|
2129
|
-
``~/sky_logs``.
|
2139
|
+
``~/sky_logs``. Multiple job_ids can be specified.
|
2140
|
+
|
2141
|
+
4. If the job fails or fetching the logs fails, the command will exit with
|
2142
|
+
a non-zero return code.
|
2130
2143
|
"""
|
2131
2144
|
if sync_down and status:
|
2132
2145
|
raise click.UsageError(
|
@@ -2174,17 +2187,18 @@ def logs(
|
|
2174
2187
|
# it will return {None: None}.
|
2175
2188
|
if job_id is None:
|
2176
2189
|
click.secho(f'No job found on cluster {cluster!r}.', fg='red')
|
2177
|
-
sys.exit(
|
2190
|
+
sys.exit(exceptions.JobExitCode.NOT_FOUND)
|
2178
2191
|
job_status = list(job_statuses.values())[0]
|
2179
2192
|
job_status_str = job_status.value if job_status is not None else 'None'
|
2180
2193
|
click.echo(f'Job {job_id}: {job_status_str}')
|
2181
2194
|
if job_status == job_lib.JobStatus.SUCCEEDED:
|
2182
2195
|
return
|
2183
2196
|
else:
|
2197
|
+
returncode = exceptions.JobExitCode.from_job_status(job_status)
|
2184
2198
|
if job_status is None:
|
2185
2199
|
id_str = '' if job_id is None else f'{job_id} '
|
2186
2200
|
click.secho(f'Job {id_str}not found', fg='red')
|
2187
|
-
sys.exit(
|
2201
|
+
sys.exit(returncode)
|
2188
2202
|
|
2189
2203
|
job_str = f'job {job_id}'
|
2190
2204
|
if job_id is None:
|
@@ -2194,7 +2208,8 @@ def logs(
|
|
2194
2208
|
f'{colorama.Style.RESET_ALL}')
|
2195
2209
|
|
2196
2210
|
# Stream logs from the server.
|
2197
|
-
sdk.tail_logs(cluster, job_id, follow, tail=tail)
|
2211
|
+
returncode = sdk.tail_logs(cluster, job_id, follow, tail=tail)
|
2212
|
+
sys.exit(returncode)
|
2198
2213
|
|
2199
2214
|
|
2200
2215
|
@cli.command()
|
@@ -3729,6 +3744,7 @@ def storage_delete(names: List[str], all: bool, yes: bool, async_call: bool): #
|
|
3729
3744
|
if not storages:
|
3730
3745
|
click.echo('No storage(s) to delete.')
|
3731
3746
|
return
|
3747
|
+
names = [storage['name'] for storage in storages]
|
3732
3748
|
else:
|
3733
3749
|
names = _get_glob_storages(names)
|
3734
3750
|
if names:
|
@@ -3893,10 +3909,11 @@ def jobs_launch(
|
|
3893
3909
|
'sky.jobs.launch')
|
3894
3910
|
if not async_call and not detach_run:
|
3895
3911
|
job_id = job_id_handle[0]
|
3896
|
-
managed_jobs.tail_logs(name=None,
|
3897
|
-
|
3898
|
-
|
3899
|
-
|
3912
|
+
returncode = managed_jobs.tail_logs(name=None,
|
3913
|
+
job_id=job_id,
|
3914
|
+
follow=True,
|
3915
|
+
controller=False)
|
3916
|
+
sys.exit(returncode)
|
3900
3917
|
|
3901
3918
|
|
3902
3919
|
@jobs.command('queue', cls=_DocumentedCodeCommand)
|
@@ -4127,11 +4144,12 @@ def jobs_logs(name: Optional[str], job_id: Optional[int], follow: bool,
|
|
4127
4144
|
logger.info(f'{fore.CYAN}Job {job} logs{controller_str}: '
|
4128
4145
|
f'{log_local_path}{style.RESET_ALL}')
|
4129
4146
|
else:
|
4130
|
-
managed_jobs.tail_logs(name=name,
|
4131
|
-
|
4132
|
-
|
4133
|
-
|
4134
|
-
|
4147
|
+
returncode = managed_jobs.tail_logs(name=name,
|
4148
|
+
job_id=job_id,
|
4149
|
+
follow=follow,
|
4150
|
+
controller=controller,
|
4151
|
+
refresh=refresh)
|
4152
|
+
sys.exit(returncode)
|
4135
4153
|
except exceptions.ClusterNotUpError:
|
4136
4154
|
with ux_utils.print_exception_no_traceback():
|
4137
4155
|
raise
|
@@ -1227,11 +1227,15 @@ def launch(
|
|
1227
1227
|
clusters=[handle.get_cluster_name()])
|
1228
1228
|
# job_id will be None if no job was submitted (e.g. no entrypoint
|
1229
1229
|
# provided)
|
1230
|
+
returncode = 0
|
1230
1231
|
if not detach_run and job_id is not None:
|
1231
|
-
sdk.tail_logs(handle.get_cluster_name(),
|
1232
|
+
returncode = sdk.tail_logs(handle.get_cluster_name(),
|
1233
|
+
job_id,
|
1234
|
+
follow=True)
|
1232
1235
|
click.secho(
|
1233
1236
|
ux_utils.command_hint_messages(ux_utils.CommandHintType.CLUSTER_JOB,
|
1234
1237
|
job_id, handle.get_cluster_name()))
|
1238
|
+
sys.exit(returncode)
|
1235
1239
|
|
1236
1240
|
|
1237
1241
|
@cli.command(cls=_DocumentedCodeCommand)
|
@@ -1377,7 +1381,8 @@ def exec(cluster: Optional[str], cluster_option: Optional[str],
|
|
1377
1381
|
job_id_handle = _async_call_or_wait(request_id, async_call, 'sky.exec')
|
1378
1382
|
if not async_call and not detach_run:
|
1379
1383
|
job_id, _ = job_id_handle
|
1380
|
-
sdk.tail_logs(cluster, job_id, follow=True)
|
1384
|
+
returncode = sdk.tail_logs(cluster, job_id, follow=True)
|
1385
|
+
sys.exit(returncode)
|
1381
1386
|
|
1382
1387
|
|
1383
1388
|
def _handle_jobs_queue_request(
|
@@ -2121,12 +2126,20 @@ def logs(
|
|
2121
2126
|
one job_id can be provided.
|
2122
2127
|
|
2123
2128
|
2. If ``--status`` is specified, print the status of the job and exit with
|
2124
|
-
returncode 0 if the job succeeded
|
2125
|
-
be specified.
|
2129
|
+
returncode 0 if the job succeeded. At most one job_id can
|
2130
|
+
be specified. Other possible return codes:
|
2131
|
+
|
2132
|
+
- 100: job failed.
|
2133
|
+
- 101: job not finished.
|
2134
|
+
- 102: job not found.
|
2135
|
+
- 103: job was cancelled by the user.
|
2126
2136
|
|
2127
2137
|
3. If ``--sync-down`` is specified, the logs of the job will be downloaded
|
2128
2138
|
from the cluster and saved to the local machine under
|
2129
|
-
``~/sky_logs``.
|
2139
|
+
``~/sky_logs``. Multiple job_ids can be specified.
|
2140
|
+
|
2141
|
+
4. If the job fails or fetching the logs fails, the command will exit with
|
2142
|
+
a non-zero return code.
|
2130
2143
|
"""
|
2131
2144
|
if sync_down and status:
|
2132
2145
|
raise click.UsageError(
|
@@ -2174,17 +2187,18 @@ def logs(
|
|
2174
2187
|
# it will return {None: None}.
|
2175
2188
|
if job_id is None:
|
2176
2189
|
click.secho(f'No job found on cluster {cluster!r}.', fg='red')
|
2177
|
-
sys.exit(
|
2190
|
+
sys.exit(exceptions.JobExitCode.NOT_FOUND)
|
2178
2191
|
job_status = list(job_statuses.values())[0]
|
2179
2192
|
job_status_str = job_status.value if job_status is not None else 'None'
|
2180
2193
|
click.echo(f'Job {job_id}: {job_status_str}')
|
2181
2194
|
if job_status == job_lib.JobStatus.SUCCEEDED:
|
2182
2195
|
return
|
2183
2196
|
else:
|
2197
|
+
returncode = exceptions.JobExitCode.from_job_status(job_status)
|
2184
2198
|
if job_status is None:
|
2185
2199
|
id_str = '' if job_id is None else f'{job_id} '
|
2186
2200
|
click.secho(f'Job {id_str}not found', fg='red')
|
2187
|
-
sys.exit(
|
2201
|
+
sys.exit(returncode)
|
2188
2202
|
|
2189
2203
|
job_str = f'job {job_id}'
|
2190
2204
|
if job_id is None:
|
@@ -2194,7 +2208,8 @@ def logs(
|
|
2194
2208
|
f'{colorama.Style.RESET_ALL}')
|
2195
2209
|
|
2196
2210
|
# Stream logs from the server.
|
2197
|
-
sdk.tail_logs(cluster, job_id, follow, tail=tail)
|
2211
|
+
returncode = sdk.tail_logs(cluster, job_id, follow, tail=tail)
|
2212
|
+
sys.exit(returncode)
|
2198
2213
|
|
2199
2214
|
|
2200
2215
|
@cli.command()
|
@@ -3729,6 +3744,7 @@ def storage_delete(names: List[str], all: bool, yes: bool, async_call: bool): #
|
|
3729
3744
|
if not storages:
|
3730
3745
|
click.echo('No storage(s) to delete.')
|
3731
3746
|
return
|
3747
|
+
names = [storage['name'] for storage in storages]
|
3732
3748
|
else:
|
3733
3749
|
names = _get_glob_storages(names)
|
3734
3750
|
if names:
|
@@ -3893,10 +3909,11 @@ def jobs_launch(
|
|
3893
3909
|
'sky.jobs.launch')
|
3894
3910
|
if not async_call and not detach_run:
|
3895
3911
|
job_id = job_id_handle[0]
|
3896
|
-
managed_jobs.tail_logs(name=None,
|
3897
|
-
|
3898
|
-
|
3899
|
-
|
3912
|
+
returncode = managed_jobs.tail_logs(name=None,
|
3913
|
+
job_id=job_id,
|
3914
|
+
follow=True,
|
3915
|
+
controller=False)
|
3916
|
+
sys.exit(returncode)
|
3900
3917
|
|
3901
3918
|
|
3902
3919
|
@jobs.command('queue', cls=_DocumentedCodeCommand)
|
@@ -4127,11 +4144,12 @@ def jobs_logs(name: Optional[str], job_id: Optional[int], follow: bool,
|
|
4127
4144
|
logger.info(f'{fore.CYAN}Job {job} logs{controller_str}: '
|
4128
4145
|
f'{log_local_path}{style.RESET_ALL}')
|
4129
4146
|
else:
|
4130
|
-
managed_jobs.tail_logs(name=name,
|
4131
|
-
|
4132
|
-
|
4133
|
-
|
4134
|
-
|
4147
|
+
returncode = managed_jobs.tail_logs(name=name,
|
4148
|
+
job_id=job_id,
|
4149
|
+
follow=follow,
|
4150
|
+
controller=controller,
|
4151
|
+
refresh=refresh)
|
4152
|
+
sys.exit(returncode)
|
4135
4153
|
except exceptions.ClusterNotUpError:
|
4136
4154
|
with ux_utils.print_exception_no_traceback():
|
4137
4155
|
raise
|
@@ -25,6 +25,7 @@ import filelock
|
|
25
25
|
import psutil
|
26
26
|
import requests
|
27
27
|
|
28
|
+
from sky import admin_policy
|
28
29
|
from sky import backends
|
29
30
|
from sky import exceptions
|
30
31
|
from sky import sky_logging
|
@@ -212,13 +213,17 @@ def list_accelerator_counts(
|
|
212
213
|
@annotations.client_api
|
213
214
|
def optimize(
|
214
215
|
dag: 'sky.Dag',
|
215
|
-
minimize: common.OptimizeTarget = common.OptimizeTarget.COST
|
216
|
+
minimize: common.OptimizeTarget = common.OptimizeTarget.COST,
|
217
|
+
admin_policy_request_options: Optional[admin_policy.RequestOptions] = None
|
216
218
|
) -> server_common.RequestId:
|
217
219
|
"""Finds the best execution plan for the given DAG.
|
218
220
|
|
219
221
|
Args:
|
220
222
|
dag: the DAG to optimize.
|
221
223
|
minimize: whether to minimize cost or time.
|
224
|
+
admin_policy_request_options: Request options used for admin policy
|
225
|
+
validation. This is only required when a admin policy is in use,
|
226
|
+
see: https://docs.skypilot.co/en/latest/cloud-setup/policy.html
|
222
227
|
|
223
228
|
Returns:
|
224
229
|
The request ID of the optimize request.
|
@@ -233,7 +238,9 @@ def optimize(
|
|
233
238
|
"""
|
234
239
|
dag_str = dag_utils.dump_chain_dag_to_yaml_str(dag)
|
235
240
|
|
236
|
-
body = payloads.OptimizeBody(dag=dag_str,
|
241
|
+
body = payloads.OptimizeBody(dag=dag_str,
|
242
|
+
minimize=minimize,
|
243
|
+
request_options=admin_policy_request_options)
|
237
244
|
response = requests.post(f'{server_common.get_server_url()}/optimize',
|
238
245
|
json=json.loads(body.model_dump_json()))
|
239
246
|
return server_common.get_request_id(response)
|
@@ -242,7 +249,11 @@ def optimize(
|
|
242
249
|
@usage_lib.entrypoint
|
243
250
|
@server_common.check_server_healthy_or_start
|
244
251
|
@annotations.client_api
|
245
|
-
def validate(
|
252
|
+
def validate(
|
253
|
+
dag: 'sky.Dag',
|
254
|
+
workdir_only: bool = False,
|
255
|
+
admin_policy_request_options: Optional[admin_policy.RequestOptions] = None
|
256
|
+
) -> None:
|
246
257
|
"""Validates the tasks.
|
247
258
|
|
248
259
|
The file paths (workdir and file_mounts) are validated on the client side
|
@@ -254,13 +265,17 @@ def validate(dag: 'sky.Dag', workdir_only: bool = False) -> None:
|
|
254
265
|
dag: the DAG to validate.
|
255
266
|
workdir_only: whether to only validate the workdir. This is used for
|
256
267
|
`exec` as it does not need other files/folders in file_mounts.
|
268
|
+
admin_policy_request_options: Request options used for admin policy
|
269
|
+
validation. This is only required when a admin policy is in use,
|
270
|
+
see: https://docs.skypilot.co/en/latest/cloud-setup/policy.html
|
257
271
|
"""
|
258
272
|
for task in dag.tasks:
|
259
273
|
task.expand_and_validate_workdir()
|
260
274
|
if not workdir_only:
|
261
275
|
task.expand_and_validate_file_mounts()
|
262
276
|
dag_str = dag_utils.dump_chain_dag_to_yaml_str(dag)
|
263
|
-
body = payloads.ValidateBody(dag=dag_str
|
277
|
+
body = payloads.ValidateBody(dag=dag_str,
|
278
|
+
request_options=admin_policy_request_options)
|
264
279
|
response = requests.post(f'{server_common.get_server_url()}/validate',
|
265
280
|
json=json.loads(body.model_dump_json()))
|
266
281
|
if response.status_code == 400:
|
@@ -386,7 +401,12 @@ def launch(
|
|
386
401
|
'Please contact the SkyPilot team if you '
|
387
402
|
'need this feature at slack.skypilot.co.')
|
388
403
|
dag = dag_utils.convert_entrypoint_to_dag(task)
|
389
|
-
|
404
|
+
request_options = admin_policy.RequestOptions(
|
405
|
+
cluster_name=cluster_name,
|
406
|
+
idle_minutes_to_autostop=idle_minutes_to_autostop,
|
407
|
+
down=down,
|
408
|
+
dryrun=dryrun)
|
409
|
+
validate(dag, admin_policy_request_options=request_options)
|
390
410
|
|
391
411
|
confirm_shown = False
|
392
412
|
if _need_confirmation:
|
@@ -400,7 +420,8 @@ def launch(
|
|
400
420
|
if not clusters:
|
401
421
|
# Show the optimize log before the prompt if the cluster does not
|
402
422
|
# exist.
|
403
|
-
request_id = optimize(dag
|
423
|
+
request_id = optimize(dag,
|
424
|
+
admin_policy_request_options=request_options)
|
404
425
|
stream_and_get(request_id)
|
405
426
|
else:
|
406
427
|
cluster_record = clusters[0]
|
@@ -562,7 +583,7 @@ def tail_logs(cluster_name: str,
|
|
562
583
|
job_id: Optional[int],
|
563
584
|
follow: bool,
|
564
585
|
tail: int = 0,
|
565
|
-
output_stream: Optional['io.TextIOBase'] = None) ->
|
586
|
+
output_stream: Optional['io.TextIOBase'] = None) -> int:
|
566
587
|
"""Tails the logs of a job.
|
567
588
|
|
568
589
|
Args:
|
@@ -575,7 +596,9 @@ def tail_logs(cluster_name: str,
|
|
575
596
|
console.
|
576
597
|
|
577
598
|
Returns:
|
578
|
-
|
599
|
+
Exit code based on success or failure of the job. 0 if success,
|
600
|
+
100 if the job failed. See exceptions.JobExitCode for possible exit
|
601
|
+
codes.
|
579
602
|
|
580
603
|
Request Raises:
|
581
604
|
ValueError: if arguments are invalid or the cluster is not supported.
|
@@ -601,7 +624,7 @@ def tail_logs(cluster_name: str,
|
|
601
624
|
timeout=(client_common.API_SERVER_REQUEST_CONNECTION_TIMEOUT_SECONDS,
|
602
625
|
None))
|
603
626
|
request_id = server_common.get_request_id(response)
|
604
|
-
stream_response(request_id, response, output_stream)
|
627
|
+
return stream_response(request_id, response, output_stream)
|
605
628
|
|
606
629
|
|
607
630
|
@usage_lib.entrypoint
|