skypilot-nightly 1.0.0.dev20250401__py3-none-any.whl → 1.0.0.dev20250403__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 +2 -2
- sky/adaptors/kubernetes.py +7 -0
- sky/backends/cloud_vm_ray_backend.py +58 -13
- sky/check.py +2 -2
- sky/cli.py +2 -1
- sky/client/cli.py +2 -1
- sky/cloud_stores.py +8 -10
- sky/clouds/kubernetes.py +9 -0
- sky/data/data_utils.py +178 -90
- sky/data/mounting_utils.py +79 -22
- sky/data/storage.py +100 -34
- sky/data/storage_utils.py +13 -3
- sky/global_user_state.py +5 -0
- sky/jobs/controller.py +39 -7
- sky/jobs/server/server.py +1 -1
- sky/models.py +4 -1
- sky/provision/kubernetes/utils.py +37 -0
- sky/server/requests/payloads.py +4 -4
- sky/server/server.py +8 -1
- sky/skylet/constants.py +8 -2
- sky/task.py +4 -4
- sky/utils/controller_utils.py +3 -3
- sky/utils/kubernetes/gpu_labeler.py +46 -57
- {skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/METADATA +1 -5
- {skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/RECORD +29 -29
- {skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/top_level.txt +0 -0
sky/skylet/constants.py
CHANGED
@@ -51,7 +51,7 @@ SKY_RAY_CMD = (f'{SKY_PYTHON_CMD} $([ -s {SKY_RAY_PATH_FILE} ] && '
|
|
51
51
|
f'cat {SKY_RAY_PATH_FILE} 2> /dev/null || which ray)')
|
52
52
|
# Separate env for SkyPilot runtime dependencies.
|
53
53
|
SKY_REMOTE_PYTHON_ENV_NAME = 'skypilot-runtime'
|
54
|
-
SKY_REMOTE_PYTHON_ENV = f'~/{SKY_REMOTE_PYTHON_ENV_NAME}'
|
54
|
+
SKY_REMOTE_PYTHON_ENV: str = f'~/{SKY_REMOTE_PYTHON_ENV_NAME}'
|
55
55
|
ACTIVATE_SKY_REMOTE_PYTHON_ENV = f'source {SKY_REMOTE_PYTHON_ENV}/bin/activate'
|
56
56
|
# uv is used for venv and pip, much faster than python implementations.
|
57
57
|
SKY_UV_INSTALL_DIR = '"$HOME/.local/bin"'
|
@@ -60,7 +60,7 @@ SKY_UV_CMD = f'UV_SYSTEM_PYTHON=false {SKY_UV_INSTALL_DIR}/uv'
|
|
60
60
|
SKY_UV_INSTALL_CMD = (f'{SKY_UV_CMD} -V >/dev/null 2>&1 || '
|
61
61
|
'curl -LsSf https://astral.sh/uv/install.sh '
|
62
62
|
f'| UV_INSTALL_DIR={SKY_UV_INSTALL_DIR} sh')
|
63
|
-
SKY_UV_PIP_CMD = f'VIRTUAL_ENV={SKY_REMOTE_PYTHON_ENV} {SKY_UV_CMD} pip'
|
63
|
+
SKY_UV_PIP_CMD: str = (f'VIRTUAL_ENV={SKY_REMOTE_PYTHON_ENV} {SKY_UV_CMD} pip')
|
64
64
|
# Deleting the SKY_REMOTE_PYTHON_ENV_NAME from the PATH to deactivate the
|
65
65
|
# environment. `deactivate` command does not work when conda is used.
|
66
66
|
DEACTIVATE_SKY_REMOTE_PYTHON_ENV = (
|
@@ -331,6 +331,12 @@ SKYPILOT_NODE_RANK = f'{SKYPILOT_ENV_VAR_PREFIX}NODE_RANK'
|
|
331
331
|
# known after provisioning.
|
332
332
|
SKY_SSH_USER_PLACEHOLDER = 'skypilot:ssh_user'
|
333
333
|
|
334
|
+
RCLONE_CONFIG_DIR = '~/.config/rclone'
|
335
|
+
RCLONE_CONFIG_PATH = f'{RCLONE_CONFIG_DIR}/rclone.conf'
|
336
|
+
RCLONE_LOG_DIR = '~/.sky/rclone_log'
|
337
|
+
RCLONE_CACHE_DIR = '~/.cache/rclone'
|
338
|
+
RCLONE_CACHE_REFRESH_INTERVAL = 10
|
339
|
+
|
334
340
|
# The keys that can be overridden in the `~/.sky/config.yaml` file. The
|
335
341
|
# overrides are specified in task YAMLs.
|
336
342
|
OVERRIDEABLE_CONFIG_KEYS_IN_TASK: List[Tuple[str, ...]] = [
|
sky/task.py
CHANGED
@@ -745,7 +745,7 @@ class Task:
|
|
745
745
|
|
746
746
|
# Evaluate if the task requires FUSE and set the requires_fuse flag
|
747
747
|
for _, storage_obj in self.storage_mounts.items():
|
748
|
-
if storage_obj.mode
|
748
|
+
if storage_obj.mode in storage_lib.MOUNTABLE_STORAGE_MODES:
|
749
749
|
for r in self.resources:
|
750
750
|
r.requires_fuse = True
|
751
751
|
break
|
@@ -924,7 +924,7 @@ class Task:
|
|
924
924
|
'Storage mount destination path cannot be cloud storage'
|
925
925
|
)
|
926
926
|
|
927
|
-
if storage_obj.mode
|
927
|
+
if storage_obj.mode in storage_lib.MOUNTABLE_STORAGE_MODES:
|
928
928
|
# If any storage is using MOUNT mode, we need to enable FUSE in
|
929
929
|
# the resources.
|
930
930
|
for r in self.resources:
|
@@ -1128,7 +1128,7 @@ class Task:
|
|
1128
1128
|
assert storage.name is not None, storage
|
1129
1129
|
# extract region from rclone.conf
|
1130
1130
|
cos_region = data_utils.Rclone.get_region_from_rclone(
|
1131
|
-
storage.name, data_utils.Rclone.
|
1131
|
+
storage.name, data_utils.Rclone.RcloneStores.IBM)
|
1132
1132
|
blob_path = f'cos://{cos_region}/{storage.name}'
|
1133
1133
|
blob_path = storage.get_bucket_sub_path_prefix(blob_path)
|
1134
1134
|
self.update_file_mounts({mnt_path: blob_path})
|
@@ -1268,7 +1268,7 @@ class Task:
|
|
1268
1268
|
|
1269
1269
|
# Storage mounting
|
1270
1270
|
for _, storage_mount in self.storage_mounts.items():
|
1271
|
-
if storage_mount.mode
|
1271
|
+
if storage_mount.mode in storage_lib.MOUNTABLE_STORAGE_MODES:
|
1272
1272
|
required_features.add(
|
1273
1273
|
clouds.CloudImplementationFeatures.STORAGE_MOUNTING)
|
1274
1274
|
break
|
sky/utils/controller_utils.py
CHANGED
@@ -916,7 +916,7 @@ def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
|
|
916
916
|
name=bucket_name,
|
917
917
|
source=local_fm_path,
|
918
918
|
persistent=False,
|
919
|
-
mode=storage_lib.
|
919
|
+
mode=storage_lib.DEFAULT_STORAGE_MODE,
|
920
920
|
stores=stores,
|
921
921
|
_is_sky_managed=not bucket_wth_prefix,
|
922
922
|
_bucket_sub_path=file_mounts_tmp_subpath)
|
@@ -1025,7 +1025,7 @@ def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
|
|
1025
1025
|
# it was handled in step 6.
|
1026
1026
|
updated_mount_storages = {}
|
1027
1027
|
for storage_path, storage_obj in task.storage_mounts.items():
|
1028
|
-
if (storage_obj.mode
|
1028
|
+
if (storage_obj.mode in storage_lib.MOUNTABLE_STORAGE_MODES and
|
1029
1029
|
not storage_obj.source):
|
1030
1030
|
# Construct source URL with first store type and storage name
|
1031
1031
|
# E.g., s3://my-storage-name
|
@@ -1043,7 +1043,7 @@ def maybe_translate_local_file_mounts_and_sync_up(task: 'task_lib.Task',
|
|
1043
1043
|
new_storage = storage_lib.Storage.from_yaml_config({
|
1044
1044
|
'source': source,
|
1045
1045
|
'persistent': storage_obj.persistent,
|
1046
|
-
'mode':
|
1046
|
+
'mode': storage_obj.mode.value,
|
1047
1047
|
# We enable force delete to allow the controller to delete
|
1048
1048
|
# the object store in case persistent is set to False.
|
1049
1049
|
'_force_delete': True
|
@@ -3,35 +3,17 @@ import argparse
|
|
3
3
|
import hashlib
|
4
4
|
import os
|
5
5
|
import subprocess
|
6
|
-
from typing import Tuple
|
6
|
+
from typing import Optional, Tuple
|
7
7
|
|
8
|
-
from kubernetes import client
|
9
|
-
from kubernetes import config
|
10
8
|
import yaml
|
11
9
|
|
12
10
|
import sky
|
11
|
+
from sky.adaptors import kubernetes
|
13
12
|
from sky.provision.kubernetes import utils as kubernetes_utils
|
14
13
|
from sky.utils import rich_utils
|
15
14
|
|
16
15
|
|
17
|
-
def
|
18
|
-
"""Checks if kubectl is installed and kubeconfig is set up"""
|
19
|
-
reason = ''
|
20
|
-
prereq_ok = False
|
21
|
-
try:
|
22
|
-
subprocess.run(['kubectl', 'get', 'pods'],
|
23
|
-
check=True,
|
24
|
-
capture_output=True)
|
25
|
-
prereq_ok = True
|
26
|
-
except FileNotFoundError:
|
27
|
-
reason = 'kubectl not found. Please install kubectl and try again.'
|
28
|
-
except subprocess.CalledProcessError as e:
|
29
|
-
output = e.output.decode('utf-8')
|
30
|
-
reason = 'Error running kubectl: ' + output
|
31
|
-
return prereq_ok, reason
|
32
|
-
|
33
|
-
|
34
|
-
def cleanup() -> Tuple[bool, str]:
|
16
|
+
def cleanup(context: Optional[str] = None) -> Tuple[bool, str]:
|
35
17
|
"""Deletes all Kubernetes resources created by this script
|
36
18
|
|
37
19
|
Used to provide idempotency when the script is run multiple times. Also
|
@@ -42,7 +24,8 @@ def cleanup() -> Tuple[bool, str]:
|
|
42
24
|
'replicasets,configmaps,secrets,pv,pvc,clusterrole,'
|
43
25
|
'serviceaccount,clusterrolebinding -n kube-system '
|
44
26
|
'-l job=sky-gpu-labeler')
|
45
|
-
|
27
|
+
if context:
|
28
|
+
del_command += f' --context {context}'
|
46
29
|
success = False
|
47
30
|
reason = ''
|
48
31
|
with rich_utils.client_status('Cleaning up existing GPU labeling '
|
@@ -62,12 +45,24 @@ def get_node_hash(node_name: str):
|
|
62
45
|
return md5_hash[:32]
|
63
46
|
|
64
47
|
|
65
|
-
def label():
|
66
|
-
deletion_success, reason = cleanup()
|
48
|
+
def label(context: Optional[str] = None):
|
49
|
+
deletion_success, reason = cleanup(context=context)
|
67
50
|
if not deletion_success:
|
68
51
|
print(reason)
|
69
52
|
return
|
70
53
|
|
54
|
+
unlabeled_gpu_nodes = kubernetes_utils.get_unlabeled_accelerator_nodes()
|
55
|
+
|
56
|
+
if not unlabeled_gpu_nodes:
|
57
|
+
print('No unlabeled GPU nodes found in the cluster. If you have '
|
58
|
+
'unlabeled GPU nodes, please ensure that they have the resource '
|
59
|
+
f'`{kubernetes_utils.get_gpu_resource_key()}: <number of GPUs>` '
|
60
|
+
'in their capacity.')
|
61
|
+
return
|
62
|
+
|
63
|
+
print(f'Found {len(unlabeled_gpu_nodes)} '
|
64
|
+
'unlabeled GPU nodes in the cluster')
|
65
|
+
|
71
66
|
sky_dir = os.path.dirname(sky.__file__)
|
72
67
|
manifest_dir = os.path.join(sky_dir, 'utils/kubernetes')
|
73
68
|
|
@@ -76,18 +71,17 @@ def label():
|
|
76
71
|
rbac_manifest_path = os.path.join(manifest_dir,
|
77
72
|
'k8s_gpu_labeler_setup.yaml')
|
78
73
|
try:
|
79
|
-
|
80
|
-
|
74
|
+
apply_command = ['kubectl', 'apply', '-f', rbac_manifest_path]
|
75
|
+
if context:
|
76
|
+
apply_command += ['--context', context]
|
77
|
+
subprocess.check_output(apply_command)
|
81
78
|
except subprocess.CalledProcessError as e:
|
82
79
|
output = e.output.decode('utf-8')
|
83
80
|
print('Error setting up GPU labeling: ' + output)
|
84
81
|
return
|
85
82
|
|
86
83
|
with rich_utils.client_status('Creating GPU labeler jobs'):
|
87
|
-
|
88
|
-
|
89
|
-
v1 = client.CoreV1Api()
|
90
|
-
batch_v1 = client.BatchV1Api()
|
84
|
+
batch_v1 = kubernetes.batch_api(context=context)
|
91
85
|
# Load the job manifest
|
92
86
|
job_manifest_path = os.path.join(manifest_dir,
|
93
87
|
'k8s_gpu_labeler_job.yaml')
|
@@ -95,20 +89,10 @@ def label():
|
|
95
89
|
with open(job_manifest_path, 'r', encoding='utf-8') as file:
|
96
90
|
job_manifest = yaml.safe_load(file)
|
97
91
|
|
98
|
-
# Iterate over nodes
|
99
|
-
nodes = v1.list_node().items
|
100
|
-
|
101
|
-
# Get the list of nodes with GPUs
|
102
|
-
gpu_nodes = []
|
103
|
-
for node in nodes:
|
104
|
-
if kubernetes_utils.get_gpu_resource_key() in node.status.capacity:
|
105
|
-
gpu_nodes.append(node)
|
106
|
-
|
107
|
-
print(f'Found {len(gpu_nodes)} GPU nodes in the cluster')
|
108
|
-
|
109
92
|
# Check if the 'nvidia' RuntimeClass exists
|
110
93
|
try:
|
111
|
-
nvidia_exists = kubernetes_utils.check_nvidia_runtime_class(
|
94
|
+
nvidia_exists = kubernetes_utils.check_nvidia_runtime_class(
|
95
|
+
context=context)
|
112
96
|
except Exception as e: # pylint: disable=broad-except
|
113
97
|
print('Error occurred while checking for nvidia RuntimeClass: '
|
114
98
|
f'{str(e)}')
|
@@ -125,7 +109,7 @@ def label():
|
|
125
109
|
else:
|
126
110
|
print('Using default RuntimeClass for GPU labeling.')
|
127
111
|
|
128
|
-
for node in
|
112
|
+
for node in unlabeled_gpu_nodes:
|
129
113
|
node_name = node.metadata.name
|
130
114
|
|
131
115
|
# Modify the job manifest for the current node
|
@@ -139,17 +123,16 @@ def label():
|
|
139
123
|
# Create the job for this node`
|
140
124
|
batch_v1.create_namespaced_job(namespace, job_manifest)
|
141
125
|
print(f'Created GPU labeler job for node {node_name}')
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
'`skypilot.co/accelerator: <gpu_name>`. ')
|
126
|
+
|
127
|
+
context_str = f' --context {context}' if context else ''
|
128
|
+
print(f'GPU labeling started - this may take 10 min or more to complete.'
|
129
|
+
'\nTo check the status of GPU labeling jobs, run '
|
130
|
+
f'`kubectl get jobs -n kube-system '
|
131
|
+
f'-l job=sky-gpu-labeler{context_str}`'
|
132
|
+
'\nYou can check if nodes have been labeled by running '
|
133
|
+
f'`kubectl describe nodes{context_str}` '
|
134
|
+
'and looking for labels of the format '
|
135
|
+
'`skypilot.co/accelerator: <gpu_name>`. ')
|
153
136
|
|
154
137
|
|
155
138
|
def main():
|
@@ -165,18 +148,24 @@ def main():
|
|
165
148
|
action='store_true',
|
166
149
|
help='delete all GPU labeler resources in the '
|
167
150
|
'Kubernetes cluster.')
|
151
|
+
parser.add_argument('--context',
|
152
|
+
type=str,
|
153
|
+
help='the context to use for the Kubernetes cluster.')
|
168
154
|
args = parser.parse_args()
|
155
|
+
context = None
|
156
|
+
if args.context:
|
157
|
+
context = args.context
|
169
158
|
|
170
159
|
# Check if kubectl is installed and kubeconfig is set up
|
171
|
-
prereq_ok, reason =
|
160
|
+
prereq_ok, reason = kubernetes_utils.check_credentials(context=context)
|
172
161
|
if not prereq_ok:
|
173
162
|
print(reason)
|
174
163
|
return
|
175
164
|
|
176
165
|
if args.cleanup:
|
177
|
-
cleanup()
|
166
|
+
cleanup(context=context)
|
178
167
|
else:
|
179
|
-
label()
|
168
|
+
label(context=context)
|
180
169
|
|
181
170
|
|
182
171
|
if __name__ == '__main__':
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20250403
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -193,10 +193,6 @@ Dynamic: summary
|
|
193
193
|
<img alt="Downloads" src="https://img.shields.io/pypi/dm/skypilot">
|
194
194
|
</a>
|
195
195
|
|
196
|
-
<a href="https://buildkite.com/skypilot-1/full-smoke-tests-run">
|
197
|
-
<img alt="Smoke Tests" src="https://badge.buildkite.com/d3aa9d2370e4a9ac4fb5e210381f955082a63a9a46673b197a.svg?theme=github&branch=master">
|
198
|
-
</a>
|
199
|
-
|
200
196
|
</p>
|
201
197
|
|
202
198
|
<h3 align="center">
|
{skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/RECORD
RENAMED
@@ -1,20 +1,20 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=jAriaLe3W4tnwwVPeiJ2hAxmMnsB0NRcf-MQ2yLMyQk,6428
|
2
2
|
sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
|
3
3
|
sky/authentication.py,sha256=ND011K_-Ud1dVZF37A9KrwYir_ihJXcHc7iDWmuBc8Q,22872
|
4
|
-
sky/check.py,sha256=
|
5
|
-
sky/cli.py,sha256=
|
6
|
-
sky/cloud_stores.py,sha256=
|
4
|
+
sky/check.py,sha256=oktScSPsHIyO7ZrVHy3QaybB6-s_D6eMEjmICAiUtDo,15902
|
5
|
+
sky/cli.py,sha256=Zcio2ak6zX_5_N_lshDUqCvoV6NEOmGS6Tp6AgS9VAk,222446
|
6
|
+
sky/cloud_stores.py,sha256=cmKdSoB4bmwrd-Z1NCZBFb6IIJt0jKVxkGPoX86280s,26606
|
7
7
|
sky/core.py,sha256=G3n6z0dyvoU4FJVGnnTu3kFdu_EtQC1l57er5voRAX0,47926
|
8
8
|
sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
|
9
9
|
sky/exceptions.py,sha256=EodMj6P0x0JYBiioLNuPoFMj12HzlQTQpfXNX6zHBoA,16837
|
10
10
|
sky/execution.py,sha256=9L8NFOXNphtabnsL7mHGPJeGdw4n6gIIUEOzjW7CEHw,28294
|
11
|
-
sky/global_user_state.py,sha256=
|
12
|
-
sky/models.py,sha256=
|
11
|
+
sky/global_user_state.py,sha256=7HADn0mY-0omf5RbpmAZ88bjySzqKcmiD1MEmkrCoNU,33754
|
12
|
+
sky/models.py,sha256=4Hq_JNpeQyvRlde_mf1T8H5iDS362TRORYXjtk2nmT4,735
|
13
13
|
sky/optimizer.py,sha256=uutziDwxyq-f5n31YXgCF9fmqx5vndIU8g_avvGWuGc,58532
|
14
14
|
sky/resources.py,sha256=2qc5U09MFDaJjI1dHcThcRodpMGY7HyXzQn8eC4lvbE,72402
|
15
15
|
sky/sky_logging.py,sha256=pID2RINjH62n7SZpv70DuN8BSFYdCfTJ2ScGQpVmugg,5725
|
16
16
|
sky/skypilot_config.py,sha256=CdaIbPL_7ECG5laOARca4p9df_6NLhT-bO8WnalxZAY,8839
|
17
|
-
sky/task.py,sha256=
|
17
|
+
sky/task.py,sha256=kepCHV_evVg9EKnXaKW9Stg1bQAZlaF4UQocwlR3M3g,55709
|
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
|
@@ -25,7 +25,7 @@ sky/adaptors/do.py,sha256=dJ0BYbkQoUWVu6_9Pxq3fOu6PngjZyyCQzgjnODXLCA,777
|
|
25
25
|
sky/adaptors/docker.py,sha256=_kzpZ0fkWHqqQAVVl0llTsCE31KYz3Sjn8psTBQHVkA,468
|
26
26
|
sky/adaptors/gcp.py,sha256=oEb9jClEtApw6PQnxdxDYxOCYsedvM3aiko1EW1FDVo,3501
|
27
27
|
sky/adaptors/ibm.py,sha256=7YbHrWbYcZsJDgxMBNZr1yBI03mjs_C3pnCTCz-MNtQ,5068
|
28
|
-
sky/adaptors/kubernetes.py,sha256=
|
28
|
+
sky/adaptors/kubernetes.py,sha256=pbrMAO_jaHFPdIKryNALY0jvXujC3nUKnYlq0Sj6I2M,6884
|
29
29
|
sky/adaptors/nebius.py,sha256=B3KxPYhTJA3zjQ7x9k8_sqFTAkPYXldnM7PAuwy02gA,7512
|
30
30
|
sky/adaptors/oci.py,sha256=LfMSFUmkkNT6Yoz9FZHNl6UFSg4X1lJO4-x4ZbDdXTs,2831
|
31
31
|
sky/adaptors/runpod.py,sha256=4Nt_BfZhJAKQNA3wO8cxvvNI8x4NsDGHu_4EhRDlGYQ,225
|
@@ -34,7 +34,7 @@ sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
|
|
34
34
|
sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
|
35
35
|
sky/backends/backend.py,sha256=4BOqKZ-bwBTpjNnZF4JAHX2m2Iga7EmEn8Ao3tEivaM,7527
|
36
36
|
sky/backends/backend_utils.py,sha256=ndY4IPs1F9QovyiKAnB1FNYGWm52_ylwf_K7wY50cv0,134922
|
37
|
-
sky/backends/cloud_vm_ray_backend.py,sha256=
|
37
|
+
sky/backends/cloud_vm_ray_backend.py,sha256=uRz6XUvrTHGsF6LYIuSjFBUP51BSD5_yTj4R5-3DLo0,251922
|
38
38
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
39
39
|
sky/backends/local_docker_backend.py,sha256=nSYCjms3HOPjPNOrcCqsUKm1WV3AAovRFjEQ7hcEXW4,17021
|
40
40
|
sky/backends/wheel_utils.py,sha256=meypuMaygSXXjGdXfq6dhWl-OrpAybg9KVRoup4D0wU,9098
|
@@ -43,7 +43,7 @@ sky/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
43
43
|
sky/benchmark/benchmark_state.py,sha256=X8CXmuU9KgsDRhKedhFgjeRMUFWtQsjFs1qECvPG2yg,8723
|
44
44
|
sky/benchmark/benchmark_utils.py,sha256=7rf-iHt6RXZ_pnBBWOMwcdodHQW69x27xNyx0yVog1U,26385
|
45
45
|
sky/client/__init__.py,sha256=pz6xvVSd9X-gwqbsDL0E9QOojYqM0KAD0j-NCyCIF1k,38
|
46
|
-
sky/client/cli.py,sha256=
|
46
|
+
sky/client/cli.py,sha256=Zcio2ak6zX_5_N_lshDUqCvoV6NEOmGS6Tp6AgS9VAk,222446
|
47
47
|
sky/client/common.py,sha256=YMgYoSYlV3B_scfCIJRKHvDq6JKvnSvRZDhlRjRmzu0,14780
|
48
48
|
sky/client/sdk.py,sha256=36tvJou2IaG8H5lrqMicv-gSJn6VUDHUtB7V20t4lA8,68620
|
49
49
|
sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
|
@@ -55,7 +55,7 @@ sky/clouds/do.py,sha256=P38l4otp2AuDReUH9Ii621ht9s-NIyb7-R37jbtjHk8,11580
|
|
55
55
|
sky/clouds/fluidstack.py,sha256=jIqW1MLe55MVME1PATZm8e6_FsiTnJawW7OdytPW0aM,12666
|
56
56
|
sky/clouds/gcp.py,sha256=sUJ9LXUnMxYm6OYZ5P-z1dJHxgVILuC3OW3eFSTNCv8,56919
|
57
57
|
sky/clouds/ibm.py,sha256=XtuPN8QgrwJdb1qb_b-7KwAE2tf_N9wh9eEfi2tcg-s,22013
|
58
|
-
sky/clouds/kubernetes.py,sha256=
|
58
|
+
sky/clouds/kubernetes.py,sha256=VuPHstRysRZH0UTYZIExY2Gtd2ItQn9I5EboqxyuvV0,36717
|
59
59
|
sky/clouds/lambda_cloud.py,sha256=rR2YrZ6flEbKKpQAm60eKNjiMDYvH2hqzaCo3Hx4Ffw,12916
|
60
60
|
sky/clouds/nebius.py,sha256=4D7C2NQYI-BNhXWNOyAXNAZj7-5nN33VQW1sxfSGt9w,14662
|
61
61
|
sky/clouds/oci.py,sha256=YO4kjSsHBmAVH4z1TuVP72zfmC0BXte4E0xIyZir9N4,27622
|
@@ -103,13 +103,13 @@ sky/clouds/utils/oci_utils.py,sha256=KbmwTWlEO3stcjM4jN2agSFi2w9WNc2NYA9Gr5jMAvE
|
|
103
103
|
sky/clouds/utils/scp_utils.py,sha256=MqawUhhFHHxVnn29nOI4gJ_nF665ich4Po7bsy1afsA,15948
|
104
104
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
105
105
|
sky/data/data_transfer.py,sha256=-JcnVa_LT0kQejcSCnBwYtxhuuaNDPf_Q5oz62p186c,11973
|
106
|
-
sky/data/data_utils.py,sha256=
|
107
|
-
sky/data/mounting_utils.py,sha256=
|
108
|
-
sky/data/storage.py,sha256=
|
109
|
-
sky/data/storage_utils.py,sha256=
|
106
|
+
sky/data/data_utils.py,sha256=ryKUPgNBdeDmGIttqK-J7AKdfc70INTuYH5GOWm3C9g,33581
|
107
|
+
sky/data/mounting_utils.py,sha256=ph2p8cYB28FODgxK5ibiD4B4iMD7T3or99zNQaD9HLs,20162
|
108
|
+
sky/data/storage.py,sha256=85LcC64yxfd5bzTijGZVyMZV41NyzUhOn0xJZieK2Dc,236652
|
109
|
+
sky/data/storage_utils.py,sha256=fDEEErxu97XhOtwPdnNBqRukWcfRT4eTBUhrSGrAvsY,13255
|
110
110
|
sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
|
111
111
|
sky/jobs/constants.py,sha256=1XiIqdR5dEgGgepLKWkZCRT3MYSsMBR-dO7N4RTsjwg,3088
|
112
|
-
sky/jobs/controller.py,sha256=
|
112
|
+
sky/jobs/controller.py,sha256=d5qQYHadesfFgU7-dYtt2trZwyd5IzvlVJeNh5O8OiA,31386
|
113
113
|
sky/jobs/recovery_strategy.py,sha256=RLrqq8B1likxTknPzt3_BqO26sFVpoatxzUuGfwc18A,26170
|
114
114
|
sky/jobs/scheduler.py,sha256=luQgrCDaDP6bI7oIbaqzxg4qMJtUIVswypnOGUklGtw,13270
|
115
115
|
sky/jobs/state.py,sha256=tDULLH6DVs4oKUIKhh0UAn3RzyVGuIUtEq5kW7K1Ojw,44585
|
@@ -122,7 +122,7 @@ sky/jobs/dashboard/templates/index.html,sha256=NrlTDiEHJDt7sViwWgXUSxVCyVl_IEukE
|
|
122
122
|
sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
123
123
|
sky/jobs/server/core.py,sha256=IHbGMEEbEdNS_ivIStv3rYVH6XodFgufrzZb3HGF9uo,25257
|
124
124
|
sky/jobs/server/dashboard_utils.py,sha256=2Mbx40W1pQqPEPHsSDbHeaF0j5cgyKy-_A9Owdwp_AQ,2315
|
125
|
-
sky/jobs/server/server.py,sha256=
|
125
|
+
sky/jobs/server/server.py,sha256=jk6IopWbn9DbzNzLxM4EcYzWCRnXPXthfNqMDFmtonc,8386
|
126
126
|
sky/provision/__init__.py,sha256=LzOo5LjkRXwSf29dUqN14YbjzQu3liXLQcmweTeZ4dE,6457
|
127
127
|
sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
|
128
128
|
sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
|
@@ -166,7 +166,7 @@ sky/provision/kubernetes/constants.py,sha256=dZCUV8FOO9Gct80sdqeubKnxeW3CGl-u5mx
|
|
166
166
|
sky/provision/kubernetes/instance.py,sha256=oag17OtuiqU-1RjkgW9NvEpxSGUFIYdI7M61S-YmPu8,50503
|
167
167
|
sky/provision/kubernetes/network.py,sha256=AtcOM8wPs_-UlQJhGEQGP6Lh4HIgdx63Y0iWEhP5jyc,12673
|
168
168
|
sky/provision/kubernetes/network_utils.py,sha256=6uck1aBkgtm-gGBitU3_hEUp8j14ZuG_4Xo70ReZYXs,11654
|
169
|
-
sky/provision/kubernetes/utils.py,sha256=
|
169
|
+
sky/provision/kubernetes/utils.py,sha256=IR2AKbZA-ZuKtLRuqHZsiA1N2HmQTJKz5IqOQIVEk4U,125753
|
170
170
|
sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml,sha256=AMzYzlY0JIlfBWj5eX054Rc1XDW2thUcLSOGMJVhIdA,229
|
171
171
|
sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml,sha256=RtTq4F1QUmR2Uunb6zuuRaPhV7hpesz4saHjn3Ncsb4,2010
|
172
172
|
sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
|
@@ -232,14 +232,14 @@ sky/serve/server/server.py,sha256=gQGVU9nHYdGbaLhGjIUNIYn4xwKjRASRJkiiTL5AI1Y,32
|
|
232
232
|
sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
233
233
|
sky/server/common.py,sha256=6FQ-2X4AagshuXNxKxjgFRKT_mtgTGh7kG1GOJ2tZIM,19185
|
234
234
|
sky/server/constants.py,sha256=_ZNrxYh8vmgbf3DmkGDduxjvO2y43ZSPTkH5rCNsVjU,770
|
235
|
-
sky/server/server.py,sha256=
|
235
|
+
sky/server/server.py,sha256=7aK3Nv_aHIYX2ZB_NFy-5Cn-DbSxUPMeiWaDY_2DLXE,44674
|
236
236
|
sky/server/stream_utils.py,sha256=4JMHgtoXPpCT8JwtqyUcDQ9IdZFir9om0JaCRr8rvbQ,5849
|
237
237
|
sky/server/uvicorn.py,sha256=wajwPHJ3IEEP3GMNOCc0S81-1v2qT5F-ejUkLFVhUzk,2953
|
238
238
|
sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
239
239
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
240
240
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
241
241
|
sky/server/requests/executor.py,sha256=wW-8s8APEakYRJKNiWIhHg2vrn2UUteseUTsqm9q3Fg,21693
|
242
|
-
sky/server/requests/payloads.py,sha256=
|
242
|
+
sky/server/requests/payloads.py,sha256=3sF36Z9_PLzpEncW0AplJtOz-_nsn5PJaM5lS-3Y8bw,16558
|
243
243
|
sky/server/requests/preconditions.py,sha256=ipxIb_3JXG6S3-ymcOdqQNb7VDvoPqADxu9ZK7-nQWc,7179
|
244
244
|
sky/server/requests/requests.py,sha256=9ovdQE-zv_Mvc6IbGATHVyQlOxSKjg_OankZbgDVGeE,21338
|
245
245
|
sky/server/requests/queues/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -255,7 +255,7 @@ sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
255
255
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
256
256
|
sky/skylet/autostop_lib.py,sha256=kGUnHm-jpF4zl3UJfB-4pnoldWpnVeR96WwYGSw7em0,4630
|
257
257
|
sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
|
258
|
-
sky/skylet/constants.py,sha256=
|
258
|
+
sky/skylet/constants.py,sha256=uGhQdxdxO42rwQyu_gg0aeiSFIXxUK2jPoDOaGaMb2M,18550
|
259
259
|
sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
|
260
260
|
sky/skylet/job_lib.py,sha256=FUpaCSg5yl4ptFb3_GOeUunHTz4qJvwJJjeqrpiRUTk,44470
|
261
261
|
sky/skylet/log_lib.py,sha256=DzOrgY8C7RdEMLC9O9kEKV-iLMb9wVMPSnDha8eMx28,20900
|
@@ -318,7 +318,7 @@ sky/utils/common.py,sha256=P4oVXFATUYgkruHX92cN12SJBtfb8DiOOYZtbN1kvP0,1927
|
|
318
318
|
sky/utils/common_utils.py,sha256=s5YIo9wtFCwWLfLRW7fCjlC9BzqQKPGatWQjrEyYqpc,31680
|
319
319
|
sky/utils/config_utils.py,sha256=VQ2E3DQ2XysD-kul-diSrxn_pXWsDMfKAev91OiJQ1Q,9041
|
320
320
|
sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
|
321
|
-
sky/utils/controller_utils.py,sha256=
|
321
|
+
sky/utils/controller_utils.py,sha256=mrmkerYyeu7gsCQ56cB3AjCz0r9WaN7teqXUItA47oQ,49805
|
322
322
|
sky/utils/dag_utils.py,sha256=sAus0aL1wtuuFZSDnpO4LY-6WK4u5iJY952oWQzHo3Y,7532
|
323
323
|
sky/utils/db_utils.py,sha256=K2-OHPg0FeHCarevMdWe0IWzm6wWumViEeYeJuGoFUE,3747
|
324
324
|
sky/utils/env_options.py,sha256=aaD6GoYK0LaZIqjOEZ-R7eccQuiRriW3EuLWtOI5En8,1578
|
@@ -344,15 +344,15 @@ sky/utils/kubernetes/deploy_remote_cluster.sh,sha256=EQMBC0VUqe3UaiYvwkNq4P6U9bk
|
|
344
344
|
sky/utils/kubernetes/exec_kubeconfig_converter.py,sha256=fE1SnteoxI05EaugnWeV82hXwZTVHmbXsh1aaZAgF3c,2548
|
345
345
|
sky/utils/kubernetes/generate_kind_config.py,sha256=_TNLnifA_r7-CRq083IP1xjelYqiLjzQX9ohuqYpDH8,3187
|
346
346
|
sky/utils/kubernetes/generate_kubeconfig.sh,sha256=MBvXJio0PeujZSCXiRKE_pa6HCTiU9qBzR1WrXccVSY,10477
|
347
|
-
sky/utils/kubernetes/gpu_labeler.py,sha256=
|
347
|
+
sky/utils/kubernetes/gpu_labeler.py,sha256=MKsEiWitn-LOG3-OEdBZ-MXJd_L3ztdB9JrhD6D2T1w,6912
|
348
348
|
sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7ZWF5gdVIZPupCCo9A,1224
|
349
349
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
350
350
|
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=HPVgNt-wbCVPd9dpDFiA7t2mzQLpjXHJ61eiwRbEr-c,10378
|
351
351
|
sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
|
352
352
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
|
353
|
-
skypilot_nightly-1.0.0.
|
354
|
-
skypilot_nightly-1.0.0.
|
355
|
-
skypilot_nightly-1.0.0.
|
356
|
-
skypilot_nightly-1.0.0.
|
357
|
-
skypilot_nightly-1.0.0.
|
358
|
-
skypilot_nightly-1.0.0.
|
353
|
+
skypilot_nightly-1.0.0.dev20250403.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
354
|
+
skypilot_nightly-1.0.0.dev20250403.dist-info/METADATA,sha256=YkgmWuWgAbuQRFP3Zfk3QpnqS_0KN7x50GuSoVI9JwU,18552
|
355
|
+
skypilot_nightly-1.0.0.dev20250403.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
|
356
|
+
skypilot_nightly-1.0.0.dev20250403.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
357
|
+
skypilot_nightly-1.0.0.dev20250403.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
358
|
+
skypilot_nightly-1.0.0.dev20250403.dist-info/RECORD,,
|
{skypilot_nightly-1.0.0.dev20250401.dist-info → skypilot_nightly-1.0.0.dev20250403.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|