skypilot-nightly 1.0.0.dev20250219__py3-none-any.whl → 1.0.0.dev20250221__py3-none-any.whl
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.
- sky/__init__.py +4 -2
- sky/adaptors/nebius.py +85 -0
- sky/backends/backend_utils.py +8 -0
- sky/backends/cloud_vm_ray_backend.py +10 -2
- sky/client/sdk.py +8 -3
- sky/clouds/__init__.py +2 -0
- sky/clouds/nebius.py +294 -0
- sky/clouds/service_catalog/constants.py +1 -1
- sky/clouds/service_catalog/nebius_catalog.py +116 -0
- sky/jobs/controller.py +17 -0
- sky/jobs/server/core.py +31 -3
- sky/provision/__init__.py +1 -0
- sky/provision/kubernetes/instance.py +5 -1
- sky/provision/kubernetes/utils.py +8 -7
- sky/provision/nebius/__init__.py +11 -0
- sky/provision/nebius/config.py +11 -0
- sky/provision/nebius/instance.py +285 -0
- sky/provision/nebius/utils.py +310 -0
- sky/server/common.py +5 -7
- sky/server/requests/executor.py +94 -87
- sky/server/server.py +10 -5
- sky/server/stream_utils.py +8 -11
- sky/setup_files/dependencies.py +9 -1
- sky/skylet/constants.py +3 -6
- sky/task.py +6 -0
- sky/templates/jobs-controller.yaml.j2 +3 -0
- sky/templates/nebius-ray.yml.j2 +79 -0
- sky/utils/common_utils.py +38 -0
- sky/utils/controller_utils.py +66 -2
- {skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/METADATA +8 -4
- {skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/RECORD +35 -27
- {skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/top_level.txt +0 -0
sky/server/stream_utils.py
CHANGED
@@ -68,7 +68,7 @@ async def log_streamer(request_id: Optional[str],
|
|
68
68
|
# Sleep 0 to yield, so other coroutines can run. This busy waiting
|
69
69
|
# loop is performance critical for short-running requests, so we do
|
70
70
|
# not want to yield too long.
|
71
|
-
await asyncio.sleep(0)
|
71
|
+
await asyncio.sleep(0.1)
|
72
72
|
request_task = requests_lib.get_request(request_id)
|
73
73
|
if not follow:
|
74
74
|
break
|
@@ -88,6 +88,9 @@ async def log_streamer(request_id: Optional[str],
|
|
88
88
|
yield line_str
|
89
89
|
|
90
90
|
while True:
|
91
|
+
# Sleep 0 to yield control to allow other coroutines to run,
|
92
|
+
# while keeps the loop tight to make log stream responsive.
|
93
|
+
await asyncio.sleep(0)
|
91
94
|
line: Optional[bytes] = await f.readline()
|
92
95
|
if not line:
|
93
96
|
if request_id is not None:
|
@@ -100,24 +103,18 @@ async def log_streamer(request_id: Optional[str],
|
|
100
103
|
break
|
101
104
|
if not follow:
|
102
105
|
break
|
103
|
-
|
104
|
-
#
|
105
|
-
#
|
106
|
-
|
107
|
-
await asyncio.sleep(0)
|
106
|
+
# Sleep shortly to avoid storming the DB and CPU, this has
|
107
|
+
# little impact on the responsivness here since we are waiting
|
108
|
+
# for a new line to come in.
|
109
|
+
await asyncio.sleep(0.1)
|
108
110
|
continue
|
109
111
|
line_str = line.decode('utf-8')
|
110
112
|
if plain_logs:
|
111
113
|
is_payload, line_str = message_utils.decode_payload(
|
112
114
|
line_str, raise_for_mismatch=False)
|
113
115
|
if is_payload:
|
114
|
-
# Sleep 0 to yield, so other coroutines can run. This busy
|
115
|
-
# waiting loop is performance critical for short-running
|
116
|
-
# requests, so we do not want to yield too long.
|
117
|
-
await asyncio.sleep(0)
|
118
116
|
continue
|
119
117
|
yield line_str
|
120
|
-
await asyncio.sleep(0) # Allow other tasks to run
|
121
118
|
|
122
119
|
|
123
120
|
def stream_response(
|
sky/setup_files/dependencies.py
CHANGED
@@ -5,6 +5,7 @@ This file is imported by setup.py, so:
|
|
5
5
|
correct.
|
6
6
|
- It should not import any dependencies, as they may not be installed yet.
|
7
7
|
"""
|
8
|
+
import sys
|
8
9
|
from typing import Dict, List
|
9
10
|
|
10
11
|
install_requires = [
|
@@ -146,6 +147,13 @@ extras_require: Dict[str, List[str]] = {
|
|
146
147
|
# docs instead.
|
147
148
|
# 'vsphere-automation-sdk @ git+https://github.com/vmware/vsphere-automation-sdk-python.git@v8.0.1.0' pylint: disable=line-too-long
|
148
149
|
],
|
150
|
+
'nebius': ['nebius>=0.2.0',]
|
149
151
|
}
|
150
152
|
|
151
|
-
|
153
|
+
# Nebius needs python3.10. If python 3.9 [all] will not install nebius
|
154
|
+
if sys.version_info < (3, 10):
|
155
|
+
filtered_keys = [k for k in extras_require if k != 'nebius']
|
156
|
+
extras_require['all'] = sum(
|
157
|
+
[v for k, v in extras_require.items() if k != 'nebius'], [])
|
158
|
+
else:
|
159
|
+
extras_require['all'] = sum(extras_require.values(), [])
|
sky/skylet/constants.py
CHANGED
@@ -281,12 +281,9 @@ FILE_MOUNTS_REMOTE_TMP_DIR = '/tmp/sky-{}-filemounts-files'
|
|
281
281
|
# linking. E.g., in our API server deployment on k8s, ~/.sky/ is mounted from a
|
282
282
|
# persistent volume, so any contents in ~/.sky/ cannot be hard linked elsewhere.
|
283
283
|
FILE_MOUNTS_LOCAL_TMP_BASE_PATH = '~/.sky/tmp/'
|
284
|
-
|
285
|
-
#
|
286
|
-
|
287
|
-
FILE_MOUNTS_WORKDIR_SUBPATH = 'job-{run_id}/workdir'
|
288
|
-
FILE_MOUNTS_SUBPATH = 'job-{run_id}/local-file-mounts/{i}'
|
289
|
-
FILE_MOUNTS_TMP_SUBPATH = 'job-{run_id}/tmp-files'
|
284
|
+
# Base path for two-hop file mounts translation. See
|
285
|
+
# controller_utils.translate_local_file_mounts_to_two_hop().
|
286
|
+
FILE_MOUNTS_CONTROLLER_TMP_BASE_PATH = '~/.sky/tmp/controller'
|
290
287
|
|
291
288
|
# Used when an managed jobs are created and
|
292
289
|
# files are synced up to the cloud.
|
sky/task.py
CHANGED
@@ -1132,6 +1132,12 @@ class Task:
|
|
1132
1132
|
raise ValueError(f'Storage Type {store_type} '
|
1133
1133
|
'does not exist!')
|
1134
1134
|
|
1135
|
+
# TODO: Delete from storage_mounts, now that the storage is
|
1136
|
+
# translated into file_mounts. Note: as is, this will break
|
1137
|
+
# controller_utils.
|
1138
|
+
# _maybe_translate_local_file_mounts_and_sync_up(), which still
|
1139
|
+
# needs the storage, but not the file_mounts.
|
1140
|
+
|
1135
1141
|
def get_local_to_remote_file_mounts(self) -> Optional[Dict[str, str]]:
|
1136
1142
|
"""Returns file mounts of the form (dst=VM path, src=local path).
|
1137
1143
|
|
@@ -10,6 +10,9 @@ file_mounts:
|
|
10
10
|
{%- for remote_catalog_path, local_catalog_path in modified_catalogs.items() %}
|
11
11
|
{{remote_catalog_path}}: {{local_catalog_path}}
|
12
12
|
{%- endfor %}
|
13
|
+
{%- for controller_file_mount_path, local_file_mount_path in local_to_controller_file_mounts.items() %}
|
14
|
+
{{controller_file_mount_path}}: {{local_file_mount_path}}
|
15
|
+
{%- endfor %}
|
13
16
|
|
14
17
|
setup: |
|
15
18
|
{{ sky_activate_python_env }}
|
@@ -0,0 +1,79 @@
|
|
1
|
+
cluster_name: {{cluster_name_on_cloud}}
|
2
|
+
|
3
|
+
# The maximum number of workers nodes to launch in addition to the head node.
|
4
|
+
max_workers: {{num_nodes - 1}}
|
5
|
+
upscaling_speed: {{num_nodes - 1}}
|
6
|
+
idle_timeout_minutes: 60
|
7
|
+
|
8
|
+
provider:
|
9
|
+
type: external
|
10
|
+
module: sky.provision.nebius
|
11
|
+
region: "{{region}}"
|
12
|
+
|
13
|
+
auth:
|
14
|
+
ssh_user: ubuntu
|
15
|
+
ssh_private_key: {{ssh_private_key}}
|
16
|
+
|
17
|
+
available_node_types:
|
18
|
+
ray_head_default:
|
19
|
+
resources: {}
|
20
|
+
node_config:
|
21
|
+
InstanceType: {{instance_type}}
|
22
|
+
ImageId: {{image_id}}
|
23
|
+
DiskSize: {{disk_size}}
|
24
|
+
UserData: |
|
25
|
+
users:
|
26
|
+
- name: skypilot:ssh_user
|
27
|
+
shell: /bin/bash
|
28
|
+
sudo: ALL=(ALL) NOPASSWD:ALL
|
29
|
+
ssh_authorized_keys:
|
30
|
+
- |-
|
31
|
+
skypilot:ssh_public_key_content
|
32
|
+
|
33
|
+
head_node_type: ray_head_default
|
34
|
+
|
35
|
+
# Format: `REMOTE_PATH : LOCAL_PATH`
|
36
|
+
file_mounts: {
|
37
|
+
"{{sky_ray_yaml_remote_path}}": "{{sky_ray_yaml_local_path}}",
|
38
|
+
"{{sky_remote_path}}/{{sky_wheel_hash}}": "{{sky_local_path}}",
|
39
|
+
{%- for remote_path, local_path in credentials.items() %}
|
40
|
+
"{{remote_path}}": "{{local_path}}",
|
41
|
+
{%- endfor %}
|
42
|
+
}
|
43
|
+
|
44
|
+
rsync_exclude: []
|
45
|
+
|
46
|
+
initialization_commands: []
|
47
|
+
|
48
|
+
# List of shell commands to run to set up nodes.
|
49
|
+
# NOTE: these are very performance-sensitive. Each new item opens/closes an SSH
|
50
|
+
# connection, which is expensive. Try your best to co-locate commands into fewer
|
51
|
+
# items!
|
52
|
+
#
|
53
|
+
# Increment the following for catching performance bugs easier:
|
54
|
+
# current num items (num SSH connections): 1
|
55
|
+
setup_commands:
|
56
|
+
# Disable `unattended-upgrades` to prevent apt-get from hanging. It should be called at the beginning before the process started to avoid being blocked. (This is a temporary fix.)
|
57
|
+
# Create ~/.ssh/config file in case the file does not exist in the image.
|
58
|
+
# Line 'rm ..': there is another installation of pip.
|
59
|
+
# Line 'sudo bash ..': set the ulimit as suggested by ray docs for performance. https://docs.ray.io/en/latest/cluster/vms/user-guides/large-cluster-best-practices.html#system-configuration
|
60
|
+
# Line 'sudo grep ..': set the number of threads per process to unlimited to avoid ray job submit stucking issue when the number of running ray jobs increase.
|
61
|
+
# Line 'mkdir -p ..': disable host key check
|
62
|
+
# Line 'python3 -c ..': patch the buggy ray files and enable `-o allow_other` option for `goofys`
|
63
|
+
- {%- for initial_setup_command in initial_setup_commands %}
|
64
|
+
{{ initial_setup_command }}
|
65
|
+
{%- endfor %}
|
66
|
+
sudo systemctl stop unattended-upgrades || true;
|
67
|
+
sudo systemctl disable unattended-upgrades || true;
|
68
|
+
sudo sed -i 's/Unattended-Upgrade "1"/Unattended-Upgrade "0"/g' /etc/apt/apt.conf.d/20auto-upgrades || true;
|
69
|
+
sudo kill -9 `sudo lsof /var/lib/dpkg/lock-frontend | awk '{print $2}' | tail -n 1` || true;
|
70
|
+
sudo pkill -9 apt-get;
|
71
|
+
sudo pkill -9 dpkg;
|
72
|
+
sudo dpkg --configure -a;
|
73
|
+
mkdir -p ~/.ssh; touch ~/.ssh/config;
|
74
|
+
{{ conda_installation_commands }}
|
75
|
+
{{ ray_skypilot_installation_commands }}
|
76
|
+
sudo bash -c 'rm -rf /etc/security/limits.d; echo "* soft nofile 1048576" >> /etc/security/limits.conf; echo "* hard nofile 1048576" >> /etc/security/limits.conf';
|
77
|
+
sudo grep -e '^DefaultTasksMax' /etc/systemd/system.conf || (sudo bash -c 'echo "DefaultTasksMax=infinity" >> /etc/systemd/system.conf'); sudo systemctl set-property user-$(id -u $(whoami)).slice TasksMax=infinity; sudo systemctl daemon-reload;
|
78
|
+
mkdir -p ~/.ssh; (grep -Pzo -q "Host \*\n StrictHostKeyChecking no" ~/.ssh/config) || printf "Host *\n StrictHostKeyChecking no\n" >> ~/.ssh/config;
|
79
|
+
[ -f /etc/fuse.conf ] && sudo sed -i 's/#user_allow_other/user_allow_other/g' /etc/fuse.conf || (sudo sh -c 'echo "user_allow_other" > /etc/fuse.conf');
|
sky/utils/common_utils.py
CHANGED
@@ -18,6 +18,7 @@ import uuid
|
|
18
18
|
|
19
19
|
import jinja2
|
20
20
|
import jsonschema
|
21
|
+
import psutil
|
21
22
|
import yaml
|
22
23
|
|
23
24
|
from sky import exceptions
|
@@ -755,3 +756,40 @@ def is_port_available(port: int, reuse_addr: bool = True) -> bool:
|
|
755
756
|
return True
|
756
757
|
except OSError:
|
757
758
|
return False
|
759
|
+
|
760
|
+
|
761
|
+
# TODO(aylei): should be aware of cgroups
|
762
|
+
def get_cpu_count() -> int:
|
763
|
+
"""Get the number of CPUs.
|
764
|
+
|
765
|
+
If the API server is deployed as a pod in k8s cluster, we assume the
|
766
|
+
number of CPUs is provided by the downward API.
|
767
|
+
"""
|
768
|
+
cpu_count = os.getenv('SKYPILOT_POD_CPU_CORE_LIMIT')
|
769
|
+
if cpu_count is not None:
|
770
|
+
try:
|
771
|
+
return int(float(cpu_count))
|
772
|
+
except ValueError as e:
|
773
|
+
with ux_utils.print_exception_no_traceback():
|
774
|
+
raise ValueError(
|
775
|
+
f'Failed to parse the number of CPUs from {cpu_count}'
|
776
|
+
) from e
|
777
|
+
return psutil.cpu_count()
|
778
|
+
|
779
|
+
|
780
|
+
# TODO(aylei): should be aware of cgroups
|
781
|
+
def get_mem_size_gb() -> float:
|
782
|
+
"""Get the memory size in GB.
|
783
|
+
|
784
|
+
If the API server is deployed as a pod in k8s cluster, we assume the
|
785
|
+
memory size is provided by the downward API.
|
786
|
+
"""
|
787
|
+
mem_size = os.getenv('SKYPILOT_POD_MEMORY_GB_LIMIT')
|
788
|
+
if mem_size is not None:
|
789
|
+
try:
|
790
|
+
return float(mem_size)
|
791
|
+
except ValueError as e:
|
792
|
+
with ux_utils.print_exception_no_traceback():
|
793
|
+
raise ValueError(
|
794
|
+
f'Failed to parse the memory size from {mem_size}') from e
|
795
|
+
return psutil.virtual_memory().total / (1024**3)
|
sky/utils/controller_utils.py
CHANGED
@@ -662,6 +662,66 @@ def replace_skypilot_config_path_in_file_mounts(
|
|
662
662
|
f'with the real path in file mounts: {file_mounts}')
|
663
663
|
|
664
664
|
|
665
|
+
def _generate_run_uuid() -> str:
|
666
|
+
"""Generates a unique run id for the job."""
|
667
|
+
return common_utils.base36_encode(uuid.uuid4().hex)[:8]
|
668
|
+
|
669
|
+
|
670
|
+
def translate_local_file_mounts_to_two_hop(
|
671
|
+
task: 'task_lib.Task') -> Dict[str, str]:
|
672
|
+
"""Translates local->VM mounts into two-hop file mounts.
|
673
|
+
|
674
|
+
This strategy will upload the local files to the controller first, using a
|
675
|
+
normal rsync as part of sky.launch() for the controller. Then, when the
|
676
|
+
controller launches the task, it will also use local file_mounts from the
|
677
|
+
destination path of the first hop.
|
678
|
+
|
679
|
+
Local machine/API server Controller Job cluster
|
680
|
+
------------------------ ----------------------- --------------------
|
681
|
+
| local path ----|--|-> controller path --|--|-> job dst path |
|
682
|
+
------------------------ ----------------------- --------------------
|
683
|
+
|
684
|
+
Returns:
|
685
|
+
A dict mapping from controller file mount path to local file mount path
|
686
|
+
for the first hop. The task is updated in-place to do the second hop.
|
687
|
+
"""
|
688
|
+
first_hop_file_mounts = {}
|
689
|
+
second_hop_file_mounts = {}
|
690
|
+
|
691
|
+
run_id = _generate_run_uuid()
|
692
|
+
base_tmp_dir = os.path.join(constants.FILE_MOUNTS_CONTROLLER_TMP_BASE_PATH,
|
693
|
+
run_id)
|
694
|
+
|
695
|
+
# Use a simple counter to create unique paths within the base_tmp_dir for
|
696
|
+
# each mount.
|
697
|
+
file_mount_id = 0
|
698
|
+
|
699
|
+
file_mounts_to_translate = task.file_mounts or {}
|
700
|
+
if task.workdir is not None:
|
701
|
+
file_mounts_to_translate[constants.SKY_REMOTE_WORKDIR] = task.workdir
|
702
|
+
task.workdir = None
|
703
|
+
|
704
|
+
for job_cluster_path, local_path in file_mounts_to_translate.items():
|
705
|
+
if data_utils.is_cloud_store_url(
|
706
|
+
local_path) or data_utils.is_cloud_store_url(job_cluster_path):
|
707
|
+
raise exceptions.NotSupportedError(
|
708
|
+
'Cloud-based file_mounts are specified, but no cloud storage '
|
709
|
+
'is available. Please specify local file_mounts only.')
|
710
|
+
|
711
|
+
controller_path = os.path.join(base_tmp_dir, f'{file_mount_id}')
|
712
|
+
file_mount_id += 1
|
713
|
+
first_hop_file_mounts[controller_path] = local_path
|
714
|
+
second_hop_file_mounts[job_cluster_path] = controller_path
|
715
|
+
|
716
|
+
# Use set_file_mounts to override existing file mounts, if they exist.
|
717
|
+
task.set_file_mounts(second_hop_file_mounts)
|
718
|
+
|
719
|
+
# Return the first hop info so that it can be added to the jobs-controller
|
720
|
+
# YAML.
|
721
|
+
return first_hop_file_mounts
|
722
|
+
|
723
|
+
|
724
|
+
# (maybe translate local file mounts) and (sync up)
|
665
725
|
def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
|
666
726
|
task_type: str) -> None:
|
667
727
|
"""Translates local->VM mounts into Storage->VM, then syncs up any Storage.
|
@@ -695,7 +755,7 @@ def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
|
|
695
755
|
# We should not use common_utils.get_usage_run_id() here, because when
|
696
756
|
# Python API is used, the run id will be the same across multiple
|
697
757
|
# jobs.launch/serve.up calls after the sky is imported.
|
698
|
-
run_id =
|
758
|
+
run_id = _generate_run_uuid()
|
699
759
|
user_hash = common_utils.get_user_hash()
|
700
760
|
original_file_mounts = task.file_mounts if task.file_mounts else {}
|
701
761
|
original_storage_mounts = task.storage_mounts if task.storage_mounts else {}
|
@@ -854,7 +914,11 @@ def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
|
|
854
914
|
# Step 4: Upload storage from sources
|
855
915
|
# Upload the local source to a bucket. The task will not be executed
|
856
916
|
# locally, so we need to upload the files/folders to the bucket manually
|
857
|
-
# here before sending the task to the remote jobs controller.
|
917
|
+
# here before sending the task to the remote jobs controller. This will
|
918
|
+
# also upload any storage mounts that are not translated. After
|
919
|
+
# sync_storage_mounts, we will also have file_mounts in the task, but
|
920
|
+
# these aren't used since the storage_mounts for the same paths take
|
921
|
+
# precedence.
|
858
922
|
if task.storage_mounts:
|
859
923
|
# There may be existing (non-translated) storage mounts, so log this
|
860
924
|
# whenever task.storage_mounts is non-empty.
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.2
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20250221
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -107,6 +107,8 @@ Provides-Extra: vast
|
|
107
107
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "vast"
|
108
108
|
Provides-Extra: vsphere
|
109
109
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
|
110
|
+
Provides-Extra: nebius
|
111
|
+
Requires-Dist: nebius>=0.2.0; extra == "nebius"
|
110
112
|
Provides-Extra: all
|
111
113
|
Requires-Dist: urllib3<2; extra == "all"
|
112
114
|
Requires-Dist: awscli>=1.27.10; extra == "all"
|
@@ -150,6 +152,7 @@ Requires-Dist: azure-core>=1.24.0; extra == "all"
|
|
150
152
|
Requires-Dist: azure-common; extra == "all"
|
151
153
|
Requires-Dist: vastai-sdk>=0.1.12; extra == "all"
|
152
154
|
Requires-Dist: pyvmomi==8.0.1.0.2; extra == "all"
|
155
|
+
Requires-Dist: nebius>=0.2.0; extra == "all"
|
153
156
|
Dynamic: author
|
154
157
|
Dynamic: classifier
|
155
158
|
Dynamic: description
|
@@ -224,15 +227,16 @@ SkyPilot supports your existing GPU, TPU, and CPU workloads, with no code change
|
|
224
227
|
Install with pip:
|
225
228
|
```bash
|
226
229
|
# Choose your clouds:
|
227
|
-
pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp]"
|
230
|
+
pip install -U "skypilot[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]"
|
228
231
|
```
|
229
232
|
To get the latest features and fixes, use the nightly build or [install from source](https://docs.skypilot.co/en/latest/getting-started/installation.html):
|
230
233
|
```bash
|
231
234
|
# Choose your clouds:
|
232
|
-
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp]"
|
235
|
+
pip install "skypilot-nightly[kubernetes,aws,gcp,azure,oci,lambda,runpod,fluidstack,paperspace,cudo,ibm,scp,nebius]"
|
233
236
|
```
|
234
237
|
|
235
|
-
|
238
|
+
|
239
|
+
[Current supported infra](https://docs.skypilot.co/en/latest/getting-started/installation.html) (Kubernetes; AWS, GCP, Azure, OCI, Lambda Cloud, Fluidstack, RunPod, Cudo, Digital Ocean, Paperspace, Cloudflare, Samsung, IBM, Vast.ai, VMware vSphere, Nebius):
|
236
240
|
<p align="center">
|
237
241
|
<img alt="SkyPilot" src="https://raw.githubusercontent.com/skypilot-org/skypilot/master/docs/source/images/cloud-logos-light.png" width=85%>
|
238
242
|
</p>
|
{skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=pGbies6z8Ql6Y42iPemF9_7b3Eh9REx7qkqNefvh6Aw,6428
|
2
2
|
sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
|
3
3
|
sky/authentication.py,sha256=hCEqi77nprQEg3ktfRL51xiiw16zwZOmFEDB_Z7fWVU,22384
|
4
4
|
sky/check.py,sha256=NDKx_Zm7YRxPjMv82wz3ESLnGIPljaACyqVdVNM0PzY,11258
|
@@ -14,7 +14,7 @@ sky/optimizer.py,sha256=C82l9N3umdrJ2AaM-pSg0aK5rpOAX3lEAfFU7r6hqPo,60183
|
|
14
14
|
sky/resources.py,sha256=f2Qo_Wt0kFruKmYm6cgYbICH_wn0Zkb8uIv6LA82SRs,72153
|
15
15
|
sky/sky_logging.py,sha256=pID2RINjH62n7SZpv70DuN8BSFYdCfTJ2ScGQpVmugg,5725
|
16
16
|
sky/skypilot_config.py,sha256=bt1vSis2aKKdQfPz80-KcjM9vNIg_qYKLNXur782Poo,8693
|
17
|
-
sky/task.py,sha256=
|
17
|
+
sky/task.py,sha256=elzRNKy0twCOgz4VaCpd4k-EQZ3ZKy4N6nNg0yldnYo,54969
|
18
18
|
sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
19
|
sky/adaptors/aws.py,sha256=iH55Cm6eXWwufAG0Dgk7LTQcADawNa3ELrBH1m6yuSY,7617
|
20
20
|
sky/adaptors/azure.py,sha256=r8xkjRgZZQfsSExNdguFa6c5fCLcUhZrFV8zs62VExo,21986
|
@@ -26,14 +26,15 @@ sky/adaptors/docker.py,sha256=_kzpZ0fkWHqqQAVVl0llTsCE31KYz3Sjn8psTBQHVkA,468
|
|
26
26
|
sky/adaptors/gcp.py,sha256=OQ9RaqjR0r0iaWYpjvEtIx5vnEhyB4LhUCwbtdxsmVk,3115
|
27
27
|
sky/adaptors/ibm.py,sha256=H87vD6izq_wQI8oQC7cx9iVtRgPi_QkAcrfa1Z3PNqU,4906
|
28
28
|
sky/adaptors/kubernetes.py,sha256=fvNeqqyW4WbUDT-isU_fWLN-zqywayyRkVsj7sJ4Vc8,6645
|
29
|
+
sky/adaptors/nebius.py,sha256=bZR7ybfqIyUbNFiMfwC7qpOmSWDM9uExxWhm-MT_PqU,2259
|
29
30
|
sky/adaptors/oci.py,sha256=LfMSFUmkkNT6Yoz9FZHNl6UFSg4X1lJO4-x4ZbDdXTs,2831
|
30
31
|
sky/adaptors/runpod.py,sha256=4Nt_BfZhJAKQNA3wO8cxvvNI8x4NsDGHu_4EhRDlGYQ,225
|
31
32
|
sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
|
32
33
|
sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
|
33
34
|
sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
|
34
35
|
sky/backends/backend.py,sha256=4BOqKZ-bwBTpjNnZF4JAHX2m2Iga7EmEn8Ao3tEivaM,7527
|
35
|
-
sky/backends/backend_utils.py,sha256=
|
36
|
-
sky/backends/cloud_vm_ray_backend.py,sha256=
|
36
|
+
sky/backends/backend_utils.py,sha256=egi4xOu1NKZi8HBUTz8hhCOLx-QtEokcM_v6Ix6OUdA,133199
|
37
|
+
sky/backends/cloud_vm_ray_backend.py,sha256=B8sH-m5pujvkTN_sLENsHw-SWpbaWwlHda26yI_1wnk,247459
|
37
38
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
38
39
|
sky/backends/local_docker_backend.py,sha256=nSYCjms3HOPjPNOrcCqsUKm1WV3AAovRFjEQ7hcEXW4,17021
|
39
40
|
sky/backends/wheel_utils.py,sha256=5BUzBqfYz7p1ME6_0PXGmcsAkLVb8NrFt317p7a4X8s,8278
|
@@ -44,8 +45,8 @@ sky/benchmark/benchmark_utils.py,sha256=o4RymqSceq5mLEZL0upQM6NVEzJJQzj9s9tTm49u
|
|
44
45
|
sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
|
45
46
|
sky/client/cli.py,sha256=iwYBgEt3tgsYmOIp-ivPmL2FHoalvhH4Ng--C31ubws,218201
|
46
47
|
sky/client/common.py,sha256=axDic7WOG1e78SdFm5XIwdhX7YNvf3g4k7INrsW3X4s,14611
|
47
|
-
sky/client/sdk.py,sha256=
|
48
|
-
sky/clouds/__init__.py,sha256=
|
48
|
+
sky/client/sdk.py,sha256=XYjiVnxZFcNYHgWEHerSqpHyMLLg0HHZPUIklUnAyWw,67068
|
49
|
+
sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
|
49
50
|
sky/clouds/aws.py,sha256=J8tczaTDL239UowN9tUlhI92SeHw01wtFucSckvG63w,54112
|
50
51
|
sky/clouds/azure.py,sha256=bawEw6wOLAVyrjxMD-4UjLCuMj1H5_jH8qggpfZYS54,31703
|
51
52
|
sky/clouds/cloud.py,sha256=Ej6WH6VElYdG3PG1-Sp6lFVsJ42uskV4dAg7kmoY4JA,35376
|
@@ -56,6 +57,7 @@ sky/clouds/gcp.py,sha256=0QpsI0Dso1xs3LhGlUq-Sq6WK-u11wN-57-vfcyhI5I,55154
|
|
56
57
|
sky/clouds/ibm.py,sha256=R4JR96YfXstZ2B_IgFNVEX2SBAq3q0lSWz4y7FoFoeE,21474
|
57
58
|
sky/clouds/kubernetes.py,sha256=7ki_zJZKnkhOPrHgVFq6azy5UhNKeeBOCSTjKCgj3vk,31709
|
58
59
|
sky/clouds/lambda_cloud.py,sha256=ejqA_Wj5-325Y_QjQ__FY4HMO8sv_2tSRsufmaldcmI,12699
|
60
|
+
sky/clouds/nebius.py,sha256=Z439DIaLCOqpCDBq8QhgiFyn5vIaZ7Rj7O6yZ1rjQ5g,12289
|
59
61
|
sky/clouds/oci.py,sha256=irINbQsQ6YxRxGTMaCNsms3mZkIun2oJMMA1fMCRJyA,27072
|
60
62
|
sky/clouds/paperspace.py,sha256=O7bH8YaHBLFuyj6rDz2bPDz_6OYWmNB9OLqnZH70yfY,10922
|
61
63
|
sky/clouds/runpod.py,sha256=hzYB4td6qaged83xMAVKZ96bH40oZnrHXL7a_CKxXIw,11926
|
@@ -67,7 +69,7 @@ sky/clouds/service_catalog/aws_catalog.py,sha256=PbYD37rU_8m-Y_5xTglW21ppxI0GecM
|
|
67
69
|
sky/clouds/service_catalog/azure_catalog.py,sha256=5Q51x_WEKvQ2YSgJvZHRH3URlbwIstYuwpjaWW_wJlw,8149
|
68
70
|
sky/clouds/service_catalog/common.py,sha256=jpz2SmPnEjhy3ZUvn_EVoQQa3JUnoyi7g1Cq1t11Sw0,27708
|
69
71
|
sky/clouds/service_catalog/config.py,sha256=ylzqewdEBjDg4awvFek6ldYmFrnvD2bVGLZuLPvEVYA,1793
|
70
|
-
sky/clouds/service_catalog/constants.py,sha256=
|
72
|
+
sky/clouds/service_catalog/constants.py,sha256=zxl8uEszOZbXYDWGYvzxeAot2i0i2_yOwWeNzapCsYw,435
|
71
73
|
sky/clouds/service_catalog/cudo_catalog.py,sha256=V_takvL6dWTGQaTLCEvjKIotCDPnMujiNUZ87kZKGVI,4673
|
72
74
|
sky/clouds/service_catalog/do_catalog.py,sha256=Cug2QaQlSN6nFhba7f1ksyzs6z0ICTj6vSiR-792WnI,3698
|
73
75
|
sky/clouds/service_catalog/fluidstack_catalog.py,sha256=21-cvrYEYTIi7n3ZNF2e7_0QX-PF4BkhlVJUWQOvKrY,5059
|
@@ -75,6 +77,7 @@ sky/clouds/service_catalog/gcp_catalog.py,sha256=jJEfWjZ4ItsE657LjIf9mruJVZERFeg
|
|
75
77
|
sky/clouds/service_catalog/ibm_catalog.py,sha256=1iK0KvbI82U7sySb7chr-qm_16x3tTnZ6nIo7o76ouc,4493
|
76
78
|
sky/clouds/service_catalog/kubernetes_catalog.py,sha256=oqVuCkIhDb-0Aw1FgocIF-ExR8kRQd04P3ZgjU1tG00,13536
|
77
79
|
sky/clouds/service_catalog/lambda_catalog.py,sha256=2R-ccu63BbdvO6X80MtxiniA-jLewXb6I0Ye1rYD9fY,5302
|
80
|
+
sky/clouds/service_catalog/nebius_catalog.py,sha256=SEPyR9kCvirp6astnEUOfEMru48uyX_EIC6nbL1YBUA,4507
|
78
81
|
sky/clouds/service_catalog/oci_catalog.py,sha256=cyA6ZqwHGOKuPxUl_dKmFGdeWdQGMrvl_-o2MtyF998,8580
|
79
82
|
sky/clouds/service_catalog/paperspace_catalog.py,sha256=MOlfoGRChjEwMzu4nRAho8DrIwwUJ3QlRzrMA1RLqvE,3789
|
80
83
|
sky/clouds/service_catalog/runpod_catalog.py,sha256=oWYVgSMiK3DxBE5AgROyExIq9kCTaOr3hDLSc31kqTU,4205
|
@@ -105,7 +108,7 @@ sky/data/storage.py,sha256=mTgMGdfSV6Gia076Dvgmc18ZlqF6eObima558UShiXA,207165
|
|
105
108
|
sky/data/storage_utils.py,sha256=zB99nRTJjh8isU0UmqERmlwwRNgfig91IwrwVH8CcNw,12383
|
106
109
|
sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
|
107
110
|
sky/jobs/constants.py,sha256=HrQbQA41Khor89ZoH112kjHRgehge-k4o0R9T9UbbaM,3088
|
108
|
-
sky/jobs/controller.py,sha256=
|
111
|
+
sky/jobs/controller.py,sha256=4G1CKI7M7D1BgJLbJMeqzg0iDDv7FR4ObB1BKZFFjhk,29585
|
109
112
|
sky/jobs/recovery_strategy.py,sha256=RLrqq8B1likxTknPzt3_BqO26sFVpoatxzUuGfwc18A,26170
|
110
113
|
sky/jobs/scheduler.py,sha256=IUW0a_69Pkvs4jqsWCXkeMDIZn-TTuPNyZvPLGRUYUM,12306
|
111
114
|
sky/jobs/state.py,sha256=y9X1JGWpCokWBIwHZGB55fx39ZsilB1NZTbN_U8mPjA,43528
|
@@ -116,10 +119,10 @@ sky/jobs/dashboard/dashboard.py,sha256=kUKSXMAWAvPwJ_W_JK3wyz65Uope90_rNvhl8rZ1I
|
|
116
119
|
sky/jobs/dashboard/static/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
|
117
120
|
sky/jobs/dashboard/templates/index.html,sha256=tz95q8O2pF7IvfY6yv0rnPyhj4DX8WX4RIVVxqFKV1Y,28519
|
118
121
|
sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
119
|
-
sky/jobs/server/core.py,sha256=
|
122
|
+
sky/jobs/server/core.py,sha256=r9wrwVHrmuqgYAMoEEp4UfCLw8eYaD2RHGIBViHy9cc,23985
|
120
123
|
sky/jobs/server/dashboard_utils.py,sha256=2Mbx40W1pQqPEPHsSDbHeaF0j5cgyKy-_A9Owdwp_AQ,2315
|
121
124
|
sky/jobs/server/server.py,sha256=s3wULAh4u4drdIz2VA8l0HiXxHWdUzsBDYCstzU0Vxs,7411
|
122
|
-
sky/provision/__init__.py,sha256=
|
125
|
+
sky/provision/__init__.py,sha256=LzOo5LjkRXwSf29dUqN14YbjzQu3liXLQcmweTeZ4dE,6457
|
123
126
|
sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
|
124
127
|
sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
|
125
128
|
sky/provision/docker_utils.py,sha256=ENm0LkyrYWic3Ikyacho8X5uDMvGsbkZQsb6kNH1DuI,19629
|
@@ -159,16 +162,20 @@ sky/provision/gcp/mig_utils.py,sha256=oFpcFZoapHMILSE4iIm8V5bxP1RhbMHRF7cciqq8qA
|
|
159
162
|
sky/provision/kubernetes/__init__.py,sha256=y6yVfii81WYG3ROxv4hiIj-ydinS5-xGxLvXnARVQoI,719
|
160
163
|
sky/provision/kubernetes/config.py,sha256=bXwOGdSAnXCkDreew0KsSUqSv3ZrptNeevqat76LLts,29012
|
161
164
|
sky/provision/kubernetes/constants.py,sha256=dZCUV8FOO9Gct80sdqeubKnxeW3CGl-u5mxKeIb-B0M,411
|
162
|
-
sky/provision/kubernetes/instance.py,sha256=
|
165
|
+
sky/provision/kubernetes/instance.py,sha256=oag17OtuiqU-1RjkgW9NvEpxSGUFIYdI7M61S-YmPu8,50503
|
163
166
|
sky/provision/kubernetes/network.py,sha256=EpNjRQ131CXepqbdkoRKFu4szVrm0oKEpv1l8EgOkjU,12364
|
164
167
|
sky/provision/kubernetes/network_utils.py,sha256=52BZY_5ynCH6IXlivKObYyAHDgQCJyAJIjmM7J4MpFo,11393
|
165
|
-
sky/provision/kubernetes/utils.py,sha256=
|
168
|
+
sky/provision/kubernetes/utils.py,sha256=6s7xM2NTOBkBpOzk0KvecNvF1IUakNMQZdevSwC9Kaw,109460
|
166
169
|
sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml,sha256=AMzYzlY0JIlfBWj5eX054Rc1XDW2thUcLSOGMJVhIdA,229
|
167
170
|
sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml,sha256=RtTq4F1QUmR2Uunb6zuuRaPhV7hpesz4saHjn3Ncsb4,2010
|
168
171
|
sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
|
169
172
|
sky/provision/lambda_cloud/config.py,sha256=jq1iLzp4Up61r4JGxvtpVbJlgXnea3LHYQhCQyyl7ik,272
|
170
173
|
sky/provision/lambda_cloud/instance.py,sha256=fkIiUMt8TlEBJnyDuM02YYmTQmFDGOahiSDphY0PNw0,9279
|
171
174
|
sky/provision/lambda_cloud/lambda_utils.py,sha256=H2Qx4xdJyyEu2IXaj5AyppuPJW385nF5_KXFOk8j9RI,9858
|
175
|
+
sky/provision/nebius/__init__.py,sha256=30I3181mu0W5g9fNvaWMPoBJZoGZ9RibuTpBH9P2pDg,558
|
176
|
+
sky/provision/nebius/config.py,sha256=LK9kTDp2w6zZrn3vNdcSGgsgS-dL_j63Nh4_u3pqNiA,321
|
177
|
+
sky/provision/nebius/instance.py,sha256=kfpZqwh56XV7h6XsX5dGJYilsVdRhC1EUgk0flaCo_E,11889
|
178
|
+
sky/provision/nebius/utils.py,sha256=BxA7Hh6P7dKcXSw4tx2dyYd1txm-c7Psym3rRCAGLic,12785
|
172
179
|
sky/provision/oci/__init__.py,sha256=5E6EUtTK3mqGVREw5TuVl5DxteBYTZigIii7c8gHExU,612
|
173
180
|
sky/provision/oci/config.py,sha256=diSDTyHLokcuXGB2XgZCHFvsXa8bah1PP2XuMouW_UU,1650
|
174
181
|
sky/provision/oci/instance.py,sha256=rVGee5y0qkoeLIP5vPDmLq1N8G1n8mru62VHb0Bv5iY,16784
|
@@ -221,13 +228,13 @@ sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
221
228
|
sky/serve/server/core.py,sha256=pRvFadEIH_WTUkTtSmuFoPBP4JFq8Obt68ifi9DWuog,36865
|
222
229
|
sky/serve/server/server.py,sha256=gQGVU9nHYdGbaLhGjIUNIYn4xwKjRASRJkiiTL5AI1Y,3283
|
223
230
|
sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
224
|
-
sky/server/common.py,sha256=
|
231
|
+
sky/server/common.py,sha256=uBshF4a-U8NGgm8XOHTW2YNSq0CsByfdIFgiybU5PEg,17321
|
225
232
|
sky/server/constants.py,sha256=SqhWJMassFyvWAJn2UJHvuA_0_C6f5vngMzZ2KYLsKw,770
|
226
|
-
sky/server/server.py,sha256=
|
227
|
-
sky/server/stream_utils.py,sha256
|
233
|
+
sky/server/server.py,sha256=0gcIn3jr_4DkHpBJYdNq--uPo9Im8bn2ftxgd8mBMcU,42225
|
234
|
+
sky/server/stream_utils.py,sha256=-3IX1YCgxAFfcvQIV0TCvOn1wbRLWovAx3ckCrsExWU,5651
|
228
235
|
sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
229
236
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
230
|
-
sky/server/requests/executor.py,sha256=
|
237
|
+
sky/server/requests/executor.py,sha256=NxVB0aFA05GddXDdt89wEwEYyJcIIrsQxE2wowklhUI,19597
|
231
238
|
sky/server/requests/payloads.py,sha256=PeEkqQoTO3ellelkFX5yzPKbPkDV-NfVXkxHndYlrjE,15769
|
232
239
|
sky/server/requests/requests.py,sha256=aMdjiK5kjSYP36pxdXFU6qgKOXcOmtViHbFm3V8Dvf8,19590
|
233
240
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -236,14 +243,14 @@ sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
|
|
236
243
|
sky/server/requests/serializers/decoders.py,sha256=iChUnvvXwnAArWm0AVT5eTLt5ZmPfkr4TT32orCSJCM,6624
|
237
244
|
sky/server/requests/serializers/encoders.py,sha256=i4SAb5Oyp00CyMkyidbdA9dtxAzxZl40KTpL_x6pH0w,5679
|
238
245
|
sky/setup_files/MANIFEST.in,sha256=cHYG6IdIp7RsDapL4Lrs-WTeYJftHn6qystSolmyyk8,581
|
239
|
-
sky/setup_files/dependencies.py,sha256=
|
246
|
+
sky/setup_files/dependencies.py,sha256=CbuSc7D1YFlonN-TF8qI0khq3jE0K7ueUEPG10RUNIY,6283
|
240
247
|
sky/setup_files/setup.py,sha256=Q9f0RvsdPC0FLvyTKW-upQtRuA81jRO4TtN3VK-mP-Y,7436
|
241
248
|
sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
|
242
249
|
sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
243
250
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
244
251
|
sky/skylet/autostop_lib.py,sha256=W4CtMira6QnmYToFT5kYTGjNPRZNC-bZPfsF1k3tluE,4480
|
245
252
|
sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
|
246
|
-
sky/skylet/constants.py,sha256=
|
253
|
+
sky/skylet/constants.py,sha256=eXT0Ule1N6ZYRGjJmC_idUAzZH3ymZ1JSzDL3USwTAE,17963
|
247
254
|
sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
|
248
255
|
sky/skylet/job_lib.py,sha256=8W6GM2zxqGMIoD3AGiXcKsK_7-qouuTojiVL6upSeoA,43728
|
249
256
|
sky/skylet/log_lib.py,sha256=DzOrgY8C7RdEMLC9O9kEKV-iLMb9wVMPSnDha8eMx28,20900
|
@@ -274,7 +281,7 @@ sky/templates/do-ray.yml.j2,sha256=sRKpn0tC-uPYtSZ20OB4fMzE7RbPQUr8kOCIbuJ4b4Q,4
|
|
274
281
|
sky/templates/fluidstack-ray.yml.j2,sha256=4M3ONqrTaViv7tzN19bSaWT-7c16183DoRVXeZGqgv0,3756
|
275
282
|
sky/templates/gcp-ray.yml.j2,sha256=CriBoM3XF80x9Rx8X-4VVQUFEo5osW6LRbz5ESrEcOg,9850
|
276
283
|
sky/templates/ibm-ray.yml.j2,sha256=uehn7ZZPNIxIXMytqyiEUpTljmwfynCCkdNJURVN31Y,6877
|
277
|
-
sky/templates/jobs-controller.yaml.j2,sha256=
|
284
|
+
sky/templates/jobs-controller.yaml.j2,sha256=nYJBOqC0ZI4IOT4DDP54kdXoNUDRqiwtJiaQiJqQOCk,2289
|
278
285
|
sky/templates/kubernetes-ingress.yml.j2,sha256=73iDklVDWBMbItg0IexCa6_ClXPJOxw7PWz3leku4nE,1340
|
279
286
|
sky/templates/kubernetes-loadbalancer.yml.j2,sha256=IxrNYM366N01bbkJEbZ_UPYxUP8wyVEbRNFHRsBuLsw,626
|
280
287
|
sky/templates/kubernetes-port-forward-proxy-command.sh,sha256=iw7mypHszg6Ggq9MbyiYMFOkSlXaQZulaxqC5IWYGCc,3381
|
@@ -282,6 +289,7 @@ sky/templates/kubernetes-ray.yml.j2,sha256=I_3ulhmBdAsHYn0fk24nGhaDYxLC6IZ0DzWU8
|
|
282
289
|
sky/templates/kubernetes-ssh-jump.yml.j2,sha256=k5W5sOIMppU7dDkJMwPlqsUcb92y7L5_TVG3hkgMy8M,2747
|
283
290
|
sky/templates/lambda-ray.yml.j2,sha256=IWUFROlaVV9qsH4tYInn0xgyE1WAP_dHZBnGkNpmpYM,4713
|
284
291
|
sky/templates/local-ray.yml.j2,sha256=FNHeyHF6nW9nU9QLIZceUWfvrFTTcO51KqhTnYCEFaA,1185
|
292
|
+
sky/templates/nebius-ray.yml.j2,sha256=Hjyzjb47ryGWuoUCLluz7JktZfJ3RdB644X3DpXHJL8,3678
|
285
293
|
sky/templates/oci-ray.yml.j2,sha256=pm1_sLC9r-mMj4NHGH1ogKqxG2-M6bu2NPWb6Z58zsU,4777
|
286
294
|
sky/templates/paperspace-ray.yml.j2,sha256=oNjsBtDqGlLLWR7d0rsE-WNKNkbPK7LKiMMTkY1b6UI,4236
|
287
295
|
sky/templates/runpod-ray.yml.j2,sha256=M-ypI029BWEU3w4dWm546xih4YloY0e-HwSdPDqDPQQ,4525
|
@@ -302,10 +310,10 @@ sky/utils/cluster_utils.py,sha256=s6DFRXktv6_gF_DnwDEXJ7CniifHp8CAPeGciRCbXgI,14
|
|
302
310
|
sky/utils/command_runner.py,sha256=-7vxLvwZnTvYMQ_nScmuQWY6ZvQYv69yvvIp2uOaOqU,39063
|
303
311
|
sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
|
304
312
|
sky/utils/common.py,sha256=P4oVXFATUYgkruHX92cN12SJBtfb8DiOOYZtbN1kvP0,1927
|
305
|
-
sky/utils/common_utils.py,sha256
|
313
|
+
sky/utils/common_utils.py,sha256=-O0GthIockeJy8LlA4heVYYtaUdQwNA-5mFMqHajRf8,27457
|
306
314
|
sky/utils/config_utils.py,sha256=VQ2E3DQ2XysD-kul-diSrxn_pXWsDMfKAev91OiJQ1Q,9041
|
307
315
|
sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
|
308
|
-
sky/utils/controller_utils.py,sha256=
|
316
|
+
sky/utils/controller_utils.py,sha256=Wth_esy2NX9nco-MK01bgQMIChAYky0Uq4T35jQkXxY,48472
|
309
317
|
sky/utils/dag_utils.py,sha256=sAus0aL1wtuuFZSDnpO4LY-6WK4u5iJY952oWQzHo3Y,7532
|
310
318
|
sky/utils/db_utils.py,sha256=K2-OHPg0FeHCarevMdWe0IWzm6wWumViEeYeJuGoFUE,3747
|
311
319
|
sky/utils/env_options.py,sha256=aaD6GoYK0LaZIqjOEZ-R7eccQuiRriW3EuLWtOI5En8,1578
|
@@ -336,9 +344,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488
|
|
336
344
|
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=iAjfyPclOs8qlALACcfxLpRAO9CZ-h16leFqXZ6tNaY,10096
|
337
345
|
sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
|
338
346
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
|
339
|
-
skypilot_nightly-1.0.0.
|
340
|
-
skypilot_nightly-1.0.0.
|
341
|
-
skypilot_nightly-1.0.0.
|
342
|
-
skypilot_nightly-1.0.0.
|
343
|
-
skypilot_nightly-1.0.0.
|
344
|
-
skypilot_nightly-1.0.0.
|
347
|
+
skypilot_nightly-1.0.0.dev20250221.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
348
|
+
skypilot_nightly-1.0.0.dev20250221.dist-info/METADATA,sha256=g1zIuQa9_hr9mfnZIQPKliYNNnNlomELACnPKREiPc8,19055
|
349
|
+
skypilot_nightly-1.0.0.dev20250221.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
|
350
|
+
skypilot_nightly-1.0.0.dev20250221.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
351
|
+
skypilot_nightly-1.0.0.dev20250221.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
352
|
+
skypilot_nightly-1.0.0.dev20250221.dist-info/RECORD,,
|
File without changes
|
{skypilot_nightly-1.0.0.dev20250219.dist-info → skypilot_nightly-1.0.0.dev20250221.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|