skypilot-nightly 1.0.0.dev20250410__py3-none-any.whl → 1.0.0.dev20250412__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.
Files changed (49) hide show
  1. sky/__init__.py +2 -2
  2. sky/adaptors/oci.py +2 -2
  3. sky/authentication.py +2 -2
  4. sky/backends/backend_utils.py +1 -1
  5. sky/backends/cloud_vm_ray_backend.py +3 -3
  6. sky/check.py +1 -1
  7. sky/cli.py +51 -47
  8. sky/client/cli.py +51 -47
  9. sky/client/common.py +4 -2
  10. sky/client/sdk.py +60 -27
  11. sky/clouds/aws.py +2 -2
  12. sky/clouds/cloud.py +3 -2
  13. sky/clouds/kubernetes.py +20 -3
  14. sky/clouds/nebius.py +2 -4
  15. sky/clouds/oci.py +2 -2
  16. sky/clouds/utils/oci_utils.py +1 -1
  17. sky/core.py +12 -17
  18. sky/data/mounting_utils.py +34 -10
  19. sky/exceptions.py +1 -1
  20. sky/execution.py +5 -4
  21. sky/jobs/client/sdk.py +5 -0
  22. sky/optimizer.py +1 -2
  23. sky/provision/instance_setup.py +3 -1
  24. sky/provision/kubernetes/config.py +41 -36
  25. sky/provision/kubernetes/instance.py +4 -7
  26. sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml +54 -0
  27. sky/provision/kubernetes/network_utils.py +1 -1
  28. sky/provision/kubernetes/utils.py +51 -35
  29. sky/serve/client/sdk.py +6 -0
  30. sky/server/common.py +16 -1
  31. sky/server/constants.py +5 -0
  32. sky/server/requests/payloads.py +2 -0
  33. sky/setup_files/dependencies.py +1 -1
  34. sky/skylet/constants.py +2 -2
  35. sky/skypilot_config.py +197 -70
  36. sky/templates/kubernetes-ray.yml.j2 +66 -25
  37. sky/templates/websocket_proxy.py +41 -2
  38. sky/utils/config_utils.py +1 -1
  39. sky/utils/controller_utils.py +1 -1
  40. sky/utils/kubernetes/generate_kubeconfig.sh +2 -2
  41. sky/utils/kubernetes/rsync_helper.sh +26 -11
  42. {skypilot_nightly-1.0.0.dev20250410.dist-info → skypilot_nightly-1.0.0.dev20250412.dist-info}/METADATA +3 -1
  43. {skypilot_nightly-1.0.0.dev20250410.dist-info → skypilot_nightly-1.0.0.dev20250412.dist-info}/RECORD +47 -48
  44. sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml +0 -10
  45. sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml +0 -68
  46. {skypilot_nightly-1.0.0.dev20250410.dist-info → skypilot_nightly-1.0.0.dev20250412.dist-info}/WHEEL +0 -0
  47. {skypilot_nightly-1.0.0.dev20250410.dist-info → skypilot_nightly-1.0.0.dev20250412.dist-info}/entry_points.txt +0 -0
  48. {skypilot_nightly-1.0.0.dev20250410.dist-info → skypilot_nightly-1.0.0.dev20250412.dist-info}/licenses/LICENSE +0 -0
  49. {skypilot_nightly-1.0.0.dev20250410.dist-info → skypilot_nightly-1.0.0.dev20250412.dist-info}/top_level.txt +0 -0
@@ -267,11 +267,6 @@ available_node_types:
267
267
  {%- for label_key, label_value in labels.items() %}
268
268
  {{ label_key }}: {{ label_value|tojson }}
269
269
  {%- endfor %}
270
- {% if k8s_fuse_device_required %}
271
- annotations:
272
- # Required for FUSE mounting to access /dev/fuse
273
- container.apparmor.security.beta.kubernetes.io/ray-node: unconfined
274
- {% endif %}
275
270
  spec:
276
271
  # serviceAccountName: skypilot-service-account
277
272
  serviceAccountName: {{k8s_service_account_name}}
@@ -310,9 +305,12 @@ available_node_types:
310
305
  - name: dshm
311
306
  emptyDir:
312
307
  medium: Memory
313
- - name: dev-fuse # Required for fuse mounting
308
+ {% if k8s_fuse_device_required %}
309
+ - name: fusermount-shared-dir
314
310
  hostPath:
315
- path: /dev/fuse
311
+ path: {{k8s_fusermount_shared_dir}}
312
+ type: DirectoryOrCreate
313
+ {% endif %}
316
314
  containers:
317
315
  - name: ray-node
318
316
  imagePullPolicy: IfNotPresent
@@ -326,6 +324,10 @@ available_node_types:
326
324
  - name: {{ key }}
327
325
  value: {{ value }}
328
326
  {% endfor %}
327
+ {% if k8s_fuse_device_required %}
328
+ - name: FUSERMOUNT_SHARED_DIR
329
+ value: {{k8s_fusermount_shared_dir}}
330
+ {% endif %}
329
331
  # Do not change this command - it keeps the pod alive until it is
330
332
  # explicitly killed.
331
333
  command: ["/bin/bash", "-c", "--"]
