skypilot-nightly 1.0.0.dev20240926__tar.gz → 1.0.0.dev20240928__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.dev20240926/skypilot_nightly.egg-info → skypilot_nightly-1.0.0.dev20240928}/PKG-INFO +16 -15
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/README.md +15 -14
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/__init__.py +2 -2
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/kubernetes.py +10 -8
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/authentication.py +10 -6
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/backend_utils.py +1 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/cloud_vm_ray_backend.py +14 -1
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/cli.py +129 -19
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/kubernetes.py +161 -45
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/oci.py +11 -8
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/kubernetes_catalog.py +15 -7
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/network.py +34 -14
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/network_utils.py +7 -5
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/utils.py +125 -59
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/provisioner.py +2 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/kubernetes-ray.yml.j2 +1 -1
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/command_runner.py +4 -0
- skypilot_nightly-1.0.0.dev20240928/sky/utils/kubernetes/deploy_remote_cluster.sh +243 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/log_utils.py +88 -10
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/schemas.py +6 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928/skypilot_nightly.egg-info}/PKG-INFO +16 -15
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/skypilot_nightly.egg-info/SOURCES.txt +1 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_smoke.py +113 -16
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/pyproject.toml +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/setup.cfg +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/cloudflare.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/docker.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/oci.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/admin_policy.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/local_docker_backend.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/monkey_patches/monkey_patch_ray_up.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/backends/wheel_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/benchmark/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/benchmark/benchmark_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/benchmark/benchmark_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/check.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/cloud_stores.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/cloud_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/ibm.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/paperspace.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/runpod.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/scp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/aws_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/azure_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/cudo_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_aws.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_azure.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_cudo.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/data_fetchers/fetch_vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/fluidstack_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/gcp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/ibm_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/lambda_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/oci_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/paperspace_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/runpod_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/scp_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/service_catalog/vsphere_catalog.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/utils/aws_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/utils/gcp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/utils/lambda_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/utils/oci_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/utils/scp_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/clouds/vsphere.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/data/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/data/data_transfer.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/data/data_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/data/mounting_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/data/storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/data/storage_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/exceptions.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/execution.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/dashboard/dashboard.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/dashboard/static/favicon.ico +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/dashboard/templates/index.html +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/recovery_strategy.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/jobs/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/optimizer.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/aws/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/aws/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/aws/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/aws/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/azure/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/azure/azure-config-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/azure/azure-vm-template.json +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/azure/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/azure/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/common.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/cudo/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/cudo/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/cudo/cudo_machine_type.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/cudo/cudo_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/cudo/cudo_wrapper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/cudo/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/docker_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/fluidstack/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/fluidstack/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/fluidstack/fluidstack_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/fluidstack/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/gcp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/gcp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/gcp/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/gcp/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/gcp/instance_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/gcp/mig_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/instance_setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/paperspace/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/paperspace/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/paperspace/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/paperspace/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/paperspace/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/runpod/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/runpod/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/runpod/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/runpod/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/cls_api_client.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/cls_api_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/custom_script.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/id_generator.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/metadata_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/service_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/service_manager_factory.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/ssl_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/vapiconnect.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/common/vim_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/instance.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/provision/vsphere/vsphere_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/resources.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/autoscalers.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/controller.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/core.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/load_balancer.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/load_balancing_policies.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/replica_managers.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/serve_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/serve_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/service.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/serve/service_spec.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/setup_files/MANIFEST.in +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/setup_files/setup.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/sky_logging.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/attempt_skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/autostop_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/configs.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/events.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/job_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/log_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/log_lib.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/command_runner.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/ibm/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/ibm/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/ibm/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/ibm/vpc_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/lambda_cloud/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/lambda_cloud/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/oci/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/oci/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/oci/query_helper.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/oci/utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/scp/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/scp/config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/providers/scp/node_provider.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/autoscaler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/cli.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/command_runner.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/log_monitor.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/resource_demand_scheduler.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/updater.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/ray_patches/worker.py.patch +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/skylet.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skylet/subprocess_daemon.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/skypilot_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/status_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/task.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/aws-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/azure-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/cudo-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/fluidstack-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/gcp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/ibm-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/jobs-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/kubernetes-ingress.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/kubernetes-loadbalancer.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/kubernetes-port-forward-proxy-command.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/kubernetes-ssh-jump.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/lambda-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/local-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/oci-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/paperspace-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/runpod-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/scp-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/sky-serve-controller.yaml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/templates/vsphere-ray.yml.j2 +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/usage/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/usage/constants.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/usage/usage_lib.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/accelerator_registry.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/admin_policy_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/cli_utils/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/cli_utils/status_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/cluster_yaml_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/command_runner.pyi +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/common_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/controller_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/dag_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/db_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/env_options.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/__init__.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/create_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/delete_cluster.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/generate_kind_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/generate_kubeconfig.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/gpu_labeler.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/k8s_gpu_labeler_job.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/rsync_helper.sh +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes/ssh_jump_lifecycle_manager.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/kubernetes_enums.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/resources_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/rich_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/subprocess_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/timeline.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/ux_utils.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/utils/validator.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/skypilot_nightly.egg-info/dependency_links.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/skypilot_nightly.egg-info/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/skypilot_nightly.egg-info/requires.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/skypilot_nightly.egg-info/top_level.txt +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_api.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_cli.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_config.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_global_user_state.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_jobs.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_jobs_and_serve.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_list_accelerators.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_optimizer_dryruns.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_optimizer_random_dag.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_serve_autoscaler.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_storage.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_wheels.py +0 -0
- {skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/tests/test_yaml_parser.py +0 -0
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20240928
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -163,27 +163,27 @@ Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
|
163
163
|
|
164
164
|
----
|
165
165
|
:fire: *News* :fire:
|
166
|
-
- [Sep, 2024] Point,
|
167
|
-
- [Sep, 2024] Run and deploy [Pixtral](./llm/pixtral), the first open-source multimodal model from Mistral AI.
|
168
|
-
- [Jul, 2024] [Finetune](./llm/llama-3_1-finetuning/) and [serve](./llm/llama-3_1/) **Llama 3.1** on your infra
|
166
|
+
- [Sep, 2024] Point, Launch and Serve **Llama 3.2** on on Kubernetes or Any Cloud: [**example**](./llm/llama-3_2/)
|
167
|
+
- [Sep, 2024] Run and deploy [**Pixtral**](./llm/pixtral), the first open-source multimodal model from Mistral AI.
|
168
|
+
- [Jul, 2024] [**Finetune**](./llm/llama-3_1-finetuning/) and [**serve**](./llm/llama-3_1/) **Llama 3.1** on your infra
|
169
169
|
- [Jun, 2024] Reproduce **GPT** with [llm.c](https://github.com/karpathy/llm.c/discussions/481) on any cloud: [**guide**](./llm/gpt-2/)
|
170
|
-
- [Apr, 2024] Serve
|
171
|
-
- [Apr, 2024] Using
|
172
|
-
- [Feb, 2024] Deploying and scaling
|
173
|
-
- [Feb, 2024] Serving
|
174
|
-
- [Dec, 2023]
|
175
|
-
- [Nov, 2023] Using
|
176
|
-
- [Sep, 2023] Case study: [**Covariant**](https://covariant.ai/) transformed AI development on the cloud using SkyPilot, delivering models 4x faster cost-effectively: [**read the case study**](https://blog.skypilot.co/covariant/)
|
177
|
-
- [Aug, 2023] **Finetuning Cookbook**: Finetuning Llama 2 in your own cloud environment, privately: [**example**](./llm/vicuna-llama-2/), [**blog post**](https://blog.skypilot.co/finetuning-llama2-operational-guide/)
|
170
|
+
- [Apr, 2024] Serve **Qwen-110B** on your infra: [**example**](./llm/qwen/)
|
171
|
+
- [Apr, 2024] Using **Ollama** to deploy quantized LLMs on CPUs and GPUs: [**example**](./llm/ollama/)
|
172
|
+
- [Feb, 2024] Deploying and scaling **Gemma** with SkyServe: [**example**](./llm/gemma/)
|
173
|
+
- [Feb, 2024] Serving **Code Llama 70B** with vLLM and SkyServe: [**example**](./llm/codellama/)
|
174
|
+
- [Dec, 2023] **Mixtral 8x7B**, a high quality sparse mixture-of-experts model, was released by Mistral AI! Deploy via SkyPilot on any cloud: [**example**](./llm/mixtral/)
|
175
|
+
- [Nov, 2023] Using **Axolotl** to finetune Mistral 7B on the cloud (on-demand and spot): [**example**](./llm/axolotl/)
|
178
176
|
|
179
177
|
<details>
|
180
178
|
<summary>Archived</summary>
|
181
|
-
|
179
|
+
|
182
180
|
- [Apr, 2024] Serve and finetune [**Llama 3**](https://skypilot.readthedocs.io/en/latest/gallery/llms/llama-3.html) on any cloud or Kubernetes: [**example**](./llm/llama-3/)
|
183
181
|
- [Mar, 2024] Serve and deploy [**Databricks DBRX**](https://www.databricks.com/blog/introducing-dbrx-new-state-art-open-llm) on your infra: [**example**](./llm/dbrx/)
|
184
182
|
- [Feb, 2024] Speed up your LLM deployments with [**SGLang**](https://github.com/sgl-project/sglang) for 5x throughput on SkyServe: [**example**](./llm/sglang/)
|
185
183
|
- [Dec, 2023] Using [**LoRAX**](https://github.com/predibase/lorax) to serve 1000s of finetuned LLMs on a single instance in the cloud: [**example**](./llm/lorax/)
|
186
184
|
- [Sep, 2023] [**Mistral 7B**](https://mistral.ai/news/announcing-mistral-7b/), a high-quality open LLM, was released! Deploy via SkyPilot on any cloud: [**Mistral docs**](https://docs.mistral.ai/self-deployment/skypilot)
|
185
|
+
- [Sep, 2023] Case study: [**Covariant**](https://covariant.ai/) transformed AI development on the cloud using SkyPilot, delivering models 4x faster cost-effectively: [**read the case study**](https://blog.skypilot.co/covariant/)
|
186
|
+
- [Aug, 2023] **Finetuning Cookbook**: Finetuning Llama 2 in your own cloud environment, privately: [**example**](./llm/vicuna-llama-2/), [**blog post**](https://blog.skypilot.co/finetuning-llama2-operational-guide/)
|
187
187
|
- [July, 2023] Self-Hosted **Llama-2 Chatbot** on Any Cloud: [**example**](./llm/llama-2/)
|
188
188
|
- [June, 2023] Serving LLM 24x Faster On the Cloud [**with vLLM**](https://vllm.ai/) and SkyPilot: [**example**](./llm/vllm/), [**blog post**](https://blog.skypilot.co/serving-llm-24x-faster-on-the-cloud-with-vllm-and-skypilot/)
|
189
189
|
- [April, 2023] [SkyPilot YAMLs](./llm/vicuna/) for finetuning & serving the [Vicuna LLM](https://lmsys.org/blog/2023-03-30-vicuna/) with a single command!
|
@@ -287,11 +287,12 @@ SkyPilot then performs the heavy-lifting for you, including:
|
|
287
287
|
Refer to [Quickstart](https://skypilot.readthedocs.io/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
|
288
288
|
|
289
289
|
## More Information
|
290
|
-
To learn more, see our [
|
290
|
+
To learn more, see our [documentation](https://skypilot.readthedocs.io/en/latest/), [blog](https://blog.skypilot.co/), and [community integrations](https://blog.skypilot.co/community/).
|
291
291
|
|
292
292
|
<!-- Keep this section in sync with index.rst in SkyPilot Docs -->
|
293
293
|
Runnable examples:
|
294
294
|
- LLMs on SkyPilot
|
295
|
+
- [Llama 3.2: lightweight and vision models](./llm/llama-3_2/)
|
295
296
|
- [Pixtral](./llm/pixtral/)
|
296
297
|
- [Llama 3.1 finetuning](./llm/llama-3_1-finetuning/) and [serving](./llm/llama-3_1/)
|
297
298
|
- [GPT-2 via `llm.c`](./llm/gpt-2/)
|
@@ -337,4 +338,4 @@ We are excited to hear your feedback!
|
|
337
338
|
For general discussions, join us on the [SkyPilot Slack](http://slack.skypilot.co).
|
338
339
|
|
339
340
|
## Contributing
|
340
|
-
We welcome
|
341
|
+
We welcome all contributions to the project! See [CONTRIBUTING](CONTRIBUTING.md) for how to get involved.
|
@@ -26,27 +26,27 @@
|
|
26
26
|
|
27
27
|
----
|
28
28
|
:fire: *News* :fire:
|
29
|
-
- [Sep, 2024] Point,
|
30
|
-
- [Sep, 2024] Run and deploy [Pixtral](./llm/pixtral), the first open-source multimodal model from Mistral AI.
|
31
|
-
- [Jul, 2024] [Finetune](./llm/llama-3_1-finetuning/) and [serve](./llm/llama-3_1/) **Llama 3.1** on your infra
|
29
|
+
- [Sep, 2024] Point, Launch and Serve **Llama 3.2** on on Kubernetes or Any Cloud: [**example**](./llm/llama-3_2/)
|
30
|
+
- [Sep, 2024] Run and deploy [**Pixtral**](./llm/pixtral), the first open-source multimodal model from Mistral AI.
|
31
|
+
- [Jul, 2024] [**Finetune**](./llm/llama-3_1-finetuning/) and [**serve**](./llm/llama-3_1/) **Llama 3.1** on your infra
|
32
32
|
- [Jun, 2024] Reproduce **GPT** with [llm.c](https://github.com/karpathy/llm.c/discussions/481) on any cloud: [**guide**](./llm/gpt-2/)
|
33
|
-
- [Apr, 2024] Serve
|
34
|
-
- [Apr, 2024] Using
|
35
|
-
- [Feb, 2024] Deploying and scaling
|
36
|
-
- [Feb, 2024] Serving
|
37
|
-
- [Dec, 2023]
|
38
|
-
- [Nov, 2023] Using
|
39
|
-
- [Sep, 2023] Case study: [**Covariant**](https://covariant.ai/) transformed AI development on the cloud using SkyPilot, delivering models 4x faster cost-effectively: [**read the case study**](https://blog.skypilot.co/covariant/)
|
40
|
-
- [Aug, 2023] **Finetuning Cookbook**: Finetuning Llama 2 in your own cloud environment, privately: [**example**](./llm/vicuna-llama-2/), [**blog post**](https://blog.skypilot.co/finetuning-llama2-operational-guide/)
|
33
|
+
- [Apr, 2024] Serve **Qwen-110B** on your infra: [**example**](./llm/qwen/)
|
34
|
+
- [Apr, 2024] Using **Ollama** to deploy quantized LLMs on CPUs and GPUs: [**example**](./llm/ollama/)
|
35
|
+
- [Feb, 2024] Deploying and scaling **Gemma** with SkyServe: [**example**](./llm/gemma/)
|
36
|
+
- [Feb, 2024] Serving **Code Llama 70B** with vLLM and SkyServe: [**example**](./llm/codellama/)
|
37
|
+
- [Dec, 2023] **Mixtral 8x7B**, a high quality sparse mixture-of-experts model, was released by Mistral AI! Deploy via SkyPilot on any cloud: [**example**](./llm/mixtral/)
|
38
|
+
- [Nov, 2023] Using **Axolotl** to finetune Mistral 7B on the cloud (on-demand and spot): [**example**](./llm/axolotl/)
|
41
39
|
|
42
40
|
<details>
|
43
41
|
<summary>Archived</summary>
|
44
|
-
|
42
|
+
|
45
43
|
- [Apr, 2024] Serve and finetune [**Llama 3**](https://skypilot.readthedocs.io/en/latest/gallery/llms/llama-3.html) on any cloud or Kubernetes: [**example**](./llm/llama-3/)
|
46
44
|
- [Mar, 2024] Serve and deploy [**Databricks DBRX**](https://www.databricks.com/blog/introducing-dbrx-new-state-art-open-llm) on your infra: [**example**](./llm/dbrx/)
|
47
45
|
- [Feb, 2024] Speed up your LLM deployments with [**SGLang**](https://github.com/sgl-project/sglang) for 5x throughput on SkyServe: [**example**](./llm/sglang/)
|
48
46
|
- [Dec, 2023] Using [**LoRAX**](https://github.com/predibase/lorax) to serve 1000s of finetuned LLMs on a single instance in the cloud: [**example**](./llm/lorax/)
|
49
47
|
- [Sep, 2023] [**Mistral 7B**](https://mistral.ai/news/announcing-mistral-7b/), a high-quality open LLM, was released! Deploy via SkyPilot on any cloud: [**Mistral docs**](https://docs.mistral.ai/self-deployment/skypilot)
|
48
|
+
- [Sep, 2023] Case study: [**Covariant**](https://covariant.ai/) transformed AI development on the cloud using SkyPilot, delivering models 4x faster cost-effectively: [**read the case study**](https://blog.skypilot.co/covariant/)
|
49
|
+
- [Aug, 2023] **Finetuning Cookbook**: Finetuning Llama 2 in your own cloud environment, privately: [**example**](./llm/vicuna-llama-2/), [**blog post**](https://blog.skypilot.co/finetuning-llama2-operational-guide/)
|
50
50
|
- [July, 2023] Self-Hosted **Llama-2 Chatbot** on Any Cloud: [**example**](./llm/llama-2/)
|
51
51
|
- [June, 2023] Serving LLM 24x Faster On the Cloud [**with vLLM**](https://vllm.ai/) and SkyPilot: [**example**](./llm/vllm/), [**blog post**](https://blog.skypilot.co/serving-llm-24x-faster-on-the-cloud-with-vllm-and-skypilot/)
|
52
52
|
- [April, 2023] [SkyPilot YAMLs](./llm/vicuna/) for finetuning & serving the [Vicuna LLM](https://lmsys.org/blog/2023-03-30-vicuna/) with a single command!
|
@@ -153,11 +153,12 @@ SkyPilot then performs the heavy-lifting for you, including:
|
|
153
153
|
Refer to [Quickstart](https://skypilot.readthedocs.io/en/latest/getting-started/quickstart.html) to get started with SkyPilot.
|
154
154
|
|
155
155
|
## More Information
|
156
|
-
To learn more, see our [
|
156
|
+
To learn more, see our [documentation](https://skypilot.readthedocs.io/en/latest/), [blog](https://blog.skypilot.co/), and [community integrations](https://blog.skypilot.co/community/).
|
157
157
|
|
158
158
|
<!-- Keep this section in sync with index.rst in SkyPilot Docs -->
|
159
159
|
Runnable examples:
|
160
160
|
- LLMs on SkyPilot
|
161
|
+
- [Llama 3.2: lightweight and vision models](./llm/llama-3_2/)
|
161
162
|
- [Pixtral](./llm/pixtral/)
|
162
163
|
- [Llama 3.1 finetuning](./llm/llama-3_1-finetuning/) and [serving](./llm/llama-3_1/)
|
163
164
|
- [GPT-2 via `llm.c`](./llm/gpt-2/)
|
@@ -203,4 +204,4 @@ We are excited to hear your feedback!
|
|
203
204
|
For general discussions, join us on the [SkyPilot Slack](http://slack.skypilot.co).
|
204
205
|
|
205
206
|
## Contributing
|
206
|
-
We welcome
|
207
|
+
We welcome all contributions to the project! See [CONTRIBUTING](CONTRIBUTING.md) for how to get involved.
|
@@ -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 = 'dacf27348ae1446c3c93d0ee2fc57702c5366eac'
|
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.dev20240928'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
{skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/adaptors/kubernetes.py
RENAMED
@@ -75,15 +75,17 @@ def _load_config(context: Optional[str] = None):
|
|
75
75
|
suffix += f' Error: {str(e)}'
|
76
76
|
# Check if exception was due to no current-context
|
77
77
|
if 'Expected key current-context' in str(e):
|
78
|
-
err_str = (
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
78
|
+
err_str = (
|
79
|
+
f'Failed to load Kubernetes configuration for {context!r}. '
|
80
|
+
'Kubeconfig does not contain any valid context(s).'
|
81
|
+
f'{suffix}\n'
|
82
|
+
' If you were running a local Kubernetes '
|
83
|
+
'cluster, run `sky local up` to start the cluster.')
|
83
84
|
else:
|
84
|
-
err_str = (
|
85
|
-
|
86
|
-
|
85
|
+
err_str = (
|
86
|
+
f'Failed to load Kubernetes configuration for {context!r}. '
|
87
|
+
'Please check if your kubeconfig file exists at '
|
88
|
+
f'~/.kube/config and is valid.{suffix}')
|
87
89
|
err_str += '\nTo disable Kubernetes for SkyPilot: run `sky check`.'
|
88
90
|
with ux_utils.print_exception_no_traceback():
|
89
91
|
raise ValueError(err_str) from None
|
{skypilot_nightly-1.0.0.dev20240926 → skypilot_nightly-1.0.0.dev20240928}/sky/authentication.py
RENAMED
@@ -378,11 +378,11 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
|
|
378
378
|
public_key_path = os.path.expanduser(PUBLIC_SSH_KEY_PATH)
|
379
379
|
secret_name = clouds.Kubernetes.SKY_SSH_KEY_SECRET_NAME
|
380
380
|
secret_field_name = clouds.Kubernetes().ssh_key_secret_field_name
|
381
|
-
namespace = config['provider'].get(
|
382
|
-
'namespace',
|
383
|
-
kubernetes_utils.get_current_kube_config_context_namespace())
|
384
381
|
context = config['provider'].get(
|
385
382
|
'context', kubernetes_utils.get_current_kube_config_context_name())
|
383
|
+
namespace = config['provider'].get(
|
384
|
+
'namespace',
|
385
|
+
kubernetes_utils.get_kube_config_context_namespace(context))
|
386
386
|
k8s = kubernetes.kubernetes
|
387
387
|
with open(public_key_path, 'r', encoding='utf-8') as f:
|
388
388
|
public_key = f.read()
|
@@ -425,8 +425,8 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
|
|
425
425
|
ssh_jump_name,
|
426
426
|
nodeport_mode,
|
427
427
|
private_key_path=private_key_path,
|
428
|
-
|
429
|
-
|
428
|
+
context=context,
|
429
|
+
namespace=namespace)
|
430
430
|
elif network_mode == port_forward_mode:
|
431
431
|
# Using `kubectl port-forward` creates a direct tunnel to the pod and
|
432
432
|
# does not require a ssh jump pod.
|
@@ -441,7 +441,11 @@ def setup_kubernetes_authentication(config: Dict[str, Any]) -> Dict[str, Any]:
|
|
441
441
|
# on GKE.
|
442
442
|
ssh_target = config['cluster_name'] + '-head'
|
443
443
|
ssh_proxy_cmd = kubernetes_utils.get_ssh_proxy_command(
|
444
|
-
ssh_target,
|
444
|
+
ssh_target,
|
445
|
+
port_forward_mode,
|
446
|
+
private_key_path=private_key_path,
|
447
|
+
context=context,
|
448
|
+
namespace=namespace)
|
445
449
|
else:
|
446
450
|
# This should never happen because we check for this in from_str above.
|
447
451
|
raise ValueError(f'Unsupported networking mode: {network_mode_str}')
|
@@ -2082,7 +2082,7 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
2082
2082
|
"""
|
2083
2083
|
# Bump if any fields get added/removed/changed, and add backward
|
2084
2084
|
# compaitibility logic in __setstate__.
|
2085
|
-
_VERSION =
|
2085
|
+
_VERSION = 9
|
2086
2086
|
|
2087
2087
|
def __init__(
|
2088
2088
|
self,
|
@@ -2516,6 +2516,19 @@ class CloudVmRayResourceHandle(backends.backend.ResourceHandle):
|
|
2516
2516
|
if version < 8:
|
2517
2517
|
self.cached_cluster_info = None
|
2518
2518
|
|
2519
|
+
if version < 9:
|
2520
|
+
# For backward compatibility, we should update the region of a
|
2521
|
+
# SkyPilot cluster on Kubernetes to the actual context it is using.
|
2522
|
+
# pylint: disable=import-outside-toplevel
|
2523
|
+
launched_resources = state['launched_resources']
|
2524
|
+
if isinstance(launched_resources.cloud, clouds.Kubernetes):
|
2525
|
+
yaml_config = common_utils.read_yaml(
|
2526
|
+
os.path.expanduser(state['_cluster_yaml']))
|
2527
|
+
context = kubernetes_utils.get_context_from_config(
|
2528
|
+
yaml_config['provider'])
|
2529
|
+
state['launched_resources'] = launched_resources.copy(
|
2530
|
+
region=context)
|
2531
|
+
|
2519
2532
|
self.__dict__.update(state)
|
2520
2533
|
|
2521
2534
|
# Because the update_cluster_ips and update_ssh_ports
|
@@ -3026,14 +3026,11 @@ def show_gpus(
|
|
3026
3026
|
kubernetes_is_enabled = sky_clouds.cloud_in_iterable(
|
3027
3027
|
sky_clouds.Kubernetes(), global_user_state.get_cached_enabled_clouds())
|
3028
3028
|
|
3029
|
-
if cloud_is_kubernetes and region is not None:
|
3030
|
-
raise click.UsageError(
|
3031
|
-
'The --region flag cannot be set with --cloud kubernetes.')
|
3032
|
-
|
3033
3029
|
def _list_to_str(lst):
|
3034
3030
|
return ', '.join([str(e) for e in lst])
|
3035
3031
|
|
3036
3032
|
def _get_kubernetes_realtime_gpu_table(
|
3033
|
+
context: Optional[str] = None,
|
3037
3034
|
name_filter: Optional[str] = None,
|
3038
3035
|
quantity_filter: Optional[int] = None):
|
3039
3036
|
if quantity_filter:
|
@@ -3048,7 +3045,7 @@ def show_gpus(
|
|
3048
3045
|
gpus_only=True,
|
3049
3046
|
clouds='kubernetes',
|
3050
3047
|
name_filter=name_filter,
|
3051
|
-
region_filter=
|
3048
|
+
region_filter=context,
|
3052
3049
|
quantity_filter=quantity_filter,
|
3053
3050
|
case_sensitive=False)
|
3054
3051
|
assert (set(counts.keys()) == set(capacity.keys()) == set(
|
@@ -3078,11 +3075,11 @@ def show_gpus(
|
|
3078
3075
|
])
|
3079
3076
|
return realtime_gpu_table
|
3080
3077
|
|
3081
|
-
def _get_kubernetes_node_info_table():
|
3078
|
+
def _get_kubernetes_node_info_table(context: Optional[str]):
|
3082
3079
|
node_table = log_utils.create_table(
|
3083
3080
|
['NODE_NAME', 'GPU_NAME', 'TOTAL_GPUS', 'FREE_GPUS'])
|
3084
3081
|
|
3085
|
-
node_info_dict = kubernetes_utils.get_kubernetes_node_info()
|
3082
|
+
node_info_dict = kubernetes_utils.get_kubernetes_node_info(context)
|
3086
3083
|
for node_name, node_info in node_info_dict.items():
|
3087
3084
|
node_table.add_row([
|
3088
3085
|
node_name, node_info.gpu_type,
|
@@ -3116,11 +3113,13 @@ def show_gpus(
|
|
3116
3113
|
print_section_titles = False
|
3117
3114
|
# If cloud is kubernetes, we want to show real-time capacity
|
3118
3115
|
if kubernetes_is_enabled and (cloud is None or cloud_is_kubernetes):
|
3116
|
+
context = region
|
3119
3117
|
try:
|
3120
3118
|
# If --cloud kubernetes is not specified, we want to catch
|
3121
3119
|
# the case where no GPUs are available on the cluster and
|
3122
3120
|
# print the warning at the end.
|
3123
|
-
k8s_realtime_table = _get_kubernetes_realtime_gpu_table(
|
3121
|
+
k8s_realtime_table = _get_kubernetes_realtime_gpu_table(
|
3122
|
+
context)
|
3124
3123
|
except ValueError as e:
|
3125
3124
|
if not cloud_is_kubernetes:
|
3126
3125
|
# Make it a note if cloud is not kubernetes
|
@@ -3129,9 +3128,10 @@ def show_gpus(
|
|
3129
3128
|
else:
|
3130
3129
|
print_section_titles = True
|
3131
3130
|
yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3132
|
-
f'Kubernetes GPUs{
|
3131
|
+
f'Kubernetes GPUs (Context: {context})'
|
3132
|
+
f'{colorama.Style.RESET_ALL}\n')
|
3133
3133
|
yield from k8s_realtime_table.get_string()
|
3134
|
-
k8s_node_table = _get_kubernetes_node_info_table()
|
3134
|
+
k8s_node_table = _get_kubernetes_node_info_table(context)
|
3135
3135
|
yield '\n\n'
|
3136
3136
|
yield (f'{colorama.Fore.CYAN}{colorama.Style.BRIGHT}'
|
3137
3137
|
f'Kubernetes per node GPU availability'
|
@@ -5072,15 +5072,7 @@ def local():
|
|
5072
5072
|
pass
|
5073
5073
|
|
5074
5074
|
|
5075
|
-
|
5076
|
-
default=True,
|
5077
|
-
is_flag=True,
|
5078
|
-
help='Launch cluster without GPU support even '
|
5079
|
-
'if GPUs are detected on the host.')
|
5080
|
-
@local.command('up', cls=_DocumentedCodeCommand)
|
5081
|
-
@usage_lib.entrypoint
|
5082
|
-
def local_up(gpus: bool):
|
5083
|
-
"""Creates a local cluster."""
|
5075
|
+
def _deploy_local_cluster(gpus: bool):
|
5084
5076
|
cluster_created = False
|
5085
5077
|
|
5086
5078
|
# Check if GPUs are available on the host
|
@@ -5206,6 +5198,124 @@ def local_up(gpus: bool):
|
|
5206
5198
|
f'{gpu_hint}')
|
5207
5199
|
|
5208
5200
|
|
5201
|
+
def _deploy_remote_cluster(ip_file: str, ssh_user: str, ssh_key_path: str,
|
5202
|
+
cleanup: bool):
|
5203
|
+
success = False
|
5204
|
+
path_to_package = os.path.dirname(os.path.dirname(__file__))
|
5205
|
+
up_script_path = os.path.join(path_to_package, 'sky/utils/kubernetes',
|
5206
|
+
'deploy_remote_cluster.sh')
|
5207
|
+
# Get directory of script and run it from there
|
5208
|
+
cwd = os.path.dirname(os.path.abspath(up_script_path))
|
5209
|
+
|
5210
|
+
deploy_command = f'{up_script_path} {ip_file} {ssh_user} {ssh_key_path}'
|
5211
|
+
if cleanup:
|
5212
|
+
deploy_command += ' --cleanup'
|
5213
|
+
|
5214
|
+
# Convert the command to a format suitable for subprocess
|
5215
|
+
deploy_command = shlex.split(deploy_command)
|
5216
|
+
|
5217
|
+
# Setup logging paths
|
5218
|
+
run_timestamp = backend_utils.get_run_timestamp()
|
5219
|
+
log_path = os.path.join(constants.SKY_LOGS_DIRECTORY, run_timestamp,
|
5220
|
+
'local_up.log')
|
5221
|
+
tail_cmd = 'tail -n100 -f ' + log_path
|
5222
|
+
|
5223
|
+
# Check if ~/.kube/config exists:
|
5224
|
+
if os.path.exists(os.path.expanduser('~/.kube/config')):
|
5225
|
+
click.echo('Found existing kube config. '
|
5226
|
+
'It will be backed up to ~/.kube/config.bak.')
|
5227
|
+
style = colorama.Style
|
5228
|
+
click.echo('To view detailed progress: '
|
5229
|
+
f'{style.BRIGHT}{tail_cmd}{style.RESET_ALL}')
|
5230
|
+
if cleanup:
|
5231
|
+
msg_str = 'Cleaning up remote cluster...'
|
5232
|
+
else:
|
5233
|
+
msg_str = 'Deploying remote cluster...'
|
5234
|
+
with rich_utils.safe_status(f'[bold cyan]{msg_str}'):
|
5235
|
+
returncode, _, stderr = log_lib.run_with_log(
|
5236
|
+
cmd=deploy_command,
|
5237
|
+
log_path=log_path,
|
5238
|
+
require_outputs=True,
|
5239
|
+
stream_logs=False,
|
5240
|
+
line_processor=log_utils.SkyRemoteUpLineProcessor(),
|
5241
|
+
cwd=cwd)
|
5242
|
+
if returncode == 0:
|
5243
|
+
success = True
|
5244
|
+
else:
|
5245
|
+
with ux_utils.print_exception_no_traceback():
|
5246
|
+
raise RuntimeError(
|
5247
|
+
'Failed to deploy remote cluster. '
|
5248
|
+
f'Full log: {log_path}'
|
5249
|
+
f'\nError: {style.BRIGHT}{stderr}{style.RESET_ALL}')
|
5250
|
+
|
5251
|
+
if success:
|
5252
|
+
if cleanup:
|
5253
|
+
click.echo(f'{colorama.Fore.GREEN}'
|
5254
|
+
'🎉 Remote cluster cleaned up successfully.'
|
5255
|
+
f'{style.RESET_ALL}')
|
5256
|
+
else:
|
5257
|
+
click.echo('Cluster deployment done. You can now run tasks on '
|
5258
|
+
'this cluster.\nE.g., run a task with: '
|
5259
|
+
'sky launch --cloud kubernetes -- echo hello world.'
|
5260
|
+
f'\n{colorama.Fore.GREEN}🎉 Remote cluster deployed '
|
5261
|
+
f'successfully. {style.RESET_ALL}')
|
5262
|
+
|
5263
|
+
|
5264
|
+
@click.option('--gpus/--no-gpus',
|
5265
|
+
default=True,
|
5266
|
+
is_flag=True,
|
5267
|
+
help='Launch cluster without GPU support even '
|
5268
|
+
'if GPUs are detected on the host.')
|
5269
|
+
@click.option(
|
5270
|
+
'--ips',
|
5271
|
+
type=str,
|
5272
|
+
required=False,
|
5273
|
+
help='Path to the file containing IP addresses of remote machines.')
|
5274
|
+
@click.option('--ssh-user',
|
5275
|
+
type=str,
|
5276
|
+
required=False,
|
5277
|
+
help='SSH username for accessing remote machines.')
|
5278
|
+
@click.option('--ssh-key-path',
|
5279
|
+
type=str,
|
5280
|
+
required=False,
|
5281
|
+
help='Path to the SSH private key.')
|
5282
|
+
@click.option('--cleanup',
|
5283
|
+
is_flag=True,
|
5284
|
+
help='Clean up the remote cluster instead of deploying it.')
|
5285
|
+
@local.command('up', cls=_DocumentedCodeCommand)
|
5286
|
+
@usage_lib.entrypoint
|
5287
|
+
def local_up(gpus: bool, ips: str, ssh_user: str, ssh_key_path: str,
|
5288
|
+
cleanup: bool):
|
5289
|
+
"""Creates a local or remote cluster."""
|
5290
|
+
|
5291
|
+
def _validate_args(ips, ssh_user, ssh_key_path, cleanup):
|
5292
|
+
# If any of --ips, --ssh-user, or --ssh-key-path is specified,
|
5293
|
+
# all must be specified
|
5294
|
+
if bool(ips) or bool(ssh_user) or bool(ssh_key_path):
|
5295
|
+
if not (ips and ssh_user and ssh_key_path):
|
5296
|
+
raise click.BadParameter(
|
5297
|
+
'All --ips, --ssh-user, and --ssh-key-path '
|
5298
|
+
'must be specified together.')
|
5299
|
+
|
5300
|
+
# --cleanup can only be used if --ips, --ssh-user and --ssh-key-path
|
5301
|
+
# are all provided
|
5302
|
+
if cleanup and not (ips and ssh_user and ssh_key_path):
|
5303
|
+
raise click.BadParameter('--cleanup can only be used with '
|
5304
|
+
'--ips, --ssh-user and --ssh-key-path.')
|
5305
|
+
|
5306
|
+
_validate_args(ips, ssh_user, ssh_key_path, cleanup)
|
5307
|
+
|
5308
|
+
# If remote deployment arguments are specified, run remote up script
|
5309
|
+
if ips and ssh_user and ssh_key_path:
|
5310
|
+
# Convert ips and ssh_key_path to absolute paths
|
5311
|
+
ips = os.path.abspath(ips)
|
5312
|
+
ssh_key_path = os.path.abspath(ssh_key_path)
|
5313
|
+
_deploy_remote_cluster(ips, ssh_user, ssh_key_path, cleanup)
|
5314
|
+
else:
|
5315
|
+
# Run local deployment (kind) if no remote args are specified
|
5316
|
+
_deploy_local_cluster(gpus)
|
5317
|
+
|
5318
|
+
|
5209
5319
|
@local.command('down', cls=_DocumentedCodeCommand)
|
5210
5320
|
@usage_lib.entrypoint
|
5211
5321
|
def local_down():
|