skypilot-nightly 1.0.0.dev20240901__tar.gz → 1.0.0.dev20240903__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.dev20240901/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20240903}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/cloud_vm_ray_backend.py +54 -14
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/cli.py +8 -2
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/aws.py +13 -5
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/azure.py +9 -6
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/cloud.py +1 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/gcp.py +14 -3
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/oci.py +16 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/azure_catalog.py +2 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/oci_catalog.py +6 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/exceptions.py +4 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/optimizer.py +10 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/aws-ray.yml.j2 +3 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/gcp-ray.yml.j2 +3 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/resources_utils.py +1 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903/skypilot_nightly.egg-info}/PKG-INFO +1 -1
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_optimizer_dryruns.py +7 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_smoke.py +45 -7
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/README.md +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/authentication.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/backend_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/cloud_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/kubernetes.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/kubernetes_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/utils/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/azure/azure-vm-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/network.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/network_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/kubernetes/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/provisioner.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/lambda_cloud/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/oci/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/oci/query_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/oci/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/kubernetes-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/cluster_yaml_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/log_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/schemas.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/skypilot_nightly.egg-info/SOURCES.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/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 = '0203971a36dbcf0a6d3615e6ed25f3f6d11b53f6'
|
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.dev20240903'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
@@ -3112,7 +3112,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3112
3112
|
setup_script = log_lib.make_task_bash_script(setup,
|
3113
3113
|
env_vars=setup_envs)
|
3114
3114
|
encoded_script = shlex.quote(setup_script)
|
3115
|
-
|
3115
|
+
|
3116
|
+
def _dump_setup_script(setup_script: str) -> None:
|
3116
3117
|
with tempfile.NamedTemporaryFile('w', prefix='sky_setup_') as f:
|
3117
3118
|
f.write(setup_script)
|
3118
3119
|
f.flush()
|
@@ -3121,6 +3122,9 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3121
3122
|
target=remote_setup_file_name,
|
3122
3123
|
up=True,
|
3123
3124
|
stream_logs=False)
|
3125
|
+
|
3126
|
+
if detach_setup or _is_command_length_over_limit(encoded_script):
|
3127
|
+
_dump_setup_script(setup_script)
|
3124
3128
|
create_script_code = 'true'
|
3125
3129
|
else:
|
3126
3130
|
create_script_code = (f'{{ echo {encoded_script} > '
|
@@ -3128,20 +3132,42 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3128
3132
|
|
3129
3133
|
if detach_setup:
|
3130
3134
|
return
|
3135
|
+
|
3131
3136
|
setup_log_path = os.path.join(self.log_dir,
|
3132
3137
|
f'setup-{runner.node_id}.log')
|
3133
|
-
|
3134
|
-
|
3135
|
-
|
3136
|
-
|
3137
|
-
|
3138
|
-
|
3139
|
-
|
3140
|
-
|
3141
|
-
|
3142
|
-
|
3143
|
-
|
3144
|
-
|
3138
|
+
|
3139
|
+
def _run_setup(setup_cmd: str) -> int:
|
3140
|
+
returncode = runner.run(
|
3141
|
+
setup_cmd,
|
3142
|
+
log_path=setup_log_path,
|
3143
|
+
process_stream=False,
|
3144
|
+
# We do not source bashrc for setup, since bashrc is sourced
|
3145
|
+
# in the script already.
|
3146
|
+
# Skip an empty line and two lines due to the /bin/bash -i
|
3147
|
+
# and source ~/.bashrc in the setup_cmd.
|
3148
|
+
# bash: cannot set terminal process group (7398): Inappropriate ioctl for device # pylint: disable=line-too-long
|
3149
|
+
# bash: no job control in this shell
|
3150
|
+
skip_lines=3)
|
3151
|
+
return returncode
|
3152
|
+
|
3153
|
+
returncode = _run_setup(f'{create_script_code} && {setup_cmd}',)
|
3154
|
+
if returncode == 255:
|
3155
|
+
is_message_too_long = False
|
3156
|
+
with open(setup_log_path, 'r', encoding='utf-8') as f:
|
3157
|
+
if 'too long' in f.read():
|
3158
|
+
is_message_too_long = True
|
3159
|
+
|
3160
|
+
if is_message_too_long:
|
3161
|
+
# If the setup script is too long, we retry it with dumping
|
3162
|
+
# the script to a file and running it with SSH. We use a
|
3163
|
+
# general length limit check before but it could be
|
3164
|
+
# inaccurate on some systems.
|
3165
|
+
logger.debug(
|
3166
|
+
'Failed to run setup command inline due to '
|
3167
|
+
'command length limit. Dumping setup script to '
|
3168
|
+
'file and running it with SSH.')
|
3169
|
+
_dump_setup_script(setup_script)
|
3170
|
+
returncode = _run_setup(setup_cmd)
|
3145
3171
|
|
3146
3172
|
def error_message() -> str:
|
3147
3173
|
# Use the function to avoid tailing the file in success case
|
@@ -3223,7 +3249,8 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3223
3249
|
|
3224
3250
|
code = job_lib.JobLibCodeGen.queue_job(job_id, job_submit_cmd)
|
3225
3251
|
job_submit_cmd = ' && '.join([mkdir_code, create_script_code, code])
|
3226
|
-
|
3252
|
+
|
3253
|
+
def _dump_code_to_file(codegen: str) -> None:
|
3227
3254
|
runners = handle.get_command_runners()
|
3228
3255
|
head_runner = runners[0]
|
3229
3256
|
with tempfile.NamedTemporaryFile('w', prefix='sky_app_') as fp:
|
@@ -3238,6 +3265,9 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3238
3265
|
target=script_path,
|
3239
3266
|
up=True,
|
3240
3267
|
stream_logs=False)
|
3268
|
+
|
3269
|
+
if _is_command_length_over_limit(job_submit_cmd):
|
3270
|
+
_dump_code_to_file(codegen)
|
3241
3271
|
job_submit_cmd = f'{mkdir_code} && {code}'
|
3242
3272
|
|
3243
3273
|
if managed_job_dag is not None:
|
@@ -3263,6 +3293,16 @@ class CloudVmRayBackend(backends.Backend['CloudVmRayResourceHandle']):
|
|
3263
3293
|
job_submit_cmd,
|
3264
3294
|
stream_logs=False,
|
3265
3295
|
require_outputs=True)
|
3296
|
+
if returncode == 255 and 'too long' in stdout + stderr:
|
3297
|
+
# If the setup script is too long, we retry it with dumping
|
3298
|
+
# the script to a file and running it with SSH. We use a general
|
3299
|
+
# length limit check before but it could be inaccurate on some
|
3300
|
+
# systems.
|
3301
|
+
_dump_code_to_file(codegen)
|
3302
|
+
returncode, stdout, stderr = self.run_on_head(handle,
|
3303
|
+
job_submit_cmd,
|
3304
|
+
stream_logs=False,
|
3305
|
+
require_outputs=True)
|
3266
3306
|
|
3267
3307
|
# Happens when someone calls `sky exec` but remote is outdated
|
3268
3308
|
# necessitating calling `sky launch`.
|
@@ -29,6 +29,7 @@ import functools
|
|
29
29
|
import multiprocessing
|
30
30
|
import os
|
31
31
|
import shlex
|
32
|
+
import shutil
|
32
33
|
import signal
|
33
34
|
import subprocess
|
34
35
|
import sys
|
@@ -368,7 +369,9 @@ def _install_shell_completion(ctx: click.Context, param: click.Parameter,
|
|
368
369
|
echo "{bashrc_diff}" >> ~/.bashrc'
|
369
370
|
|
370
371
|
cmd = (f'(grep -q "SkyPilot" ~/.bashrc) || '
|
371
|
-
f'[[ ${{BASH_VERSINFO[0]}} -ge 4 ]] && ({install_cmd})'
|
372
|
+
f'([[ ${{BASH_VERSINFO[0]}} -ge 4 ]] && ({install_cmd}) || '
|
373
|
+
f'(echo "Bash must be version 4 or above." && exit 1))')
|
374
|
+
|
372
375
|
reload_cmd = _RELOAD_BASH_CMD
|
373
376
|
|
374
377
|
elif value == 'fish':
|
@@ -390,7 +393,10 @@ def _install_shell_completion(ctx: click.Context, param: click.Parameter,
|
|
390
393
|
ctx.exit()
|
391
394
|
|
392
395
|
try:
|
393
|
-
subprocess.run(cmd,
|
396
|
+
subprocess.run(cmd,
|
397
|
+
shell=True,
|
398
|
+
check=True,
|
399
|
+
executable=shutil.which('bash'))
|
394
400
|
click.secho(f'Shell completion installed for {value}', fg='green')
|
395
401
|
click.echo(
|
396
402
|
'Completion will take effect once you restart the terminal: ' +
|
@@ -798,7 +798,11 @@ class AWS(clouds.Cloud):
|
|
798
798
|
|
799
799
|
@classmethod
|
800
800
|
def _get_disk_type(cls, disk_tier: resources_utils.DiskTier) -> str:
|
801
|
-
|
801
|
+
if disk_tier == resources_utils.DiskTier.LOW:
|
802
|
+
return 'standard'
|
803
|
+
if disk_tier == resources_utils.DiskTier.ULTRA:
|
804
|
+
return 'io2'
|
805
|
+
return 'gp3'
|
802
806
|
|
803
807
|
@classmethod
|
804
808
|
def _get_disk_specs(
|
@@ -806,15 +810,19 @@ class AWS(clouds.Cloud):
|
|
806
810
|
disk_tier: Optional[resources_utils.DiskTier]) -> Dict[str, Any]:
|
807
811
|
tier = cls._translate_disk_tier(disk_tier)
|
808
812
|
tier2iops = {
|
813
|
+
resources_utils.DiskTier.ULTRA: 20000,
|
809
814
|
resources_utils.DiskTier.HIGH: 7000,
|
810
815
|
resources_utils.DiskTier.MEDIUM: 3500,
|
811
|
-
resources_utils.DiskTier.LOW: 0, #
|
816
|
+
resources_utils.DiskTier.LOW: 0, # iops is not required on standard disk
|
812
817
|
}
|
813
818
|
return {
|
814
819
|
'disk_tier': cls._get_disk_type(tier),
|
815
|
-
'disk_iops': tier2iops[tier]
|
816
|
-
|
817
|
-
|
820
|
+
'disk_iops': tier2iops[tier]
|
821
|
+
if cls._get_disk_type(tier) != 'standard' else None,
|
822
|
+
# Custom disk throughput is only available for gp3
|
823
|
+
# see https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-ebs.html
|
824
|
+
'disk_throughput': tier2iops[tier] // 16
|
825
|
+
if cls._get_disk_type(tier) == 'gp3' else None,
|
818
826
|
}
|
819
827
|
|
820
828
|
@classmethod
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/azure.py
RENAMED
@@ -60,9 +60,10 @@ class Azure(clouds.Cloud):
|
|
60
60
|
_MAX_CLUSTER_NAME_LEN_LIMIT = 42
|
61
61
|
_BEST_DISK_TIER = resources_utils.DiskTier.MEDIUM
|
62
62
|
_DEFAULT_DISK_TIER = resources_utils.DiskTier.MEDIUM
|
63
|
-
# Azure does not support high disk tier.
|
64
|
-
_SUPPORTED_DISK_TIERS = (
|
65
|
-
|
63
|
+
# Azure does not support high disk and ultra disk tier.
|
64
|
+
_SUPPORTED_DISK_TIERS = (
|
65
|
+
set(resources_utils.DiskTier) -
|
66
|
+
{resources_utils.DiskTier.HIGH, resources_utils.DiskTier.ULTRA})
|
66
67
|
|
67
68
|
_INDENT_PREFIX = ' ' * 4
|
68
69
|
|
@@ -599,9 +600,10 @@ class Azure(clouds.Cloud):
|
|
599
600
|
disk_tier: Optional[resources_utils.DiskTier]) -> Tuple[bool, str]:
|
600
601
|
if disk_tier is None or disk_tier == resources_utils.DiskTier.BEST:
|
601
602
|
return True, ''
|
602
|
-
if disk_tier == resources_utils.DiskTier.HIGH:
|
603
|
-
return False, (
|
604
|
-
|
603
|
+
if disk_tier == resources_utils.DiskTier.HIGH or disk_tier == resources_utils.DiskTier.ULTRA:
|
604
|
+
return False, (
|
605
|
+
'Azure disk_tier={high, ultra} is not supported now. '
|
606
|
+
'Please use disk_tier={low, medium, best} instead.')
|
605
607
|
# Only S-series supported premium ssd
|
606
608
|
# see https://stackoverflow.com/questions/48590520/azure-requested-operation-cannot-be-performed-because-storage-account-type-pre # pylint: disable=line-too-long
|
607
609
|
if cls._get_disk_type(
|
@@ -628,6 +630,7 @@ class Azure(clouds.Cloud):
|
|
628
630
|
# TODO(tian): Maybe use PremiumV2_LRS/UltraSSD_LRS? Notice these two
|
629
631
|
# cannot be used as OS disks so we might need data disk support
|
630
632
|
tier2name = {
|
633
|
+
resources_utils.DiskTier.ULTRA: 'Disabled',
|
631
634
|
resources_utils.DiskTier.HIGH: 'Disabled',
|
632
635
|
resources_utils.DiskTier.MEDIUM: 'Premium_LRS',
|
633
636
|
resources_utils.DiskTier.LOW: 'Standard_LRS',
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/cloud.py
RENAMED
@@ -117,7 +117,7 @@ class Cloud:
|
|
117
117
|
|
118
118
|
_REPR = '<Cloud>'
|
119
119
|
_DEFAULT_DISK_TIER = resources_utils.DiskTier.MEDIUM
|
120
|
-
_BEST_DISK_TIER = resources_utils.DiskTier.
|
120
|
+
_BEST_DISK_TIER = resources_utils.DiskTier.ULTRA
|
121
121
|
_SUPPORTED_DISK_TIERS = {resources_utils.DiskTier.BEST}
|
122
122
|
_SUPPORTS_SERVICE_ACCOUNT_ON_REMOTE = False
|
123
123
|
|
@@ -7,7 +7,7 @@ import re
|
|
7
7
|
import subprocess
|
8
8
|
import time
|
9
9
|
import typing
|
10
|
-
from typing import Dict, Iterator, List, Optional, Set, Tuple
|
10
|
+
from typing import Any, Dict, Iterator, List, Optional, Set, Tuple
|
11
11
|
|
12
12
|
import colorama
|
13
13
|
|
@@ -437,6 +437,7 @@ class GCP(clouds.Cloud):
|
|
437
437
|
'custom_resources': None,
|
438
438
|
'use_spot': r.use_spot,
|
439
439
|
'gcp_project_id': self.get_project_id(dryrun),
|
440
|
+
**GCP._get_disk_specs(r.disk_tier),
|
440
441
|
}
|
441
442
|
accelerators = r.accelerators
|
442
443
|
if accelerators is not None:
|
@@ -495,8 +496,6 @@ class GCP(clouds.Cloud):
|
|
495
496
|
resources_vars['machine_image'] = image_id
|
496
497
|
resources_vars['image_id'] = None
|
497
498
|
|
498
|
-
resources_vars['disk_tier'] = GCP._get_disk_type(r.disk_tier)
|
499
|
-
|
500
499
|
firewall_rule = None
|
501
500
|
if resources.ports is not None:
|
502
501
|
firewall_rule = (USER_PORTS_FIREWALL_RULE_NAME.format(
|
@@ -917,12 +916,24 @@ class GCP(clouds.Cloud):
|
|
917
916
|
disk_tier: Optional[resources_utils.DiskTier]) -> str:
|
918
917
|
tier = cls._translate_disk_tier(disk_tier)
|
919
918
|
tier2name = {
|
919
|
+
resources_utils.DiskTier.ULTRA: 'pd-extreme',
|
920
920
|
resources_utils.DiskTier.HIGH: 'pd-ssd',
|
921
921
|
resources_utils.DiskTier.MEDIUM: 'pd-balanced',
|
922
922
|
resources_utils.DiskTier.LOW: 'pd-standard',
|
923
923
|
}
|
924
924
|
return tier2name[tier]
|
925
925
|
|
926
|
+
@classmethod
|
927
|
+
def _get_disk_specs(
|
928
|
+
cls,
|
929
|
+
disk_tier: Optional[resources_utils.DiskTier]) -> Dict[str, Any]:
|
930
|
+
specs: Dict[str, Any] = {'disk_tier': cls._get_disk_type(disk_tier)}
|
931
|
+
if disk_tier == resources_utils.DiskTier.ULTRA:
|
932
|
+
# Only pd-extreme supports custom iops.
|
933
|
+
# see https://cloud.google.com/compute/docs/disks#disk-types
|
934
|
+
specs['disk_iops'] = 20000
|
935
|
+
return specs
|
936
|
+
|
926
937
|
@classmethod
|
927
938
|
def _label_filter_str(cls, tag_filters: Dict[str, str]) -> str:
|
928
939
|
return ' '.join(f'labels.{k}={v}' for k, v in tag_filters.items())
|
@@ -42,7 +42,9 @@ class OCI(clouds.Cloud):
|
|
42
42
|
|
43
43
|
_INDENT_PREFIX = ' '
|
44
44
|
|
45
|
-
_SUPPORTED_DISK_TIERS = set(resources_utils.DiskTier)
|
45
|
+
_SUPPORTED_DISK_TIERS = (set(resources_utils.DiskTier) -
|
46
|
+
{resources_utils.DiskTier.ULTRA})
|
47
|
+
_BEST_DISK_TIER = resources_utils.DiskTier.HIGH
|
46
48
|
|
47
49
|
@classmethod
|
48
50
|
def _unsupported_features_for_resources(
|
@@ -414,6 +416,19 @@ class OCI(clouds.Cloud):
|
|
414
416
|
f'{cls._INDENT_PREFIX}Error details: '
|
415
417
|
f'{common_utils.format_exception(e, use_bracket=True)}')
|
416
418
|
|
419
|
+
@classmethod
|
420
|
+
def check_disk_tier(
|
421
|
+
cls, instance_type: Optional[str],
|
422
|
+
disk_tier: Optional[resources_utils.DiskTier]) -> Tuple[bool, str]:
|
423
|
+
del instance_type # Unused.
|
424
|
+
if disk_tier is None or disk_tier == resources_utils.DiskTier.BEST:
|
425
|
+
return True, ''
|
426
|
+
if disk_tier == resources_utils.DiskTier.ULTRA:
|
427
|
+
return False, ('OCI disk_tier=ultra is not supported now. '
|
428
|
+
'Please use disk_tier={low, medium, high, best} '
|
429
|
+
'instead.')
|
430
|
+
return True, ''
|
431
|
+
|
417
432
|
def get_credential_file_mounts(self) -> Dict[str, str]:
|
418
433
|
"""Returns a dict of credential file paths to mount paths."""
|
419
434
|
oci_cfg_file = oci_adaptor.get_config_file()
|
@@ -110,7 +110,8 @@ def get_default_instance_type(
|
|
110
110
|
_DEFAULT_INSTANCE_FAMILY)]
|
111
111
|
|
112
112
|
def _filter_disk_type(instance_type: str) -> bool:
|
113
|
-
|
113
|
+
valid, _ = Azure.check_disk_tier(instance_type, disk_tier)
|
114
|
+
return valid
|
114
115
|
|
115
116
|
df = df.loc[df['InstanceType'].apply(_filter_disk_type)]
|
116
117
|
return common.get_instance_type_for_cpus_mem_impl(df, cpus,
|
@@ -15,6 +15,7 @@ import typing
|
|
15
15
|
from typing import Dict, List, Optional, Tuple
|
16
16
|
|
17
17
|
from sky.adaptors import oci as oci_adaptor
|
18
|
+
from sky.clouds import OCI
|
18
19
|
from sky.clouds.service_catalog import common
|
19
20
|
from sky.clouds.utils import oci_utils
|
20
21
|
from sky.utils import resources_utils
|
@@ -102,7 +103,6 @@ def get_default_instance_type(
|
|
102
103
|
cpus: Optional[str] = None,
|
103
104
|
memory: Optional[str] = None,
|
104
105
|
disk_tier: Optional[resources_utils.DiskTier] = None) -> Optional[str]:
|
105
|
-
del disk_tier # unused
|
106
106
|
if cpus is None:
|
107
107
|
cpus = f'{oci_utils.oci_config.DEFAULT_NUM_VCPUS}+'
|
108
108
|
|
@@ -111,12 +111,17 @@ def get_default_instance_type(
|
|
111
111
|
else:
|
112
112
|
memory_gb_or_ratio = memory
|
113
113
|
|
114
|
+
def _filter_disk_type(instance_type: str) -> bool:
|
115
|
+
valid, _ = OCI.check_disk_tier(instance_type, disk_tier)
|
116
|
+
return valid
|
117
|
+
|
114
118
|
instance_type_prefix = tuple(
|
115
119
|
f'{family}' for family in oci_utils.oci_config.DEFAULT_INSTANCE_FAMILY)
|
116
120
|
|
117
121
|
df = _get_df()
|
118
122
|
df = df[df['InstanceType'].notna()]
|
119
123
|
df = df[df['InstanceType'].str.startswith(instance_type_prefix)]
|
124
|
+
df = df.loc[df['InstanceType'].apply(_filter_disk_type)]
|
120
125
|
|
121
126
|
logger.debug(f'# get_default_instance_type: {df}')
|
122
127
|
return common.get_instance_type_for_cpus_mem_impl(df, cpus,
|
@@ -100,9 +100,13 @@ class CommandError(Exception):
|
|
100
100
|
self.command = command
|
101
101
|
self.error_msg = error_msg
|
102
102
|
self.detailed_reason = detailed_reason
|
103
|
+
|
103
104
|
if not command:
|
104
105
|
message = error_msg
|
105
106
|
else:
|
107
|
+
if len(command) > 100:
|
108
|
+
# Chunck the command to avoid overflow.
|
109
|
+
command = command[:100] + '...'
|
106
110
|
message = (f'Command {command} failed with return code '
|
107
111
|
f'{returncode}.\n{error_msg}')
|
108
112
|
super().__init__(message)
|
@@ -19,6 +19,7 @@ from sky import task as task_lib
|
|
19
19
|
from sky.adaptors import common as adaptors_common
|
20
20
|
from sky.utils import env_options
|
21
21
|
from sky.utils import log_utils
|
22
|
+
from sky.utils import resources_utils
|
22
23
|
from sky.utils import rich_utils
|
23
24
|
from sky.utils import subprocess_utils
|
24
25
|
from sky.utils import ux_utils
|
@@ -935,6 +936,15 @@ class Optimizer:
|
|
935
936
|
table.add_rows(rows)
|
936
937
|
logger.info(f'{table}\n')
|
937
938
|
|
939
|
+
# Warning message for using disk_tier=ultra
|
940
|
+
# TODO(yi): Consider price of disks in optimizer and
|
941
|
+
# move this warning there.
|
942
|
+
if chosen_resources.disk_tier == resources_utils.DiskTier.ULTRA:
|
943
|
+
logger.warning(
|
944
|
+
'Using disk_tier=ultra will utilize more advanced disks '
|
945
|
+
'(io2 Block Express on AWS and extreme persistent disk on '
|
946
|
+
'GCP), which can lead to significant higher costs (~$2/h).')
|
947
|
+
|
938
948
|
@staticmethod
|
939
949
|
def _print_candidates(node_to_candidate_map: _TaskToPerCloudCandidates):
|
940
950
|
for node, candidate_set in node_to_candidate_map.items():
|
@@ -73,8 +73,10 @@ available_node_types:
|
|
73
73
|
VolumeSize: {{disk_size}}
|
74
74
|
VolumeType: {{disk_tier}}
|
75
75
|
Encrypted: {{disk_encrypted}}
|
76
|
-
{% if
|
76
|
+
{% if disk_iops %}
|
77
77
|
Iops: {{disk_iops}}
|
78
|
+
{% endif %}
|
79
|
+
{% if disk_throughput %}
|
78
80
|
Throughput: {{disk_throughput}}
|
79
81
|
{% endif %}
|
80
82
|
{% if use_spot %}
|
@@ -124,6 +124,9 @@ available_node_types:
|
|
124
124
|
sourceImage: {{image_id}}
|
125
125
|
{%- endif %}
|
126
126
|
diskType: zones/{{zones}}/diskTypes/{{disk_tier}}
|
127
|
+
{%- if disk_iops %}
|
128
|
+
provisionedIops: {{disk_iops}}
|
129
|
+
{%- endif %}
|
127
130
|
{%- if gpu is not none %}
|
128
131
|
guestAccelerators:
|
129
132
|
- acceleratorType: projects/{{gcp_project_id}}/zones/{{zones}}/acceleratorTypes/{{gpu}}
|
@@ -771,3 +771,10 @@ def test_optimize_disk_tier(enable_all_clouds):
|
|
771
771
|
assert high_tier_candidates == set(
|
772
772
|
map(clouds.CLOUD_REGISTRY.get,
|
773
773
|
['aws', 'gcp', 'oci'])), high_tier_candidates
|
774
|
+
|
775
|
+
# Only AWS, GCP supports ULTRA disk tier.
|
776
|
+
ultra_tier_resources = sky.Resources(
|
777
|
+
disk_tier=resources_utils.DiskTier.ULTRA)
|
778
|
+
ultra_tier_candidates = _get_all_candidate_cloud(ultra_tier_resources)
|
779
|
+
assert ultra_tier_candidates == set(
|
780
|
+
map(clouds.CLOUD_REGISTRY.get, ['aws', 'gcp'])), ultra_tier_candidates
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/tests/test_smoke.py
RENAMED
@@ -34,6 +34,7 @@ import shutil
|
|
34
34
|
import subprocess
|
35
35
|
import sys
|
36
36
|
import tempfile
|
37
|
+
import textwrap
|
37
38
|
import time
|
38
39
|
from typing import Dict, List, NamedTuple, Optional, Tuple
|
39
40
|
import urllib.parse
|
@@ -3304,11 +3305,11 @@ def test_aws_disk_tier():
|
|
3304
3305
|
f'Reservations[].Instances[].InstanceId --output text`; ' +
|
3305
3306
|
_get_aws_query_command(region, '$id', 'VolumeType',
|
3306
3307
|
specs['disk_tier']) +
|
3307
|
-
('' if disk_tier
|
3308
|
-
|
3309
|
-
|
3310
|
-
|
3311
|
-
|
3308
|
+
('' if specs['disk_tier']
|
3309
|
+
== 'standard' else _get_aws_query_command(
|
3310
|
+
region, '$id', 'Iops', specs['disk_iops'])) +
|
3311
|
+
('' if specs['disk_tier'] != 'gp3' else _get_aws_query_command(
|
3312
|
+
region, '$id', 'Throughput', specs['disk_throughput'])),
|
3312
3313
|
],
|
3313
3314
|
f'sky down -y {name}',
|
3314
3315
|
timeout=10 * 60, # 10 mins (it takes around ~6 mins)
|
@@ -3344,8 +3345,8 @@ def test_gcp_disk_tier():
|
|
3344
3345
|
@pytest.mark.azure
|
3345
3346
|
def test_azure_disk_tier():
|
3346
3347
|
for disk_tier in list(resources_utils.DiskTier):
|
3347
|
-
if disk_tier == resources_utils.DiskTier.HIGH:
|
3348
|
-
# Azure does not support high disk tier.
|
3348
|
+
if disk_tier == resources_utils.DiskTier.HIGH or disk_tier == resources_utils.DiskTier.ULTRA:
|
3349
|
+
# Azure does not support high and ultra disk tier.
|
3349
3350
|
continue
|
3350
3351
|
type = Azure._get_disk_type(disk_tier)
|
3351
3352
|
name = _get_cluster_name() + '-' + disk_tier.value
|
@@ -3436,6 +3437,43 @@ def test_gcp_zero_quota_failover():
|
|
3436
3437
|
run_one_test(test)
|
3437
3438
|
|
3438
3439
|
|
3440
|
+
def test_long_setup_run_script(generic_cloud: str):
|
3441
|
+
name = _get_cluster_name()
|
3442
|
+
with tempfile.NamedTemporaryFile('w', prefix='sky_app_',
|
3443
|
+
suffix='.yaml') as f:
|
3444
|
+
f.write(
|
3445
|
+
textwrap.dedent(""" \
|
3446
|
+
setup: |
|
3447
|
+
echo "start long setup"
|
3448
|
+
"""))
|
3449
|
+
for i in range(1024 * 120):
|
3450
|
+
f.write(f' echo {i}\n')
|
3451
|
+
f.write(' echo "end long setup"\n')
|
3452
|
+
f.write(
|
3453
|
+
textwrap.dedent(""" \
|
3454
|
+
run: |
|
3455
|
+
echo "run"
|
3456
|
+
"""))
|
3457
|
+
for i in range(1024 * 120):
|
3458
|
+
f.write(f' echo {i}\n')
|
3459
|
+
f.write(' echo "end run"\n')
|
3460
|
+
f.flush()
|
3461
|
+
|
3462
|
+
test = Test(
|
3463
|
+
'long-setup-run-script',
|
3464
|
+
[
|
3465
|
+
f'sky launch -y -c {name} --cloud {generic_cloud} --detach-setup --detach-run --cpus 2+ {f.name}',
|
3466
|
+
f'sky exec --detach-run {name} "echo hello"',
|
3467
|
+
f'sky exec --detach-run {name} {f.name}',
|
3468
|
+
f'sky logs {name} --status 1',
|
3469
|
+
f'sky logs {name} --status 2',
|
3470
|
+
f'sky logs {name} --status 3',
|
3471
|
+
],
|
3472
|
+
f'sky down -y {name}',
|
3473
|
+
)
|
3474
|
+
run_one_test(test)
|
3475
|
+
|
3476
|
+
|
3439
3477
|
# ---------- Testing skyserve ----------
|
3440
3478
|
|
3441
3479
|
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/__init__.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/aws.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/azure.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/cloudflare.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/common.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/cudo.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/docker.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/gcp.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/ibm.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/kubernetes.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/oci.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/runpod.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/adaptors/vsphere.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/authentication.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/__init__.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/backends/backend.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/benchmark/__init__.py
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/cloud_stores.py
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20240901 → skypilot_nightly-1.0.0.dev20240903}/sky/clouds/__init__.py
RENAMED
File without changes
|