@@ -350,11 +352,14 @@ available_node_types:
350
352
  (
351
353
  DEBIAN_FRONTEND=noninteractive $(prefix_cmd) apt-get update > /tmp/apt-update.log 2>&1 || \
352
354
  echo "Warning: apt-get update failed. Continuing anyway..." >> /tmp/apt-update.log
353
- PACKAGES="rsync curl netcat gcc patch pciutils fuse openssh-server";
355
+ # Install both fuse2 and fuse3 for compatibility for all possible fuse adapters in advance,
356
+ # so that both fusemount and fusermount3 can be masked before enabling SSH access.
357
+ PACKAGES="rsync curl wget netcat gcc patch pciutils fuse fuse3 openssh-server";
354
358
 
355
359
  # Separate packages into two groups: packages that are installed first
356
- # so that curl and rsync are available sooner to unblock the following
360
+ # so that curl, rsync and wget are available sooner to unblock the following
357
361
  # conda installation and rsync.
362
+ # Also, we install fuse first to avoid confliction with fuse3.
358
363
  set -e
359
364
  INSTALL_FIRST="";
360
365
  MISSING_PACKAGES="";
@@ -364,7 +369,7 @@ available_node_types:
364
369
  INSTALL_FIRST="$INSTALL_FIRST netcat-openbsd";
365
370
  fi
366
371
  elif ! dpkg -l | grep -q "^ii $pkg "; then
367
- if [ "$pkg" == "curl" ] || [ "$pkg" == "rsync" ]; then
372
+ if [ "$pkg" == "curl" ] || [ "$pkg" == "rsync" ] || [ "$pkg" == "fuse" ] || [ "$pkg" == "wget" ]; then
368
373
  INSTALL_FIRST="$INSTALL_FIRST $pkg";
369
374
  else
370
375
  MISSING_PACKAGES="$MISSING_PACKAGES $pkg";
@@ -382,7 +387,52 @@ available_node_types:
382
387
  echo "Installing missing packages: $MISSING_PACKAGES";
383
388
  DEBIAN_FRONTEND=noninteractive $(prefix_cmd) apt-get install -y -o Dpkg::Options::="--force-confdef" -o Dpkg::Options::="--force-confold" $MISSING_PACKAGES;
384
389
  fi;
385
-
390
+
391
+ {% if k8s_fuse_device_required %}
392
+ set -e
393
+ # Mask fusermount binary before enabling SSH access
394
+ FUSERMOUNT_PATH=$(which fusermount)
395
+ if [ -z "$FUSERMOUNT_PATH" ]; then
396
+ echo "Error: fusermount binary not found"
397
+ exit 1
398
+ fi
399
+ $(prefix_cmd) cp -p "$FUSERMOUNT_PATH" "${FUSERMOUNT_PATH}-original"
400
+ $(prefix_cmd) ln -sf {{k8s_fusermount_shared_dir}}/fusermount-shim "$FUSERMOUNT_PATH"
401
+ FUSERMOUNT3_PATH=$(which fusermount3)
402
+ if [ -z "$FUSERMOUNT3_PATH" ]; then
403
+ FUSERMOUNT3_PATH="${FUSERMOUNT_PATH}3"
404
+ fi
405
+ # Also mask fusermount3 for rclone and blobfuse2 (for unmount operation)
406
+ $(prefix_cmd) ln -sf "$FUSERMOUNT_PATH" "$FUSERMOUNT3_PATH"
407
+ # Add fusermount-wrapper to handle adapters that use libfuse directly, e.g. blobfuse2
408
+ $(prefix_cmd) ln -sf {{k8s_fusermount_shared_dir}}/fusermount-wrapper /bin/fusermount-wrapper
409
+ # Wait for the server to setup the fusermount shim binary in case:
410
+ # 1. The server daemonset was just deployed and is still starting up.
411
+ # 2. The node was just started and the server Pod is still starting up.
412
+ wait_for_fusermount() {
413
+ local timeout=60
414
+ local start_time=$(date +%s)
415
+ while ! command -v fusermount >/dev/null 2>&1; do
416
+ current_time=$(date +%s)
417
+ elapsed=$((current_time - start_time))
418
+ if [ $elapsed -ge $timeout ]; then
419
+ echo "Error: fusermount not ready after $timeout seconds"
420
+ exit 1
421
+ fi
422
+ sleep 1
423
+ done
424
+ }
425
+ wait_for_fusermount
426
+ # Some distributions may mount hostPath with noexec, copy the binary in this case.
427
+ if ! fusermount -V; then
428
+ echo "fusermount -V failed, copying fusermount-shim directly"
429
+ $(prefix_cmd) rm -f "$FUSERMOUNT_PATH"
430
+ $(prefix_cmd) cp -p {{k8s_fusermount_shared_dir}}/fusermount-shim "$FUSERMOUNT_PATH"
431
+ $(prefix_cmd) rm -f /bin/fusermount-wrapper
432
+ $(prefix_cmd) cp -p {{k8s_fusermount_shared_dir}}/fusermount-wrapper /bin/fusermount-wrapper
433
+ fi
434
+ {% endif %}
435
+
386
436
  $(prefix_cmd) mkdir -p /var/run/sshd;
387
437
  $(prefix_cmd) sed -i "s/PermitRootLogin prohibit-password/PermitRootLogin yes/" /etc/ssh/sshd_config;
388
438
  $(prefix_cmd) sed "s@session\s*required\s*pam_loginuid.so@session optional pam_loginuid.so@g" -i /etc/pam.d/sshd;
@@ -394,6 +444,7 @@ available_node_types:
394
444
  $(prefix_cmd) chmod 644 ~/.ssh/authorized_keys;
395
445
  $(prefix_cmd) service ssh restart;
396
446
  $(prefix_cmd) sed -i "s/mesg n/tty -s \&\& mesg n/" ~/.profile;
447
+
397
448
  ) > /tmp/${STEPS[0]}.log 2>&1 || {
398
449
  echo "Error: ${STEPS[0]} failed. Continuing anyway..." > /tmp/${STEPS[0]}.failed
399
450
  cat /tmp/${STEPS[0]}.log
@@ -539,10 +590,8 @@ available_node_types:
539
590
  - mountPath: /dev/shm
540
591
  name: dshm
541
592
  {% if k8s_fuse_device_required %}
542
- securityContext:
543
- capabilities:
544
- add:
545
- - "SYS_ADMIN"
593
+ - name: fusermount-shared-dir
594
+ mountPath: {{k8s_fusermount_shared_dir}}
546
595
  {% endif %}
547
596
  resources:
548
597
  requests:
@@ -556,20 +605,12 @@ available_node_types:
556
605
  # https://cloud.google.com/kubernetes-engine/docs/concepts/tpus#how_tpus_work
557
606
  {{k8s_resource_key}}: {{accelerator_count}}
558
607
  {% endif %}
559
- {% if k8s_fuse_device_required %}
560
- # Kubernetes resource exposed by the fuse device manager
561
- # https://gitlab.com/arm-research/smarter/smarter-device-manager
562
- smarter-devices/fuse: "1"
563
- {% endif %}
564
- {% if k8s_resource_key is not none or k8s_fuse_device_required %}
608
+ {% if k8s_resource_key is not none %}
565
609
  limits:
566
610
  # Limits need to be defined for GPU/TPU requests
567
611
  {% if k8s_resource_key is not none %}
568
612
  {{k8s_resource_key}}: {{accelerator_count}}
569
613
  {% endif %}
570
- {% if k8s_fuse_device_required %}
571
- smarter-devices/fuse: "1"
572
- {% endif %}
573
614
  {% endif %}
574
615
 
575
616
  setup_commands:
@@ -578,7 +619,7 @@ setup_commands:
578
619
  # 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
579
620
  # 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.
580
621
  # Line 'mkdir -p ..': disable host key check
581
- # Line 'python3 -c ..': patch the buggy ray files and enable `-o allow_other` option for `goofys`
622
+ # Line '[-f /etc/fuse.conf] ..': enable `-o allow_other` option for `goofys`
582
623
  # Line 'for step in ..': check if any failure indicator exists for the setup done in pod args and print the error message. This is only a best effort, as the
583
624
  # commands in pod args are asynchronous and we cannot guarantee the failure indicators are created before the setup commands finish.
584
625
  - |
@@ -1,17 +1,46 @@
1
1
  #!/usr/bin/env python3
2
+ # /// script
3
+ # dependencies = [
4
+ # "websockets>=14.0",
5
+ # ]
6
+ # ///
2
7
  """Starting a websocket with SkyPilot API server to proxy SSH to a k8s pod.
3
8
 
4
9
  This script is useful for users who do not have local Kubernetes credentials.
5
10
  """
6
11
  import asyncio
12
+ from http.cookiejar import MozillaCookieJar
7
13
  import os
8
14
  import sys
15
+ from typing import Dict
16
+ from urllib.request import Request
9
17
 
10
18
  import websockets
19
+ from websockets.asyncio.client import connect
20
+
21
+
22
+ def _get_cookie_header(url: str) -> Dict[str, str]:
23
+ """Extract Cookie header value from a cookie jar for a specific URL"""
24
+ cookie_path = os.environ.get('SKYPILOT_API_COOKIE_FILE')
25
+ if cookie_path is None:
26
+ return {}
27
+
28
+ request = Request(url)
29
+ cookie_jar = MozillaCookieJar(os.path.expanduser(cookie_path))
30
+ cookie_jar.load(ignore_discard=True, ignore_expires=True)
31
+ cookie_jar.add_cookie_header(request)
32
+ cookie_header = request.get_header('Cookie')
33
+ # if cookie file is empty, return empty dict
34
+ if cookie_header is None:
35
+ return {}
36
+ return {'Cookie': cookie_header}
11
37
 
12
38
 
13
39
  async def main(url: str) -> None:
14
- async with websockets.connect(url, ping_interval=None) as websocket:
40
+ cookie_header = _get_cookie_header(url)
41
+ async with connect(url,
42
+ ping_interval=None,
43
+ additional_headers=cookie_header) as websocket:
15
44
  if os.isatty(sys.stdin.fileno()):
16
45
  # pylint: disable=import-outside-toplevel
17
46
  import termios
@@ -59,6 +88,16 @@ async def websocket_to_stdout(websocket):
59
88
 
60
89
  if __name__ == '__main__':
61
90
  server_url = sys.argv[1].strip('/')
62
- websocket_url = (f'ws://{server_url}/kubernetes-pod-ssh-proxy'
91
+ if '://' not in server_url:
92
+ # Keep backward compatibility for legacy server URLs without protocol
93
+ # TODO(aylei): Remove this after 0.10.0
94
+ server_url = f'http://{server_url}'
95
+
96
+ server_proto, server_fqdn = server_url.split('://')
97
+ websocket_proto = 'ws'
98
+ if server_proto == 'https':
99
+ websocket_proto = 'wss'
100
+ server_url = f'{websocket_proto}://{server_fqdn}'
101
+ websocket_url = (f'{server_url}/kubernetes-pod-ssh-proxy'
63
102
  f'?cluster_name={sys.argv[2]}')
64
103
  asyncio.run(main(websocket_url))
sky/utils/config_utils.py CHANGED
@@ -146,7 +146,7 @@ def _get_nested(configs: Optional[Dict[str, Any]],
146
146
  curr = value
147
147
  else:
148
148
  return default_value
149
- logger.debug(f'User config: {".".join(keys)} -> {curr}')
149
+ logger.debug(f'Config: {".".join(keys)} -> {curr}')
150
150
  return curr
151
151
 
152
152
 
@@ -46,7 +46,7 @@ logger = sky_logging.init_logger(__name__)
46
46
  # controller resources spec.
47
47
  CONTROLLER_RESOURCES_NOT_VALID_MESSAGE = (
48
48
  '{controller_type} controller resources is not valid, please check '
49
- '~/.sky/config.yaml file and make sure '
49
+ '~/.sky/skyconfig.yaml file and make sure '
50
50
  '{controller_type}.controller.resources is a valid resources spec. '
51
51
  'Details:\n {err}')
52
52
 
@@ -328,9 +328,9 @@ cp kubeconfig ~/.kube/config
328
328
  # Verify that you can access the cluster
329
329
  kubectl get pods
330
330
 
331
- Also add this to your ~/.sky/config.yaml to use the new service account:
331
+ Also add this to your ~/.sky/skyconfig.yaml to use the new service account:
332
332
 
333
- # ~/.sky/config.yaml
333
+ # ~/.sky/skyconfig.yaml
334
334
  kubernetes:
335
335
  remote_identity: ${SKYPILOT_SA}
336
336
  "
@@ -1,20 +1,35 @@
1
- # When using pod@namespace+context, rsync passes args as: {us} -l pod namespace+context
2
- # We need to split the pod@namespace+context into pod, namespace and context
1
+ # We need to determine the pod, namespace and context from the args
3
2
  # For backward compatibility, we use + as the separator between namespace and context and add handling when context is not provided
4
- shift
5
- pod=$1
6
- shift
7
- echo "pod: $pod" >&2
8
- encoded_namespace_context=$1
9
- # Revert the encoded namespace+context to the original string.
10
- namespace_context=$(echo "$encoded_namespace_context" | sed 's|%40|@|g' | sed 's|%3A|:|g' | sed 's|%2B|+|g' | sed 's|%2F|/|g')
11
- echo "namespace_context: $namespace_context" >&2
3
+ if [ "$1" = "-l" ]; then
4
+ # -l pod namespace+context ...
5
+ # used by normal rsync
6
+ shift
7
+ pod=$1
8
+ shift
9
+ encoded_namespace_context=$1
10
+ shift
11
+ echo "pod: $pod" >&2
12
+ # Revert the encoded namespace+context to the original string.
13
+ namespace_context=$(echo "$encoded_namespace_context" | sed 's|%40|@|g' | sed 's|%3A|:|g' | sed 's|%2B|+|g' | sed 's|%2F|/|g')
14
+ echo "namespace_context: $namespace_context" >&2
15
+ else
16
+ # pod@namespace+context ...
17
+ # used by openrsync
18
+ encoded_pod_namespace_context=$1
19
+ shift
20
+ pod_namespace_context=$(echo "$encoded_pod_namespace_context" | sed 's|%40|@|g' | sed 's|%3A|:|g' | sed 's|%2B|+|g' | sed 's|%2F|/|g')
21
+ echo "pod_namespace_context: $pod_namespace_context" >&2
22
+ pod=$(echo $pod_namespace_context | cut -d@ -f1)
23
+ echo "pod: $pod" >&2
24
+ namespace_context=$(echo $pod_namespace_context | cut -d@ -f2-)
25
+ echo "namespace_context: $namespace_context" >&2
26
+ fi
12
27
  namespace=$(echo $namespace_context | cut -d+ -f1)
13
28
  echo "namespace: $namespace" >&2
14
29
  context=$(echo $namespace_context | grep '+' >/dev/null && echo $namespace_context | cut -d+ -f2- || echo "")
15
30
  echo "context: $context" >&2
16
31
  context_lower=$(echo "$context" | tr '[:upper:]' '[:lower:]')
17
- shift
32
+
18
33
  if [ -z "$context" ] || [ "$context_lower" = "none" ]; then
19
34
  # If context is none, it means we are using incluster auth. In this case,
20
35
  # use need to set KUBECONFIG to /dev/null to avoid using kubeconfig file.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: skypilot-nightly
3
- Version: 1.0.0.dev20250410
3
+ Version: 1.0.0.dev20250412
4
4
  Summary: SkyPilot: An intercloud broker for the clouds
5
5
  Author: SkyPilot Team
6
6
  License: Apache 2.0
@@ -88,6 +88,7 @@ Requires-Dist: oci; extra == "oci"
88
88
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "oci"
89
89
  Provides-Extra: kubernetes
90
90
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "kubernetes"
91
+ Requires-Dist: websockets; extra == "kubernetes"
91
92
  Provides-Extra: remote
92
93
  Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "remote"
93
94
  Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "remote"
@@ -145,6 +146,7 @@ Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
145
146
  Requires-Dist: oci; extra == "all"
146
147
  Requires-Dist: ray[default]!=2.6.0,>=2.2.0; extra == "all"
147
148
  Requires-Dist: kubernetes!=32.0.0,>=20.0.0; extra == "all"
149
+ Requires-Dist: websockets; extra == "all"
148
150
  Requires-Dist: grpcio!=1.48.0,>=1.32.0; python_version < "3.10" and extra == "all"
149
151
  Requires-Dist: grpcio!=1.48.0,>=1.42.0; python_version >= "3.10" and extra == "all"
150
152
  Requires-Dist: protobuf!=3.19.5,>=3.15.3; extra == "all"
@@ -1,19 +1,19 @@
1
- sky/__init__.py,sha256=oBQaypuhkirzhOf4CsuwB1gyaFf4gSKZu5y3iffAToU,6428
1
+ sky/__init__.py,sha256=9Za1DIzCarByzcU2t_Yog3m_vB1dZXNKcGa6WGnKiT8,6428
2
2
  sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
3
- sky/authentication.py,sha256=ND011K_-Ud1dVZF37A9KrwYir_ihJXcHc7iDWmuBc8Q,22872
4
- sky/check.py,sha256=PPNQnaaZBA9_aogJpN4gnG4XWnTqkd74c-rBYDkDRDY,16101
5
- sky/cli.py,sha256=DOMNgAjK8Iir8nQNoQDG2tIWg9Jf_Gh2DDFqHnjxflU,222727
3
+ sky/authentication.py,sha256=A9PkFyir809O3BkYoKedJKs0OynEwy5lAlkiW92vjag,22878
4
+ sky/check.py,sha256=iXrVOqngw7M66HlU5r-Sf65I1s6QAJ5vkPwYxD3N9tg,16104
5
+ sky/cli.py,sha256=A7J86zgCrO5gP4-6d3qr3swKA2RoF9LkbblcALYp8cc,222589
6
6
  sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
7
- sky/core.py,sha256=_x4mn_L8K_Fvits0_bP9TzC0Pf4Y-eMSc7_PBW0pxMM,47956
7
+ sky/core.py,sha256=BrYhuSL09slF5n1y9ZWExa99ZA98eYCVB8ACkMmEruE,47747
8
8
  sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
9
- sky/exceptions.py,sha256=EodMj6P0x0JYBiioLNuPoFMj12HzlQTQpfXNX6zHBoA,16837
10
- sky/execution.py,sha256=FicobVGXIq2z5suKscTZi5aZ8w-_qzeSsuecEabI2vY,28703
9
+ sky/exceptions.py,sha256=QQkcb6LSzcZazMZCrAcFl2yewYZoEFVcZVHRc-Ouquk,16856
10
+ sky/execution.py,sha256=qJhDrgy4COdojU3SxYazcTE67QPWFrZdUhUvihloyng,28727
11
11
  sky/global_user_state.py,sha256=7HADn0mY-0omf5RbpmAZ88bjySzqKcmiD1MEmkrCoNU,33754
12
12
  sky/models.py,sha256=4Hq_JNpeQyvRlde_mf1T8H5iDS362TRORYXjtk2nmT4,735
13
- sky/optimizer.py,sha256=uutziDwxyq-f5n31YXgCF9fmqx5vndIU8g_avvGWuGc,58532
13
+ sky/optimizer.py,sha256=U9tTIMU4D-X9n03QmSldBMwwodUpWcPi1PhwgWHheMM,58483
14
14
  sky/resources.py,sha256=2qc5U09MFDaJjI1dHcThcRodpMGY7HyXzQn8eC4lvbE,72402
15
15
  sky/sky_logging.py,sha256=pID2RINjH62n7SZpv70DuN8BSFYdCfTJ2ScGQpVmugg,5725
16
- sky/skypilot_config.py,sha256=CdaIbPL_7ECG5laOARca4p9df_6NLhT-bO8WnalxZAY,8839
16
+ sky/skypilot_config.py,sha256=nXHTKi2ayMO9zA4vEJgJ_VuV-p1bah70SttCzjAHCkI,14448
17
17
  sky/task.py,sha256=tM-DpB7Mtxtc280gFIw9QvJfKEHgiIoew5rnNxxaj04,56737
18
18
  sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  sky/adaptors/aws.py,sha256=iH55Cm6eXWwufAG0Dgk7LTQcADawNa3ELrBH1m6yuSY,7617
@@ -27,14 +27,14 @@ sky/adaptors/gcp.py,sha256=oEb9jClEtApw6PQnxdxDYxOCYsedvM3aiko1EW1FDVo,3501
27
27
  sky/adaptors/ibm.py,sha256=7YbHrWbYcZsJDgxMBNZr1yBI03mjs_C3pnCTCz-MNtQ,5068
28
28
  sky/adaptors/kubernetes.py,sha256=pbrMAO_jaHFPdIKryNALY0jvXujC3nUKnYlq0Sj6I2M,6884
29
29
  sky/adaptors/nebius.py,sha256=PMDuqJ3SWLUUqtUgYLpCHOBJ-xucqptGforknSZr-54,6546
30
- sky/adaptors/oci.py,sha256=LfMSFUmkkNT6Yoz9FZHNl6UFSg4X1lJO4-x4ZbDdXTs,2831
30
+ sky/adaptors/oci.py,sha256=xJt6J9xBSFIENa6FwEt1V1sZE8puAZ_vPEoGlyQACPs,2839
31
31
  sky/adaptors/runpod.py,sha256=4Nt_BfZhJAKQNA3wO8cxvvNI8x4NsDGHu_4EhRDlGYQ,225
32
32
  sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
33
33
  sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
34
34
  sky/backends/__init__.py,sha256=UDjwbUgpTRApbPJnNfR786GadUuwgRk3vsWoVu5RB_c,536
35
35
  sky/backends/backend.py,sha256=wrVNzPkxDjHVAh46-iejBNe0nqx4DB6-Awtaqx5j2zs,7723
36
- sky/backends/backend_utils.py,sha256=ndY4IPs1F9QovyiKAnB1FNYGWm52_ylwf_K7wY50cv0,134922
37
- sky/backends/cloud_vm_ray_backend.py,sha256=qqzkfDXwM31h-XcceKzTuHWoMU8vt3mo8NZBZGBPBXQ,251962
36
+ sky/backends/backend_utils.py,sha256=xmv-vSvpULmNmVeWvJxkzhbmQEkctF4x5nqHFFnOEew,134925
37
+ sky/backends/cloud_vm_ray_backend.py,sha256=mSbGOhyDaoRnaUEITV3b5xYeo9COpBWvQmdKfQ3TSlk,251973
38
38
  sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
39
39
  sky/backends/local_docker_backend.py,sha256=m0s6EZ9dTbPO8STy9FeLj8DvvtI_44MwDK9QByh2jwU,17048
40
40
  sky/backends/wheel_utils.py,sha256=meypuMaygSXXjGdXfq6dhWl-OrpAybg9KVRoup4D0wU,9098
@@ -43,22 +43,22 @@ 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=DOMNgAjK8Iir8nQNoQDG2tIWg9Jf_Gh2DDFqHnjxflU,222727
47
- sky/client/common.py,sha256=YMgYoSYlV3B_scfCIJRKHvDq6JKvnSvRZDhlRjRmzu0,14780
48
- sky/client/sdk.py,sha256=36tvJou2IaG8H5lrqMicv-gSJn6VUDHUtB7V20t4lA8,68620
46
+ sky/client/cli.py,sha256=A7J86zgCrO5gP4-6d3qr3swKA2RoF9LkbblcALYp8cc,222589
47
+ sky/client/common.py,sha256=KlV1SDWqSdnXyBd1VMNRoUyVk1430D2PL27rD6fk5fY,14913
48
+ sky/client/sdk.py,sha256=nkN3WCYLkwJEFuT-C-PK0yfXaZ5pCgDwpp8jVNIvZNw,70657
49
49
  sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
50
- sky/clouds/aws.py,sha256=-feXZ72UMUjuZz8dV4qMTjMMTC9pwfkQQT3KJDcIv5A,54633
50
+ sky/clouds/aws.py,sha256=Op79pTZpMTIKznLbaZEnl7cs7J_xvJDnO5BOlCv4eQ4,54639
51
51
  sky/clouds/azure.py,sha256=Zpo6ftWz_B30mX7N-An7JVO-8v7aU3f9cw1iH9phvwE,32251
52
- sky/clouds/cloud.py,sha256=OoSyFNYtby2Y0h2TpfMB_lEeolIZOQcfKgIn6AvRC68,36694
52
+ sky/clouds/cloud.py,sha256=22sfoOyGYjsBj88RHp-eHHs6aqi0xDb8q_9o_v6SIFM,36690
53
53
  sky/clouds/cudo.py,sha256=_UkLEtwJsfDMKlmJfML5W3rA8VArba4x8YGIdnvgZoM,13226
54
54
  sky/clouds/do.py,sha256=-jVrq5qXxaOROT2R2U0XoYiMfLT0J1wGNodzjzcTUSI,11586
55
55
  sky/clouds/fluidstack.py,sha256=jIqW1MLe55MVME1PATZm8e6_FsiTnJawW7OdytPW0aM,12666
56
56
  sky/clouds/gcp.py,sha256=aDkVXRl2hjrYVp8S0BLkkbvRF4Fl996uAsv7yOkN9wQ,57108
57
57
  sky/clouds/ibm.py,sha256=XtuPN8QgrwJdb1qb_b-7KwAE2tf_N9wh9eEfi2tcg-s,22013
58
- sky/clouds/kubernetes.py,sha256=SNRilcl_JYvaMDoYw0jnMtfaSi7FKQycCiJVmX6-4f4,36216
58
+ sky/clouds/kubernetes.py,sha256=UCEy6_kLFyYY1XoWYJdixbBbli_Nx8DSRELh47z8c_w,37045
59
59
  sky/clouds/lambda_cloud.py,sha256=H32vd30OfjXriH9SibVATrJZfZcCBTiWAXHfliGeMZk,12804
60
- sky/clouds/nebius.py,sha256=oNsOJpHJLMHRUhin_1IazG86m7VWJhx7Oa83sunPVoU,15240
61
- sky/clouds/oci.py,sha256=YO4kjSsHBmAVH4z1TuVP72zfmC0BXte4E0xIyZir9N4,27622
60
+ sky/clouds/nebius.py,sha256=5n_LTFZjhsCTOFIC7pTvpOdpYuRlxx2VFiS2NXa8cMk,15086
61
+ sky/clouds/oci.py,sha256=TW2bZJnZkl_Ih_1heovvi39s7iHRLM_ZLjSjz-6fRo0,27625
62
62
  sky/clouds/paperspace.py,sha256=s_sZcGqmABEqzu0MTus8__NuHo5hIUvq2FqVZCRkTzE,11070
63
63
  sky/clouds/runpod.py,sha256=P486CMN-Mt3R-7jMVd3XIGjLWYy0X5B74dK_IgAp2Cg,12149
64
64
  sky/clouds/scp.py,sha256=6OucFxDIOZFA1Z_QZwGqblW4zdBljhUjhamssvchu_0,15971
@@ -99,12 +99,12 @@ sky/clouds/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
99
99
  sky/clouds/utils/aws_utils.py,sha256=W5BRC-2F_VY4BymRA1kS6-MufsI3V8cfY_hv--4gJBU,1986
100
100
  sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4t8,3555
101
101
  sky/clouds/utils/gcp_utils.py,sha256=YtuS4EoAMvcRnGPgE_WLENPOPWIdvhp7dLceTw_zfas,7114
102
- sky/clouds/utils/oci_utils.py,sha256=KbmwTWlEO3stcjM4jN2agSFi2w9WNc2NYA9Gr5jMAvE,6385
102
+ sky/clouds/utils/oci_utils.py,sha256=0YxhgZdeIHQUI1AZ86YuswsZg5HdVCIVfSTRJsSHYI0,6396
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
106
  sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
107
- sky/data/mounting_utils.py,sha256=oMPh5LC_1EZ4pfgntteeLWpll2ZG-oREtkl0eoSctjA,20162
107
+ sky/data/mounting_utils.py,sha256=fmJUDs7WEARYpq-cHQ5OfPRVFp_siAnqSutTLe3PROA,21432
108
108
  sky/data/storage.py,sha256=AczQdfC37N686FOYP63yk9xysBy4YRzFQkz6HK6k7aQ,236136
109
109
  sky/data/storage_utils.py,sha256=u8PTKUkE7qYwr1GgAJ45pI5YUkhUaPQPRUz_CZZo_HI,13785
110
110
  sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
@@ -115,7 +115,7 @@ sky/jobs/scheduler.py,sha256=luQgrCDaDP6bI7oIbaqzxg4qMJtUIVswypnOGUklGtw,13270
115
115
  sky/jobs/state.py,sha256=tDULLH6DVs4oKUIKhh0UAn3RzyVGuIUtEq5kW7K1Ojw,44585
116
116
  sky/jobs/utils.py,sha256=ipeh46sWnGWC_gEtWDAqifJZeq2_S5eEa2psyIjLROA,56869
117
117
  sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
118
- sky/jobs/client/sdk.py,sha256=ngO-R_PSi-QIky3ppeNBOOx4fEkhE9nuGAEz7rHTdKQ,10238
118
+ sky/jobs/client/sdk.py,sha256=MxXPe9Mijwegnk_Xupo9qOrkMzYbMOP_GpUKCdDCmZg,10498
119
119
  sky/jobs/dashboard/dashboard.py,sha256=JKg8cCH_Y0sf3MoDTx85BghVEXWpp8ItPLshp09-_Js,7618
120
120
  sky/jobs/dashboard/static/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
121
121
  sky/jobs/dashboard/templates/index.html,sha256=NrlTDiEHJDt7sViwWgXUSxVCyVl_IEukE5jdvN8WhtQ,33132
@@ -127,7 +127,7 @@ sky/provision/__init__.py,sha256=LzOo5LjkRXwSf29dUqN14YbjzQu3liXLQcmweTeZ4dE,645
127
127
  sky/provision/common.py,sha256=E8AlSUFcn0FYQq1erNmoVfMAdsF9tP2yxfyk-9PLvQU,10286
128
128
  sky/provision/constants.py,sha256=oc_XDUkcoLQ_lwDy5yMeMSWviKS0j0s1c0pjlvpNeWY,800
129
129
  sky/provision/docker_utils.py,sha256=ENm0LkyrYWic3Ikyacho8X5uDMvGsbkZQsb6kNH1DuI,19629
130
- sky/provision/instance_setup.py,sha256=8ePBfK8qVb9IWmK7vKL8huXrBj5IdN2WsEbiQ6FtGqQ,24388
130
+ sky/provision/instance_setup.py,sha256=NCTRZbCcSBawH5SEtU_AaIqJa47Pdi9MxtJEWgf7-CI,24458
131
131
  sky/provision/logging.py,sha256=_sx_TH6nLt0FF3myS5pEZbiMhXyl4s1XwMidu_TTBUw,2091
132
132
  sky/provision/metadata_utils.py,sha256=LrxeV4wD2QPzNdXV_npj8q-pr35FatxBBjF_jSbpOT0,4013
133
133
  sky/provision/provisioner.py,sha256=XBUnDxPALMj0CiBMtJY8s_1Q-V5rWWL07olk4jzua_g,29878
@@ -161,14 +161,13 @@ sky/provision/gcp/instance.py,sha256=47jDHLbIAI5M1MZIQTCiKGfwc9QzPOyjApkShqBRczE
161
161
  sky/provision/gcp/instance_utils.py,sha256=T0AVT8lMn128snPp3MvqmhXOihlZSC8-c1QpgYT4_FA,71377
162
162
  sky/provision/gcp/mig_utils.py,sha256=oFpcFZoapHMILSE4iIm8V5bxP1RhbMHRF7cciqq8qAk,7883
163
163
  sky/provision/kubernetes/__init__.py,sha256=y6yVfii81WYG3ROxv4hiIj-ydinS5-xGxLvXnARVQoI,719
164
- sky/provision/kubernetes/config.py,sha256=R7dC4MEXNRmnbdDerzhnJ5umq1tY7owfqfJHA1gMJuQ,29158
164
+ sky/provision/kubernetes/config.py,sha256=ma5_bTbbt-VLTP2MvKzfMYgD7VDXlP0KZu7vOLwF2jw,29626
165
165
  sky/provision/kubernetes/constants.py,sha256=dZCUV8FOO9Gct80sdqeubKnxeW3CGl-u5mxKeIb-B0M,411
166
- sky/provision/kubernetes/instance.py,sha256=oag17OtuiqU-1RjkgW9NvEpxSGUFIYdI7M61S-YmPu8,50503
166
+ sky/provision/kubernetes/instance.py,sha256=tzy_eEJoQD6BFENzJiz263rtnfJlzMmNRdAFO4Mn7RQ,50256
167
167
  sky/provision/kubernetes/network.py,sha256=AtcOM8wPs_-UlQJhGEQGP6Lh4HIgdx63Y0iWEhP5jyc,12673
168
- sky/provision/kubernetes/network_utils.py,sha256=6uck1aBkgtm-gGBitU3_hEUp8j14ZuG_4Xo70ReZYXs,11654
169
- sky/provision/kubernetes/utils.py,sha256=D7xfk6RjqLAsERpJMxQ8ozu-D3pRTz_bRszKQeMsVno,127188
170
- sky/provision/kubernetes/manifests/smarter-device-manager-configmap.yaml,sha256=AMzYzlY0JIlfBWj5eX054Rc1XDW2thUcLSOGMJVhIdA,229
171
- sky/provision/kubernetes/manifests/smarter-device-manager-daemonset.yaml,sha256=RtTq4F1QUmR2Uunb6zuuRaPhV7hpesz4saHjn3Ncsb4,2010
168
+ sky/provision/kubernetes/network_utils.py,sha256=fBAYHfc-h3PWw0ORQLK9AlTcWxcMe97Ef6GOEKMNcQ4,11657
169
+ sky/provision/kubernetes/utils.py,sha256=edXivU2XfSo13hx3I5t2Kjcu9NzKN777Bn_LMW3YxR8,127523
170
+ sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml,sha256=S87GNAbDqgTrLuxF-afPAqQ0V-i41El4s_9KBZMuaag,1331
172
171
  sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
173
172
  sky/provision/lambda_cloud/config.py,sha256=jq1iLzp4Up61r4JGxvtpVbJlgXnea3LHYQhCQyyl7ik,272
174
173
  sky/provision/lambda_cloud/instance.py,sha256=zenKFaAS9bAJxXM5_-Vnz7Fm7sSf3KSIlXhKUL4n6l8,12726
@@ -225,13 +224,13 @@ sky/serve/service.py,sha256=JlLyhwHbBUztLgKrfBpVRIUhGwGizemfxL7txs9dpcc,12539
225
224
  sky/serve/service_spec.py,sha256=t7wh7sx68DKjPyrk1Ub-c1ZjkWD8ehG-YOj9CNdC9qQ,18552
226
225
  sky/serve/spot_placer.py,sha256=LZk-VFPLyKpSJHFlNj-OkTN8C3KppD-IOocp5BHb6X4,11076
227
226
  sky/serve/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
228
- sky/serve/client/sdk.py,sha256=skeCTX5vO2ZzkSBjn4U9EaTg_YIv9gMR1YorfVZIV2g,11655
227
+ sky/serve/client/sdk.py,sha256=4lcil59KNmJSPUpPaq7x1oj6KsdXxCw-GUMU9QiTli8,11967
229
228
  sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
230
229
  sky/serve/server/core.py,sha256=eShbugECWzJoSUDq5tZt-pePG0hgMY4dqY8AWNZ9_9s,33537
231
230
  sky/serve/server/server.py,sha256=gQGVU9nHYdGbaLhGjIUNIYn4xwKjRASRJkiiTL5AI1Y,3283
232
231
  sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
233
- sky/server/common.py,sha256=6FQ-2X4AagshuXNxKxjgFRKT_mtgTGh7kG1GOJ2tZIM,19185
234
- sky/server/constants.py,sha256=_ZNrxYh8vmgbf3DmkGDduxjvO2y43ZSPTkH5rCNsVjU,770
232
+ sky/server/common.py,sha256=0Ob8MfIUhjL8XGXm2DiKfJtEvNfb0Ez4m2HX0820uRI,19879
233
+ sky/server/constants.py,sha256=hYY00IKxBQGveZMuWATOv4vHsgJNN8sCnI-t5G78sAc,948
235
234
  sky/server/server.py,sha256=7aK3Nv_aHIYX2ZB_NFy-5Cn-DbSxUPMeiWaDY_2DLXE,44674
236
235
  sky/server/stream_utils.py,sha256=4JMHgtoXPpCT8JwtqyUcDQ9IdZFir9om0JaCRr8rvbQ,5849
237
236
  sky/server/uvicorn.py,sha256=wajwPHJ3IEEP3GMNOCc0S81-1v2qT5F-ejUkLFVhUzk,2953
@@ -239,7 +238,7 @@ sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
239
238
  sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
240
239
  sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
241
240
  sky/server/requests/executor.py,sha256=z9DaLJOy__7BUddMhXCODmxqD3iAblo6-siEsmO9DiU,26495
242
- sky/server/requests/payloads.py,sha256=3sF36Z9_PLzpEncW0AplJtOz-_nsn5PJaM5lS-3Y8bw,16558
241
+ sky/server/requests/payloads.py,sha256=WYW-7kKX2uqemkfmlpieUkSXaF3gVxOlhmCTDnwrR04,16681
243
242
  sky/server/requests/preconditions.py,sha256=ipxIb_3JXG6S3-ymcOdqQNb7VDvoPqADxu9ZK7-nQWc,7179
244
243
  sky/server/requests/process.py,sha256=uv6JmqdT1vR6S5j3a0CEmxz3fUoKQoZCryQsjZpZE7E,8734
245
244
  sky/server/requests/requests.py,sha256=9ovdQE-zv_Mvc6IbGATHVyQlOxSKjg_OankZbgDVGeE,21338
@@ -250,14 +249,14 @@ sky/server/requests/serializers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm
250
249
  sky/server/requests/serializers/decoders.py,sha256=0cpg80uAqkdK_LqcQPkpKswhcNUUztG9luDLm_0eUow,6811
251
250
  sky/server/requests/serializers/encoders.py,sha256=i4SAb5Oyp00CyMkyidbdA9dtxAzxZl40KTpL_x6pH0w,5679
252
251
  sky/setup_files/MANIFEST.in,sha256=cHYG6IdIp7RsDapL4Lrs-WTeYJftHn6qystSolmyyk8,581
253
- sky/setup_files/dependencies.py,sha256=Ec90STwW_4VAqmydYy99KbS2nSFXhjmBV4Ju72ZvKA4,6442
252
+ sky/setup_files/dependencies.py,sha256=adacO1H3Y0LUJgcCOlTVnbaDSUBgXLV42Qr4OW0amb0,6456
254
253
  sky/setup_files/setup.py,sha256=Q9f0RvsdPC0FLvyTKW-upQtRuA81jRO4TtN3VK-mP-Y,7436
255
254
  sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
256
255
  sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
257
256
  sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
258
257
  sky/skylet/autostop_lib.py,sha256=kGUnHm-jpF4zl3UJfB-4pnoldWpnVeR96WwYGSw7em0,4630
259
258
  sky/skylet/configs.py,sha256=UtnpmEL0F9hH6PSjhsps7xgjGZ6qzPOfW1p2yj9tSng,1887
260
- sky/skylet/constants.py,sha256=uGhQdxdxO42rwQyu_gg0aeiSFIXxUK2jPoDOaGaMb2M,18550
259
+ sky/skylet/constants.py,sha256=963O5hk98tw-osqGx2BNtFkb4Z5nHnii1_wfSJeVUSI,18556
261
260
  sky/skylet/events.py,sha256=pnV3ZiwWhXqTHpU5B5Y9Xwam_7FQDI6IrxgSx7X_NVA,12743
262
261
  sky/skylet/job_lib.py,sha256=FUpaCSg5yl4ptFb3_GOeUunHTz4qJvwJJjeqrpiRUTk,44470
263
262
  sky/skylet/log_lib.py,sha256=eQT_nbdPVp6wLtFxeoYL5Vt-VFIdmV588G08iEljncc,21053
@@ -292,7 +291,7 @@ sky/templates/jobs-controller.yaml.j2,sha256=LbeWGkarOcrRbbdvkZv_ZfyydEcJBohKItC
292
291
  sky/templates/kubernetes-ingress.yml.j2,sha256=73iDklVDWBMbItg0IexCa6_ClXPJOxw7PWz3leku4nE,1340
293
292
  sky/templates/kubernetes-loadbalancer.yml.j2,sha256=IxrNYM366N01bbkJEbZ_UPYxUP8wyVEbRNFHRsBuLsw,626
294
293
  sky/templates/kubernetes-port-forward-proxy-command.sh,sha256=iw7mypHszg6Ggq9MbyiYMFOkSlXaQZulaxqC5IWYGCc,3381
295
- sky/templates/kubernetes-ray.yml.j2,sha256=I_3ulhmBdAsHYn0fk24nGhaDYxLC6IZ0DzWU8X0SVnk,29234
294
+ sky/templates/kubernetes-ray.yml.j2,sha256=JHAIdZJwhCwR33aci1b2IbbHhwdGGf4U8xY8gE4ZaJ8,31780
296
295
  sky/templates/kubernetes-ssh-jump.yml.j2,sha256=k5W5sOIMppU7dDkJMwPlqsUcb92y7L5_TVG3hkgMy8M,2747
297
296
  sky/templates/lambda-ray.yml.j2,sha256=IWUFROlaVV9qsH4tYInn0xgyE1WAP_dHZBnGkNpmpYM,4713
298
297
  sky/templates/local-ray.yml.j2,sha256=FNHeyHF6nW9nU9QLIZceUWfvrFTTcO51KqhTnYCEFaA,1185
@@ -305,7 +304,7 @@ sky/templates/sky-serve-controller.yaml.j2,sha256=W4i1-OGRU2WDvauLC4EDXcYrNxj7mz
305
304
  sky/templates/skypilot-server-kubernetes-proxy.sh,sha256=n5swq5LauF9dnhDWMYqFFHkXeJ44Zjmg1RVbF60jNbE,1079
306
305
  sky/templates/vast-ray.yml.j2,sha256=KaZLBJfI6FzAVRVq0NNM0_SN0RQUrDIehnJJ_LnvwnY,2990
307
306
  sky/templates/vsphere-ray.yml.j2,sha256=NWU3kksvESEh5OxeWsoJ0r4jvskQyassfiBatj0qhBs,3852
308
- sky/templates/websocket_proxy.py,sha256=vm8mnwSOZC2pGdeCNn3WGX7u16xenDv08xTcUAR3CNc,2138
307
+ sky/templates/websocket_proxy.py,sha256=CWCXL8tskiRRQQWLKf5VETo9HY4angfEqeBusBn9npI,3483
309
308
  sky/usage/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
310
309
  sky/usage/constants.py,sha256=mFrTgrFIfFf4kpcl-M1VDU7_moD5_mJazUJTUDrybms,1102
311
310
  sky/usage/usage_lib.py,sha256=rInJW2kj2O1wwXUZAbeVVLhnoa7T_xBHqDhbBBrUqfI,21400
@@ -319,9 +318,9 @@ sky/utils/command_runner.py,sha256=aEBs4Km8b6PqDklNc63tVYMK0w3PBGQEEP21_wmhG1k,3
319
318
  sky/utils/command_runner.pyi,sha256=mJOzCgcYZAfHwnY_6Wf1YwlTEJGb9ihzc2f0rE0Kw98,7751
320
319
  sky/utils/common.py,sha256=P4oVXFATUYgkruHX92cN12SJBtfb8DiOOYZtbN1kvP0,1927
321
320
  sky/utils/common_utils.py,sha256=UM2eSQNdXRvAzlbfC839E7-7DXC9BMMUkquLsmYpu8w,31619
322
- sky/utils/config_utils.py,sha256=VQ2E3DQ2XysD-kul-diSrxn_pXWsDMfKAev91OiJQ1Q,9041
321
+ sky/utils/config_utils.py,sha256=7zEdqq1voSrlpDyZsBAhuTzdsOGzL4WpjWKkjEEd1Eg,9036
323
322
  sky/utils/control_master_utils.py,sha256=iD4M0onjYOdZ2RuxjwMBl4KhafHXJzuHjvqlBUnu-VE,1450
324
- sky/utils/controller_utils.py,sha256=mrmkerYyeu7gsCQ56cB3AjCz0r9WaN7teqXUItA47oQ,49805
323
+ sky/utils/controller_utils.py,sha256=6JpqPATZGvwN7P-qGn4jZ_6ka4mZVXYgZtTg49U3YD8,49808
325
324
  sky/utils/dag_utils.py,sha256=sAus0aL1wtuuFZSDnpO4LY-6WK4u5iJY952oWQzHo3Y,7532
326
325
  sky/utils/db_utils.py,sha256=K2-OHPg0FeHCarevMdWe0IWzm6wWumViEeYeJuGoFUE,3747
327
326
  sky/utils/env_options.py,sha256=aaD6GoYK0LaZIqjOEZ-R7eccQuiRriW3EuLWtOI5En8,1578
@@ -346,16 +345,16 @@ sky/utils/kubernetes/delete_cluster.sh,sha256=BSccHF43GyepDNf-FZcenzHzpXXATkVD92
346
345
  sky/utils/kubernetes/deploy_remote_cluster.sh,sha256=EQMBC0VUqe3UaiYvwkNq4P6U9bkiBwjTNTE0z-MsTBc,10785
347
346
  sky/utils/kubernetes/exec_kubeconfig_converter.py,sha256=fE1SnteoxI05EaugnWeV82hXwZTVHmbXsh1aaZAgF3c,2548
348
347
  sky/utils/kubernetes/generate_kind_config.py,sha256=_TNLnifA_r7-CRq083IP1xjelYqiLjzQX9ohuqYpDH8,3187
349
- sky/utils/kubernetes/generate_kubeconfig.sh,sha256=MBvXJio0PeujZSCXiRKE_pa6HCTiU9qBzR1WrXccVSY,10477
348
+ sky/utils/kubernetes/generate_kubeconfig.sh,sha256=4vcZ2kBikYbwoPF8JyxzGDsbdRirSSmRWSnXqVE_rZ0,10483
350
349
  sky/utils/kubernetes/gpu_labeler.py,sha256=MKsEiWitn-LOG3-OEdBZ-MXJd_L3ztdB9JrhD6D2T1w,6912
351
350
  sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7ZWF5gdVIZPupCCo9A,1224
352
351
  sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
353
352
  sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=HPVgNt-wbCVPd9dpDFiA7t2mzQLpjXHJ61eiwRbEr-c,10378
354
- sky/utils/kubernetes/rsync_helper.sh,sha256=h4YwrPFf9727CACnMJvF3EyK_0OeOYKKt4su_daKekw,1256
353
+ sky/utils/kubernetes/rsync_helper.sh,sha256=eaQOyvDq_RmcRHBqB9tH6LyDuYC310IVp97C5nqrTQg,1793
355
354
  sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
356
- skypilot_nightly-1.0.0.dev20250410.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
357
- skypilot_nightly-1.0.0.dev20250410.dist-info/METADATA,sha256=7M2HeKqRITJ01aleqriktoEexGJlHPqOQJos6aulrWY,18559
358
- skypilot_nightly-1.0.0.dev20250410.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
359
- skypilot_nightly-1.0.0.dev20250410.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
360
- skypilot_nightly-1.0.0.dev20250410.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
361
- skypilot_nightly-1.0.0.dev20250410.dist-info/RECORD,,
355
+ skypilot_nightly-1.0.0.dev20250412.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
356
+ skypilot_nightly-1.0.0.dev20250412.dist-info/METADATA,sha256=8V4fvxK8XU9oPoB9rsTFAvUqksbcnWwUO5RVJ5d4JsQ,18650
357
+ skypilot_nightly-1.0.0.dev20250412.dist-info/WHEEL,sha256=CmyFI0kx5cdEMTLiONQRbGQwjIoR1aIYB7eCAQ4KPJ0,91
358
+ skypilot_nightly-1.0.0.dev20250412.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
359
+ skypilot_nightly-1.0.0.dev20250412.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
360
+ skypilot_nightly-1.0.0.dev20250412.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- apiVersion: v1
2
- kind: ConfigMap
3
- metadata:
4
- name: smarter-device-manager
5
- labels:
6
- parent: skypilot
7
- data:
8
- conf.yaml: |
9
- - devicematch: ^fuse$
10
- nummaxdevices: 1000 # Max number of simultaneous pods that can use fuse