skypilot-nightly 1.0.0.dev20250421__py3-none-any.whl → 1.0.0.dev20250423__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/aws.py +2 -13
- sky/backends/wheel_utils.py +27 -1
- sky/cli.py +1 -5
- sky/client/cli.py +1 -5
- sky/clouds/aws.py +5 -5
- sky/clouds/service_catalog/data_fetchers/fetch_gcp.py +9 -9
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/clusters/[cluster]/[job].html +1 -1
- sky/dashboard/out/clusters/[cluster].html +1 -1
- sky/dashboard/out/clusters.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/data/mounting_utils.py +5 -2
- sky/provision/runpod/utils.py +32 -6
- sky/server/common.py +62 -2
- sky/server/constants.py +1 -1
- sky/server/requests/payloads.py +15 -0
- sky/server/server.py +5 -2
- sky/setup_files/setup.py +1 -0
- sky/skypilot_config.py +7 -6
- sky/utils/kubernetes/gpu_labeler.py +2 -1
- {skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/RECORD +31 -31
- /sky/dashboard/out/_next/static/{mS9YfLA5hhsJMeBj9W8J7 → 68UjuSjrx8JvfzxUuf1-w}/_buildManifest.js +0 -0
- /sky/dashboard/out/_next/static/{mS9YfLA5hhsJMeBj9W8J7 → 68UjuSjrx8JvfzxUuf1-w}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/top_level.txt +0 -0
sky/__init__.py
CHANGED
@@ -5,7 +5,7 @@ from typing import Optional
|
|
5
5
|
import urllib.request
|
6
6
|
|
7
7
|
# Replaced with the current commit when building the wheels.
|
8
|
-
_SKYPILOT_COMMIT_SHA = '
|
8
|
+
_SKYPILOT_COMMIT_SHA = '2f7f792534e7dccc3c12134123ea4f56db74eacd'
|
9
9
|
|
10
10
|
|
11
11
|
def _get_git_commit():
|
@@ -35,7 +35,7 @@ def _get_git_commit():
|
|
35
35
|
|
36
36
|
|
37
37
|
__commit__ = _get_git_commit()
|
38
|
-
__version__ = '1.0.0.
|
38
|
+
__version__ = '1.0.0.dev20250423'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
sky/adaptors/aws.py
CHANGED
@@ -28,7 +28,6 @@ This is informed by the following boto3 docs:
|
|
28
28
|
|
29
29
|
# pylint: disable=import-outside-toplevel
|
30
30
|
|
31
|
-
import functools
|
32
31
|
import logging
|
33
32
|
import threading
|
34
33
|
import time
|
@@ -60,23 +59,13 @@ class _ThreadLocalLRUCache(threading.local):
|
|
60
59
|
|
61
60
|
def __init__(self, maxsize=32):
|
62
61
|
super().__init__()
|
63
|
-
self.cache = annotations.lru_cache(scope='
|
62
|
+
self.cache = annotations.lru_cache(scope='request', maxsize=maxsize)
|
64
63
|
|
65
64
|
|
66
65
|
def _thread_local_lru_cache(maxsize=32):
|
67
66
|
# Create thread-local storage for the LRU cache
|
68
67
|
local_cache = _ThreadLocalLRUCache(maxsize)
|
69
|
-
|
70
|
-
def decorator(func):
|
71
|
-
|
72
|
-
@functools.wraps(func)
|
73
|
-
def wrapper(*args, **kwargs):
|
74
|
-
# Use the thread-local LRU cache
|
75
|
-
return local_cache.cache(func)(*args, **kwargs)
|
76
|
-
|
77
|
-
return wrapper
|
78
|
-
|
79
|
-
return decorator
|
68
|
+
return local_cache.cache
|
80
69
|
|
81
70
|
|
82
71
|
def _assert_kwargs_builtin_type(kwargs):
|
sky/backends/wheel_utils.py
CHANGED
@@ -19,12 +19,14 @@ import subprocess
|
|
19
19
|
import tempfile
|
20
20
|
from typing import Optional, Tuple
|
21
21
|
|
22
|
+
import colorama
|
22
23
|
import filelock
|
23
24
|
from packaging import version
|
24
25
|
|
25
26
|
import sky
|
26
27
|
from sky import sky_logging
|
27
28
|
from sky.backends import backend_utils
|
29
|
+
from sky.server import common
|
28
30
|
|
29
31
|
logger = sky_logging.init_logger(__name__)
|
30
32
|
|
@@ -60,6 +62,30 @@ def _get_latest_wheel() -> pathlib.Path:
|
|
60
62
|
|
61
63
|
def _build_sky_wheel() -> pathlib.Path:
|
62
64
|
"""Build a wheel for SkyPilot and return the path to the wheel."""
|
65
|
+
# Double check that the installed code is actually the same version as the
|
66
|
+
# running code. If not, the wheel we build will not match _WHEEL_PATTERN.
|
67
|
+
# See https://github.com/skypilot-org/skypilot/issues/5311.
|
68
|
+
version_on_disk = common.get_skypilot_version_on_disk()
|
69
|
+
if version_on_disk != sky.__version__:
|
70
|
+
logger.warning(
|
71
|
+
'Wheel build: The installed SkyPilot version is different from the '
|
72
|
+
'running code.\n'
|
73
|
+
f'{colorama.Style.DIM}'
|
74
|
+
f'running version: {sky.__version__}\n'
|
75
|
+
f'installed version: {version_on_disk}\n'
|
76
|
+
f'{colorama.Style.RESET_ALL}'
|
77
|
+
# The following message only applies to local API server. We have no
|
78
|
+
# way to tell from here if this is a remote or local API server. But
|
79
|
+
# we expect this to happen much more commonly to a local API server,
|
80
|
+
# so just print the hint regardless.
|
81
|
+
f'{colorama.Fore.YELLOW}'
|
82
|
+
'Please restart the local API server by running:\n'
|
83
|
+
f'{colorama.Style.BRIGHT}sky api stop; sky api start'
|
84
|
+
f'{colorama.Style.RESET_ALL}')
|
85
|
+
raise RuntimeError('The installed SkyPilot version is different from '
|
86
|
+
'the running code. Please restart the SkyPilot API '
|
87
|
+
'server with: sky api stop; sky api start')
|
88
|
+
|
63
89
|
with tempfile.TemporaryDirectory() as tmp_dir_str:
|
64
90
|
# prepare files
|
65
91
|
tmp_dir = pathlib.Path(tmp_dir_str)
|
@@ -126,7 +152,7 @@ def _build_sky_wheel() -> pathlib.Path:
|
|
126
152
|
raise RuntimeError(
|
127
153
|
f'Failed to find pip wheel for SkyPilot under {tmp_dir} with '
|
128
154
|
f'glob pattern {_WHEEL_PATTERN!r}. '
|
129
|
-
f'Found: {list(map(str, tmp_dir.glob("*")))}.'
|
155
|
+
f'Found: {list(map(str, tmp_dir.glob("*")))}. '
|
130
156
|
'No wheel file is generated.') from None
|
131
157
|
|
132
158
|
# Use a unique temporary dir per wheel hash, because there may be many
|
sky/cli.py
CHANGED
@@ -302,13 +302,9 @@ def config_option(expose_value: bool):
|
|
302
302
|
try:
|
303
303
|
if len(value) == 0:
|
304
304
|
return None
|
305
|
-
elif len(value) > 1:
|
306
|
-
raise ValueError('argument specified multiple times. '
|
307
|
-
'To specify multiple configs, use '
|
308
|
-
'--config nested.key1=val1,another.key2=val2')
|
309
305
|
else:
|
310
306
|
# Apply the config overrides to the skypilot config.
|
311
|
-
return skypilot_config.apply_cli_config(value
|
307
|
+
return skypilot_config.apply_cli_config(value)
|
312
308
|
except ValueError as e:
|
313
309
|
raise click.BadParameter(f'{str(e)}') from e
|
314
310
|
|
sky/client/cli.py
CHANGED
@@ -302,13 +302,9 @@ def config_option(expose_value: bool):
|
|
302
302
|
try:
|
303
303
|
if len(value) == 0:
|
304
304
|
return None
|
305
|
-
elif len(value) > 1:
|
306
|
-
raise ValueError('argument specified multiple times. '
|
307
|
-
'To specify multiple configs, use '
|
308
|
-
'--config nested.key1=val1,another.key2=val2')
|
309
305
|
else:
|
310
306
|
# Apply the config overrides to the skypilot config.
|
311
|
-
return skypilot_config.apply_cli_config(value
|
307
|
+
return skypilot_config.apply_cli_config(value)
|
312
308
|
except ValueError as e:
|
313
309
|
raise click.BadParameter(f'{str(e)}') from e
|
314
310
|
|
sky/clouds/aws.py
CHANGED
@@ -571,7 +571,7 @@ class AWS(clouds.Cloud):
|
|
571
571
|
return cls._check_credentials()
|
572
572
|
|
573
573
|
@classmethod
|
574
|
-
@annotations.lru_cache(scope='
|
574
|
+
@annotations.lru_cache(scope='request',
|
575
575
|
maxsize=1) # Cache since getting identity is slow.
|
576
576
|
def _check_credentials(cls) -> Tuple[bool, Optional[str]]:
|
577
577
|
"""Checks if the user has access credentials to AWS."""
|
@@ -710,7 +710,7 @@ class AWS(clouds.Cloud):
|
|
710
710
|
return AWSIdentityType.SHARED_CREDENTIALS_FILE
|
711
711
|
|
712
712
|
@classmethod
|
713
|
-
@annotations.lru_cache(scope='
|
713
|
+
@annotations.lru_cache(scope='request', maxsize=1)
|
714
714
|
def _aws_configure_list(cls) -> Optional[bytes]:
|
715
715
|
proc = subprocess.run('aws configure list',
|
716
716
|
shell=True,
|
@@ -722,7 +722,7 @@ class AWS(clouds.Cloud):
|
|
722
722
|
return proc.stdout
|
723
723
|
|
724
724
|
@classmethod
|
725
|
-
@annotations.lru_cache(scope='
|
725
|
+
@annotations.lru_cache(scope='request',
|
726
726
|
maxsize=1) # Cache since getting identity is slow.
|
727
727
|
def _sts_get_caller_identity(cls) -> Optional[List[List[str]]]:
|
728
728
|
try:
|
@@ -804,7 +804,7 @@ class AWS(clouds.Cloud):
|
|
804
804
|
return [user_ids]
|
805
805
|
|
806
806
|
@classmethod
|
807
|
-
@annotations.lru_cache(scope='
|
807
|
+
@annotations.lru_cache(scope='request',
|
808
808
|
maxsize=1) # Cache since getting identity is slow.
|
809
809
|
def get_user_identities(cls) -> Optional[List[List[str]]]:
|
810
810
|
"""Returns a [UserId, Account] list that uniquely identifies the user.
|
@@ -909,7 +909,7 @@ class AWS(clouds.Cloud):
|
|
909
909
|
if os.path.exists(os.path.expanduser(f'~/.aws/{filename}'))
|
910
910
|
}
|
911
911
|
|
912
|
-
@annotations.lru_cache(scope='
|
912
|
+
@annotations.lru_cache(scope='request', maxsize=1)
|
913
913
|
def can_credential_expire(self) -> bool:
|
914
914
|
identity_type = self._current_identity_type()
|
915
915
|
return (identity_type is not None and
|
@@ -60,8 +60,9 @@ HIDDEN_TPU_DF = pd.read_csv(
|
|
60
60
|
,tpu-v3-2048,1,,,tpu-v3-2048,2048.0,614.4,us-east1,us-east1-d
|
61
61
|
""")))
|
62
62
|
|
63
|
-
#
|
64
|
-
|
63
|
+
# Maximum price for TPU V6e is $691.2/hour. Here we set a higher price
|
64
|
+
# so the failover will go to the region with precise pricing info first.
|
65
|
+
TPU_V6E_MAX_PRICE = 700
|
65
66
|
|
66
67
|
# TPU V5 is not visible in specific zones. We hardcode the missing zones here.
|
67
68
|
# NOTE(dev): Keep the zones and the df in sync.
|
@@ -699,13 +700,12 @@ def get_tpu_df(gce_skus: List[Dict[str, Any]],
|
|
699
700
|
spot_str = 'spot ' if spot else ''
|
700
701
|
print(f'The {spot_str}price of {tpu_name} in {tpu_region} is '
|
701
702
|
'not found in SKUs or hidden TPU price DF.')
|
702
|
-
|
703
|
-
|
704
|
-
|
705
|
-
|
706
|
-
|
707
|
-
|
708
|
-
HIDDEN_TPU_DF)
|
703
|
+
# GCP's TPU V6e pricing info is not stable and there are some
|
704
|
+
# regions that are missing the pricing info. We set the price to
|
705
|
+
# the maximum price so the failover will go to the region with
|
706
|
+
# precise pricing info first.
|
707
|
+
if tpu_name.startswith('tpu-v6e'):
|
708
|
+
tpu_price = TPU_V6E_MAX_PRICE
|
709
709
|
return tpu_price
|
710
710
|
|
711
711
|
df['Price'] = df.apply(lambda row: get_tpu_price(row, spot=False), axis=1)
|
sky/dashboard/out/404.html
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><title>404: This page could not be found</title><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-1be831200e60c5c0.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div style="font-family:system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji";height:100vh;text-align:center;display:flex;flex-direction:column;align-items:center;justify-content:center"><div style="line-height:48px"><style>body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}</style><h1 class="next-error-h1" style="display:inline-block;margin:0 20px 0 0;padding-right:23px;font-size:24px;font-weight:500;vertical-align:top">404</h1><div style="display:inline-block"><h2 style="font-size:14px;font-weight:400;line-height:28px">This page could not be found<!-- -->.</h2></div></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-b09f7fbf6d5d74f6.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-b09f7fbf6d5d74f6.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-b57ec043f09c5813.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-b57ec043f09c5813.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/clusters.html
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="GitHub"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Slack"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path transform="scale(0.85) translate(1.8, 1.8)" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&labels=type%3A+enhancement&title=" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Leave Feedback"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue leading-none" href="/dashboard/clusters">Sky Clusters</a></div><div class="flex items-center"><button class="justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent h-10 px-4 py-2 text-sky-blue hover:text-sky-blue-bright flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Started</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Actions</th></tr></thead><tbody class="[&_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&:has([role=checkbox])]:pr-0 text-center py-6 text-gray-500" colSpan="8">No active clusters</td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/37-72fdc8f71d6e4784.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-a93b93e10b8b074e.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="GitHub"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Slack"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path transform="scale(0.85) translate(1.8, 1.8)" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&labels=type%3A+enhancement&title=" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Leave Feedback"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue leading-none" href="/dashboard/clusters">Sky Clusters</a></div><div class="flex items-center"><button class="justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent h-10 px-4 py-2 text-sky-blue hover:text-sky-blue-bright flex items-center"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Started</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Actions</th></tr></thead><tbody class="[&_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&:has([role=checkbox])]:pr-0 text-center py-6 text-gray-500" colSpan="8">No active clusters</td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/index.html
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-f9f039532ca8cbc4.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-f9f039532ca8cbc4.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-ef2e0e91a9222cac.js" defer=""></script><script src="/dashboard/_next/static/
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-ef2e0e91a9222cac.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div>Loading...</div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/jobs.html
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/mS9YfLA5hhsJMeBj9W8J7/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="GitHub"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Slack"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path transform="scale(0.85) translate(1.8, 1.8)" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&labels=type%3A+enhancement&title=" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Leave Feedback"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue hover:underline leading-none" href="/dashboard/jobs">Managed Jobs</a></div><div class="flex items-center space-x-2"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent h-9 rounded-md px-3 text-sky-blue hover:text-sky-blue-bright" title="Refresh"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div class="relative"><div class="flex flex-col space-y-1 mb-1"><div class="flex flex-wrap items-center text-sm mb-1"><span class="mr-2 text-sm font-medium">Statuses:</span><div class="flex flex-wrap gap-2 items-center"></div></div></div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">ID</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Name</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Submitted</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Duration</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Recoveries</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Details</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Logs</th></tr></thead><tbody class="[&_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&:has([role=checkbox])]:pr-0 text-center py-6" colSpan="12"><div class="flex flex-col items-center space-y-4"><p class="text-gray-500">No active jobs</p></div></td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"mS9YfLA5hhsJMeBj9W8J7","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
1
|
+
<!DOCTYPE html><html><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><link rel="preload" href="/dashboard/skypilot.svg" as="image" fetchpriority="high"/><meta name="next-head-count" content="3"/><link rel="preload" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/f3538cd90cfca88c.css" data-n-g=""/><noscript data-n-css=""></noscript><script defer="" nomodule="" src="/dashboard/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js"></script><script src="/dashboard/_next/static/chunks/webpack-830f59b8404e96b8.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-87d061ee6ed71b28.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-e0e2335212e72357.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-3001e84c61acddfb.js" defer=""></script><script src="/dashboard/_next/static/chunks/678-206dddca808e6d16.js" defer=""></script><script src="/dashboard/_next/static/chunks/312-c3c8845990db8ffc.js" defer=""></script><script src="/dashboard/_next/static/chunks/979-7cd0778078b9cfad.js" defer=""></script><script src="/dashboard/_next/static/chunks/845-2ea1cc63ba1f4067.js" defer=""></script><script src="/dashboard/_next/static/chunks/236-d437cf66e68a6f64.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-a75029b67aab6a2e.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js" defer=""></script></head><body><div id="__next"><div class="min-h-screen bg-gray-50"><div class="fixed top-0 left-0 right-0 z-50 shadow-sm"><div class="fixed top-0 left-0 right-0 bg-white z-30 h-14 px-4 border-b border-gray-200 shadow-sm"><div class="flex items-center h-full"><div class="flex items-center space-x-4 mr-6"><a class="flex items-center px-1 pt-1 h-full" href="/dashboard"><img alt="SkyPilot Logo" fetchpriority="high" width="80" height="80" decoding="async" data-nimg="1" class="h-12 w-12" style="color:transparent;width:80px;height:80px" src="/dashboard/skypilot.svg"/></a></div><div class="hidden md:flex items-center space-x-6 mr-6"><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent hover:text-blue-600 hover:border-blue-600" href="/dashboard/clusters"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><rect width="20" height="8" x="2" y="2" rx="2" ry="2"></rect><rect width="20" height="8" x="2" y="14" rx="2" ry="2"></rect><line x1="6" x2="6.01" y1="6" y2="6"></line><line x1="6" x2="6.01" y1="18" y2="18"></line></svg><span>Clusters</span></a><a class="inline-flex items-center space-x-2 px-1 pt-1 border-b-2 border-transparent text-blue-600" href="/dashboard/jobs"><svg class="w-4 h-4" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M16 20V4a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path><rect width="20" height="14" x="2" y="6" rx="2"></rect></svg><span>Jobs</span></a><div class="inline-flex items-center space-x-2 px-1 pt-1 text-gray-400"><svg class="w-4 h-4" viewBox="0 0 423.683 423.683" width="24" height="24" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" fill="currentColor" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><g id="SVGRepo_bgCarrier" stroke-width="0"></g><g id="SVGRepo_tracerCarrier" stroke-linecap="round" stroke-linejoin="round"></g><g id="SVGRepo_iconCarrier"><g><path d="M54.376,287.577h310.459c26.48,0,48.02-13.979,48.02-40.453c0-17.916-10.001-34.07-25.559-42.292 c-19.021-72.951-86.061-125.196-162.002-125.223v-3.431h-3.854V61.814h3.854v-9.569h-31.38v9.569h3.854v14.363h-3.854v3.431 c-75.941,0.026-142.97,52.272-161.988,125.217c-15.56,8.216-25.573,24.376-25.573,42.291 C6.36,273.597,27.896,287.577,54.376,287.577z M47.676,227.145l7.214-2.424l1.617-7.447 c13.884-64.232,71.707-110.862,137.467-110.862h31.274c65.763,0,123.582,46.63,137.473,110.862l1.607,7.447l7.223,2.424 c8.678,2.92,14.506,10.946,14.506,19.979c0,11.703-9.517,13.647-21.221,13.647H54.376c-11.7,0-21.22-1.944-21.22-13.647 C33.162,238.091,38.984,230.065,47.676,227.145z M423.683,334.602v36.836H0v-36.836h25.348v-18.418h372.99v18.418H423.683z"></path></g></g></svg><span>Services</span><span class="text-xs ml-2 px-1.5 py-0.5 bg-gray-100 text-gray-500 rounded">Soon</span></div></div><div class="hidden md:flex items-center space-x-2 ml-auto"><div class="flex items-center space-x-1"><a href="https://skypilot.readthedocs.io/en/latest/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center px-3 py-1 text-gray-600 hover:text-blue-600 transition-colors duration-150 cursor-pointer" title="Docs"><span class="mr-1">Docs</span><svg class="w-3.5 h-3.5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"></path><polyline points="15 3 21 3 21 9"></polyline><line x1="10" y1="14" x2="21" y2="3"></line></svg></a><div class="border-l border-gray-200 h-6 mx-1"></div><a href="https://github.com/skypilot-org/skypilot" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="GitHub"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"></path></svg></span></a><a href="https://slack.skypilot.co/" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Slack"><span class="flex items-center justify-center"><svg class="w-5 h-5" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="currentColor"><path transform="scale(0.85) translate(1.8, 1.8)" d="M5.042 15.165a2.528 2.528 0 0 1-2.52 2.523A2.528 2.528 0 0 1 0 15.165a2.527 2.527 0 0 1 2.522-2.52h2.52v2.52zM6.313 15.165a2.527 2.527 0 0 1 2.521-2.52 2.527 2.527 0 0 1 2.521 2.52v6.313A2.528 2.528 0 0 1 8.834 24a2.528 2.528 0 0 1-2.521-2.522v-6.313zM8.834 5.042a2.528 2.528 0 0 1-2.521-2.52A2.528 2.528 0 0 1 8.834 0a2.528 2.528 0 0 1 2.521 2.522v2.52H8.834zM8.834 6.313a2.528 2.528 0 0 1 2.521 2.521 2.528 2.528 0 0 1-2.521 2.521H2.522A2.528 2.528 0 0 1 0 8.834a2.528 2.528 0 0 1 2.522-2.521h6.312zM18.956 8.834a2.528 2.528 0 0 1 2.522-2.521A2.528 2.528 0 0 1 24 8.834a2.528 2.528 0 0 1-2.522 2.521h-2.522V8.834zM17.688 8.834a2.528 2.528 0 0 1-2.523 2.521 2.527 2.527 0 0 1-2.52-2.521V2.522A2.527 2.527 0 0 1 15.165 0a2.528 2.528 0 0 1 2.523 2.522v6.312zM15.165 18.956a2.528 2.528 0 0 1 2.523 2.522A2.528 2.528 0 0 1 15.165 24a2.527 2.527 0 0 1-2.52-2.522v-2.522h2.52zM15.165 17.688a2.527 2.527 0 0 1-2.52-2.523 2.526 2.526 0 0 1 2.52-2.52h6.313A2.527 2.527 0 0 1 24 15.165a2.528 2.528 0 0 1-2.522 2.523h-6.313z"></path></svg></span></a><a href="https://github.com/skypilot-org/skypilot/issues/new?assignees=&labels=type%3A+enhancement&title=" target="_blank" rel="noopener noreferrer" class="inline-flex items-center justify-center p-2 rounded-full text-gray-600 hover:bg-gray-100 transition-colors duration-150 cursor-pointer" title="Leave Feedback"><span class="flex items-center justify-center"><svg class="w-5 h-5" stroke="currentColor" fill="currentColor" stroke-width="0" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg"><g><path fill="none" d="M0 0h24v24H0z"></path><path d="M6.455 19L2 22.5V4a1 1 0 0 1 1-1h18a1 1 0 0 1 1 1v14a1 1 0 0 1-1 1H6.455zM4 18.385L5.763 17H20V5H4v13.385zM11 13h2v2h-2v-2zm0-6h2v5h-2V7z"></path></g></svg></span></a></div></div></div></div></div><div class="transition-all duration-200 ease-in-out min-h-screen" style="padding-top:56px"><main class="p-6"><div class="flex items-center justify-between mb-4 h-5"><div class="text-base"><a class="text-sky-blue hover:underline leading-none" href="/dashboard/jobs">Managed Jobs</a></div><div class="flex items-center space-x-2"><button class="inline-flex items-center justify-center whitespace-nowrap text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:bg-accent h-9 rounded-md px-3 text-sky-blue hover:text-sky-blue-bright" title="Refresh"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-rotate-cw h-4 w-4 mr-1.5"><path d="M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8"></path><path d="M21 3v5h-5"></path></svg><span>Refresh</span></button></div></div><div class="relative"><div class="flex flex-col space-y-1 mb-1"><div class="flex flex-wrap items-center text-sm mb-1"><span class="mr-2 text-sm font-medium">Statuses:</span><div class="flex flex-wrap gap-2 items-center"></div></div></div><div class="rounded-lg border bg-card text-card-foreground shadow-sm"><div class="relative w-full overflow-auto"><table class="w-full caption-bottom text-base"><thead class="[&_tr]:border-b"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">ID</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Name</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">User</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Submitted</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Duration</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Status</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Resources</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Cluster</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Region</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0 sortable whitespace-nowrap">Recoveries</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Details</th><th class="h-12 px-4 text-left align-middle font-medium text-[hsl(var(--text-strong))] [&:has([role=checkbox])]:pr-0">Logs</th></tr></thead><tbody class="[&_tr:last-child]:border-0"><tr class="border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted"><td class="p-4 align-middle [&:has([role=checkbox])]:pr-0 text-center py-6" colSpan="12"><div class="flex flex-col items-center space-y-4"><p class="text-gray-500">No active jobs</p></div></td></tr></tbody></table></div></div></div></main></div></div></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"68UjuSjrx8JvfzxUuf1-w","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/data/mounting_utils.py
CHANGED
@@ -205,8 +205,11 @@ def get_az_mount_cmd(container_name: str,
|
|
205
205
|
# blobfuse2 only get the mounted fd.
|
206
206
|
# 2. {} is the mount point placeholder that will be replaced with the
|
207
207
|
# mounted fd by fusermount-wrapper.
|
208
|
-
|
209
|
-
|
208
|
+
# 3. set --foreground to workaround lock confliction of multiple blobfuse2
|
209
|
+
# daemon processes (#5307) and use -d to daemonsize blobfuse2 in
|
210
|
+
# fusermount-wrapper.
|
211
|
+
wrapped = (f'fusermount-wrapper -d -m {mount_path} {mount_options} '
|
212
|
+
f'-- {blobfuse2_cmd} -o nonempty --foreground {{}}')
|
210
213
|
original = f'{blobfuse2_cmd} {mount_options} {mount_path}'
|
211
214
|
# If fusermount-wrapper is available, use it to wrap the blobfuse2 command
|
212
215
|
# to avoid requiring root privilege.
|
sky/provision/runpod/utils.py
CHANGED
@@ -14,11 +14,19 @@ from sky.utils import common_utils
|
|
14
14
|
logger = sky_logging.init_logger(__name__)
|
15
15
|
|
16
16
|
GPU_NAME_MAP = {
|
17
|
+
# AMD
|
18
|
+
'MI300X': 'AMD Instinct MI300X OAM',
|
19
|
+
|
20
|
+
# NVIDIA A-series
|
17
21
|
'A100-80GB': 'NVIDIA A100 80GB PCIe',
|
18
|
-
'A100-40GB': 'NVIDIA A100-PCIE-40GB',
|
19
22
|
'A100-80GB-SXM': 'NVIDIA A100-SXM4-80GB',
|
20
23
|
'A30': 'NVIDIA A30',
|
21
24
|
'A40': 'NVIDIA A40',
|
25
|
+
|
26
|
+
# NVIDIA B-series
|
27
|
+
'B200': 'NVIDIA B200',
|
28
|
+
|
29
|
+
# GeForce
|
22
30
|
'RTX3070': 'NVIDIA GeForce RTX 3070',
|
23
31
|
'RTX3080': 'NVIDIA GeForce RTX 3080',
|
24
32
|
'RTX3080Ti': 'NVIDIA GeForce RTX 3080 Ti',
|
@@ -26,25 +34,43 @@ GPU_NAME_MAP = {
|
|
26
34
|
'RTX3090Ti': 'NVIDIA GeForce RTX 3090 Ti',
|
27
35
|
'RTX4070Ti': 'NVIDIA GeForce RTX 4070 Ti',
|
28
36
|
'RTX4080': 'NVIDIA GeForce RTX 4080',
|
37
|
+
'RTX4080SUPER': 'NVIDIA GeForce RTX 4080 SUPER',
|
29
38
|
'RTX4090': 'NVIDIA GeForce RTX 4090',
|
39
|
+
'RTX5080': 'NVIDIA GeForce RTX 5080',
|
40
|
+
'RTX5090': 'NVIDIA GeForce RTX 5090',
|
41
|
+
|
42
|
+
# NVIDIA H100/H200
|
30
43
|
# Following instance is displayed as SXM at the console
|
31
44
|
# but the ID from the API appears as HBM
|
32
45
|
'H100-SXM': 'NVIDIA H100 80GB HBM3',
|
46
|
+
'H100-NVL': 'NVIDIA H100 NVL',
|
33
47
|
'H100': 'NVIDIA H100 PCIe',
|
48
|
+
'H200-SXM': 'NVIDIA H200',
|
49
|
+
|
50
|
+
# NVIDIA L-series
|
34
51
|
'L4': 'NVIDIA L4',
|
35
52
|
'L40': 'NVIDIA L40',
|
36
|
-
'
|
53
|
+
'L40S': 'NVIDIA L40S',
|
54
|
+
|
55
|
+
# Ada generation (GeForce & RTX A)
|
56
|
+
'RTX2000-Ada': 'NVIDIA RTX 2000 Ada Generation',
|
37
57
|
'RTX4000-Ada': 'NVIDIA RTX 4000 Ada Generation',
|
58
|
+
'RTX4000-Ada-SFF': 'NVIDIA RTX 4000 SFF Ada Generation',
|
59
|
+
'RTX5000-Ada': 'NVIDIA RTX 5000 Ada Generation',
|
38
60
|
'RTX6000-Ada': 'NVIDIA RTX 6000 Ada Generation',
|
61
|
+
|
62
|
+
# NVIDIA RTX A-series
|
63
|
+
'RTXA2000': 'NVIDIA RTX A2000',
|
39
64
|
'RTXA4000': 'NVIDIA RTX A4000',
|
40
65
|
'RTXA4500': 'NVIDIA RTX A4500',
|
41
66
|
'RTXA5000': 'NVIDIA RTX A5000',
|
42
67
|
'RTXA6000': 'NVIDIA RTX A6000',
|
43
|
-
|
68
|
+
|
69
|
+
# Tesla V100 variants
|
44
70
|
'V100-16GB-FHHL': 'Tesla V100-FHHL-16GB',
|
45
|
-
'V100-16GB-SXM2': 'V100-SXM2-16GB',
|
46
|
-
'
|
47
|
-
'V100-16GB-PCIe': 'Tesla V100-PCIE-16GB'
|
71
|
+
'V100-16GB-SXM2': 'Tesla V100-SXM2-16GB',
|
72
|
+
'V100-32GB-SXM2': 'Tesla V100-SXM2-32GB',
|
73
|
+
'V100-16GB-PCIe': 'Tesla V100-PCIE-16GB',
|
48
74
|
}
|
49
75
|
|
50
76
|
|
sky/server/common.py
CHANGED
@@ -7,6 +7,7 @@ from http.cookiejar import MozillaCookieJar
|
|
7
7
|
import json
|
8
8
|
import os
|
9
9
|
import pathlib
|
10
|
+
import re
|
10
11
|
import subprocess
|
11
12
|
import sys
|
12
13
|
import time
|
@@ -64,11 +65,14 @@ _VERSION_INFO = (
|
|
64
65
|
'client version: v{client_version} (API version: v{client_api_version})\n'
|
65
66
|
'server version: v{server_version} (API version: v{server_api_version})'
|
66
67
|
f'{colorama.Style.RESET_ALL}')
|
68
|
+
_LOCAL_API_SERVER_RESTART_HINT = (
|
69
|
+
f'{colorama.Fore.YELLOW}Please restart the SkyPilot API server with:\n'
|
70
|
+
f'{colorama.Style.BRIGHT}sky api stop; sky api start'
|
71
|
+
f'{colorama.Style.RESET_ALL}')
|
67
72
|
_LOCAL_SERVER_VERSION_MISMATCH_WARNING = (
|
68
73
|
f'{colorama.Fore.YELLOW}Client and local API server version mismatch:\n'
|
69
74
|
'{version_info}\n'
|
70
|
-
f'{
|
71
|
-
'sky api stop; sky api start'
|
75
|
+
f'{_LOCAL_API_SERVER_RESTART_HINT}'
|
72
76
|
f'{colorama.Style.RESET_ALL}')
|
73
77
|
_CLIENT_TOO_OLD_WARNING = (
|
74
78
|
f'{colorama.Fore.YELLOW}Your SkyPilot client is too old:\n'
|
@@ -83,6 +87,17 @@ _REMOTE_SERVER_TOO_OLD_WARNING = (
|
|
83
87
|
'remote API server or downgrade your local client with:\n'
|
84
88
|
'{command}\n'
|
85
89
|
f'{colorama.Style.RESET_ALL}')
|
90
|
+
_SERVER_INSTALL_VERSION_MISMATCH_WARNING = (
|
91
|
+
f'{colorama.Fore.YELLOW}SkyPilot API server version does not match the '
|
92
|
+
'installation on disk:\n'
|
93
|
+
f'{colorama.Style.RESET_ALL}'
|
94
|
+
f'{colorama.Style.DIM}'
|
95
|
+
'running API server version: {server_version}\n'
|
96
|
+
'installed API server version: {version_on_disk}\n'
|
97
|
+
f'{colorama.Style.RESET_ALL}'
|
98
|
+
f'{colorama.Fore.YELLOW}This can happen if you upgraded SkyPilot without '
|
99
|
+
'restarting the API server.'
|
100
|
+
f'{colorama.Style.RESET_ALL}')
|
86
101
|
# Parse local API version eargly to catch version format errors.
|
87
102
|
_LOCAL_API_VERSION: int = int(server_constants.API_VERSION)
|
88
103
|
# SkyPilot dev version.
|
@@ -93,6 +108,8 @@ ApiVersion = Optional[str]
|
|
93
108
|
|
94
109
|
logger = sky_logging.init_logger(__name__)
|
95
110
|
|
111
|
+
hinted_for_server_install_version_mismatch = False
|
112
|
+
|
96
113
|
|
97
114
|
class ApiServerStatus(enum.Enum):
|
98
115
|
HEALTHY = 'healthy'
|
@@ -105,6 +122,7 @@ class ApiServerInfo:
|
|
105
122
|
status: ApiServerStatus
|
106
123
|
api_version: ApiVersion = None
|
107
124
|
version: Optional[str] = None
|
125
|
+
version_on_disk: Optional[str] = None
|
108
126
|
commit: Optional[str] = None
|
109
127
|
|
110
128
|
|
@@ -165,10 +183,12 @@ def get_api_server_status(endpoint: Optional[str] = None) -> ApiServerInfo:
|
|
165
183
|
result = response.json()
|
166
184
|
api_version = result.get('api_version')
|
167
185
|
version = result.get('version')
|
186
|
+
version_on_disk = result.get('version_on_disk')
|
168
187
|
commit = result.get('commit')
|
169
188
|
server_info = ApiServerInfo(status=ApiServerStatus.HEALTHY,
|
170
189
|
api_version=api_version,
|
171
190
|
version=version,
|
191
|
+
version_on_disk=version_on_disk,
|
172
192
|
commit=commit)
|
173
193
|
if api_version is None or version is None or commit is None:
|
174
194
|
logger.warning(f'API server response missing '
|
@@ -362,9 +382,34 @@ def check_server_healthy(endpoint: Optional[str] = None,) -> None:
|
|
362
382
|
with ux_utils.print_exception_no_traceback():
|
363
383
|
raise exceptions.ApiServerConnectionError(endpoint)
|
364
384
|
|
385
|
+
# If the user ran pip upgrade, but the server wasn't restarted, warn them.
|
386
|
+
# We check this using the info from /api/health, rather than in the
|
387
|
+
# executor, because the executor could be started after the main server
|
388
|
+
# process, picking up the new code, even though the main server process is
|
389
|
+
# still running the old code.
|
390
|
+
# Note that this code is running on the client side, so calling
|
391
|
+
# get_skypilot_version_on_disk() from here is not correct.
|
392
|
+
|
393
|
+
# Only show this hint once per process.
|
394
|
+
global hinted_for_server_install_version_mismatch
|
395
|
+
|
396
|
+
if (api_server_info.version_on_disk is not None and
|
397
|
+
api_server_info.version != api_server_info.version_on_disk and
|
398
|
+
not hinted_for_server_install_version_mismatch):
|
399
|
+
|
400
|
+
logger.warning(
|
401
|
+
_SERVER_INSTALL_VERSION_MISMATCH_WARNING.format(
|
402
|
+
server_version=api_server_info.version,
|
403
|
+
version_on_disk=api_server_info.version_on_disk))
|
404
|
+
if is_api_server_local():
|
405
|
+
logger.warning(_LOCAL_API_SERVER_RESTART_HINT)
|
406
|
+
|
407
|
+
hinted_for_server_install_version_mismatch = True
|
408
|
+
|
365
409
|
|
366
410
|
def _get_version_info_hint(server_info: ApiServerInfo) -> str:
|
367
411
|
assert server_info.version is not None, 'Server version is None'
|
412
|
+
# version_on_disk may be None if the server is older
|
368
413
|
assert server_info.commit is not None, 'Server commit is None'
|
369
414
|
sv = server_info.version
|
370
415
|
cv = sky.__version__
|
@@ -393,6 +438,21 @@ def _install_server_version_command(server_info: ApiServerInfo) -> str:
|
|
393
438
|
return f'pip install -U "skypilot=={server_info.version}"'
|
394
439
|
|
395
440
|
|
441
|
+
# Keep in sync with sky/setup_files/setup.py find_version()
|
442
|
+
def get_skypilot_version_on_disk() -> str:
|
443
|
+
"""Get the version of the SkyPilot code on disk."""
|
444
|
+
current_file_path = pathlib.Path(__file__)
|
445
|
+
assert str(current_file_path).endswith(
|
446
|
+
'server/common.py'), current_file_path
|
447
|
+
sky_root = current_file_path.parent.parent
|
448
|
+
with open(sky_root / '__init__.py', 'r', encoding='utf-8') as fp:
|
449
|
+
version_match = re.search(r'^__version__ = [\'"]([^\'"]*)[\'"]',
|
450
|
+
fp.read(), re.M)
|
451
|
+
if version_match:
|
452
|
+
return version_match.group(1)
|
453
|
+
raise RuntimeError('Unable to find version string.')
|
454
|
+
|
455
|
+
|
396
456
|
def check_server_healthy_or_start_fn(deploy: bool = False,
|
397
457
|
host: str = '127.0.0.1',
|
398
458
|
foreground: bool = False):
|
sky/server/constants.py
CHANGED
@@ -7,7 +7,7 @@ from sky.skylet import constants
|
|
7
7
|
# API server version, whenever there is a change in API server that requires a
|
8
8
|
# restart of the local API server or error out when the client does not match
|
9
9
|
# the server version.
|
10
|
-
API_VERSION = '
|
10
|
+
API_VERSION = '5'
|
11
11
|
|
12
12
|
# Prefix for API request names.
|
13
13
|
REQUEST_NAME_PREFIX = 'sky.'
|
sky/server/requests/payloads.py
CHANGED
@@ -31,6 +31,19 @@ else:
|
|
31
31
|
|
32
32
|
logger = sky_logging.init_logger(__name__)
|
33
33
|
|
34
|
+
# These non-skypilot environment variables will be updated from the local
|
35
|
+
# environment on each request when running a local API server.
|
36
|
+
# We should avoid adding variables here, but we should include credential-
|
37
|
+
# related variables.
|
38
|
+
EXTERNAL_LOCAL_ENV_VARS = [
|
39
|
+
# Allow overriding the AWS authentication.
|
40
|
+
'AWS_PROFILE',
|
41
|
+
'AWS_ACCESS_KEY_ID',
|
42
|
+
'AWS_SECRET_ACCESS_KEY',
|
43
|
+
# Allow overriding the GCP authentication.
|
44
|
+
'GOOGLE_APPLICATION_CREDENTIALS',
|
45
|
+
]
|
46
|
+
|
34
47
|
|
35
48
|
@annotations.lru_cache(scope='global')
|
36
49
|
def request_body_env_vars() -> dict:
|
@@ -38,6 +51,8 @@ def request_body_env_vars() -> dict:
|
|
38
51
|
for env_var in os.environ:
|
39
52
|
if env_var.startswith(constants.SKYPILOT_ENV_VAR_PREFIX):
|
40
53
|
env_vars[env_var] = os.environ[env_var]
|
54
|
+
if common.is_api_server_local() and env_var in EXTERNAL_LOCAL_ENV_VARS:
|
55
|
+
env_vars[env_var] = os.environ[env_var]
|
41
56
|
env_vars[constants.USER_ID_ENV_VAR] = common_utils.get_user_hash()
|
42
57
|
env_vars[constants.USER_ENV_VAR] = os.getenv(constants.USER_ENV_VAR,
|
43
58
|
getpass.getuser())
|
sky/server/server.py
CHANGED
@@ -1015,14 +1015,17 @@ async def health() -> Dict[str, str]:
|
|
1015
1015
|
A dictionary with the following keys:
|
1016
1016
|
- status: str; The status of the API server.
|
1017
1017
|
- api_version: str; The API version of the API server.
|
1018
|
-
- commit: str; The commit hash of SkyPilot used for API server.
|
1019
1018
|
- version: str; The version of SkyPilot used for API server.
|
1019
|
+
- version_on_disk: str; The version of the SkyPilot installation on
|
1020
|
+
disk, which can be used to warn about restarting the API server
|
1021
|
+
- commit: str; The commit hash of SkyPilot used for API server.
|
1020
1022
|
"""
|
1021
1023
|
return {
|
1022
1024
|
'status': common.ApiServerStatus.HEALTHY.value,
|
1023
1025
|
'api_version': server_constants.API_VERSION,
|
1024
|
-
'commit': sky.__commit__,
|
1025
1026
|
'version': sky.__version__,
|
1027
|
+
'version_on_disk': common.get_skypilot_version_on_disk(),
|
1028
|
+
'commit': sky.__commit__,
|
1026
1029
|
}
|
1027
1030
|
|
1028
1031
|
|
sky/setup_files/setup.py
CHANGED
sky/skypilot_config.py
CHANGED
@@ -464,7 +464,7 @@ def override_skypilot_config(
|
|
464
464
|
_config_overridden = False
|
465
465
|
|
466
466
|
|
467
|
-
def _compose_cli_config(cli_config: Optional[str]
|
467
|
+
def _compose_cli_config(cli_config: Optional[List[str]]) -> config_utils.Config:
|
468
468
|
"""Composes the skypilot CLI config.
|
469
469
|
CLI config can either be:
|
470
470
|
- A path to a config file
|
@@ -475,18 +475,19 @@ def _compose_cli_config(cli_config: Optional[str],) -> config_utils.Config:
|
|
475
475
|
return config_utils.Config()
|
476
476
|
|
477
477
|
config_source = 'CLI'
|
478
|
-
maybe_config_path = os.path.expanduser(cli_config)
|
479
478
|
try:
|
479
|
+
maybe_config_path = os.path.expanduser(cli_config[0])
|
480
480
|
if os.path.isfile(maybe_config_path):
|
481
|
+
if len(cli_config) != 1:
|
482
|
+
raise ValueError(
|
483
|
+
'Cannot use multiple --config flags with a config file.')
|
481
484
|
config_source = maybe_config_path
|
482
485
|
# cli_config is a path to a config file
|
483
486
|
parsed_config = OmegaConf.to_object(
|
484
487
|
OmegaConf.load(maybe_config_path))
|
485
488
|
else: # cli_config is a comma-separated list of key-value pairs
|
486
|
-
variables: List[str] = []
|
487
|
-
variables = cli_config.split(',')
|
488
489
|
parsed_config = OmegaConf.to_object(
|
489
|
-
OmegaConf.from_dotlist(
|
490
|
+
OmegaConf.from_dotlist(cli_config))
|
490
491
|
_validate_config(parsed_config, config_source)
|
491
492
|
except ValueError as e:
|
492
493
|
raise ValueError(f'Invalid config override: {cli_config}. '
|
@@ -497,7 +498,7 @@ def _compose_cli_config(cli_config: Optional[str],) -> config_utils.Config:
|
|
497
498
|
return parsed_config
|
498
499
|
|
499
500
|
|
500
|
-
def apply_cli_config(cli_config: Optional[str]) -> Dict[str, Any]:
|
501
|
+
def apply_cli_config(cli_config: Optional[List[str]]) -> Dict[str, Any]:
|
501
502
|
"""Applies the CLI provided config.
|
502
503
|
SAFETY:
|
503
504
|
This function directly modifies the global _dict variable.
|
@@ -56,7 +56,8 @@ def label(context: Optional[str] = None, wait_for_completion: bool = True):
|
|
56
56
|
print(reason)
|
57
57
|
return
|
58
58
|
|
59
|
-
unlabeled_gpu_nodes = kubernetes_utils.get_unlabeled_accelerator_nodes(
|
59
|
+
unlabeled_gpu_nodes = kubernetes_utils.get_unlabeled_accelerator_nodes(
|
60
|
+
context=context)
|
60
61
|
|
61
62
|
if not unlabeled_gpu_nodes:
|
62
63
|
print('No unlabeled GPU nodes found in the cluster. If you have '
|
{skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/RECORD
RENAMED
@@ -1,8 +1,8 @@
|
|
1
|
-
sky/__init__.py,sha256
|
1
|
+
sky/__init__.py,sha256=-KbF4PoXC1rxS6_Km-ti2aiL89uWU7E-q7FPiVJLdIo,6428
|
2
2
|
sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
|
3
3
|
sky/authentication.py,sha256=ND011K_-Ud1dVZF37A9KrwYir_ihJXcHc7iDWmuBc8Q,22872
|
4
4
|
sky/check.py,sha256=PPNQnaaZBA9_aogJpN4gnG4XWnTqkd74c-rBYDkDRDY,16101
|
5
|
-
sky/cli.py,sha256
|
5
|
+
sky/cli.py,sha256=-eDL9jSPUyxwxlj-npljVxcRVilMJUnW__iANuqk_hE,229045
|
6
6
|
sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
|
7
7
|
sky/core.py,sha256=2D1AhdZ1hyD6bBdLyF0t8UJS4ObkgYMwEteWC9_6ysc,47900
|
8
8
|
sky/dag.py,sha256=Yl7Ry26Vql5cv4YMz8g9kOUgtoCihJnw7c8NgZYakMY,3242
|
@@ -13,10 +13,10 @@ sky/models.py,sha256=bGMSATMkSMr_Kp6SCoiJVVeebwSdZuzjw_jrJzVWAAc,1603
|
|
13
13
|
sky/optimizer.py,sha256=6bg3CB74pMvk30yQCE7zFSSudWmz78Cdd-IRbjGHBzA,58425
|
14
14
|
sky/resources.py,sha256=T9kSL03149rIJs1LbfDwkZSIEpFL5uhceZTr2Nep78o,74719
|
15
15
|
sky/sky_logging.py,sha256=Nmc29vvg-GgKRZcajNrGlkuCIFxrVqefdXTPiS7Y-9o,5914
|
16
|
-
sky/skypilot_config.py,sha256=
|
16
|
+
sky/skypilot_config.py,sha256=e1F6oShfQoEazEKZV-yqsBpQOHlLSW8fl0t3utOh8Ts,20379
|
17
17
|
sky/task.py,sha256=tM-DpB7Mtxtc280gFIw9QvJfKEHgiIoew5rnNxxaj04,56737
|
18
18
|
sky/adaptors/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
19
|
-
sky/adaptors/aws.py,sha256=
|
19
|
+
sky/adaptors/aws.py,sha256=6Qe_gvq8NZ4cHgD_5a6g3BSPsOd08wfww-QbLqyVd6A,7383
|
20
20
|
sky/adaptors/azure.py,sha256=7l5jobSTsTUcTo3ptrgOpRgngHY92U64eQBPxvDe1HA,21986
|
21
21
|
sky/adaptors/cloudflare.py,sha256=8XFjBKMusnR7EmteEGAsAAQUG4J0lDlqk7lkaum_5-4,8276
|
22
22
|
sky/adaptors/common.py,sha256=o17TOFNLm1t0lQvZSJCF1C6RjD6ykKrQ-q1BLPX41XI,3027
|
@@ -37,17 +37,17 @@ sky/backends/backend_utils.py,sha256=9fMPPUrkEgRGN7ofAJnhlv6hGEQMoEB3m_BC0gto2VU
|
|
37
37
|
sky/backends/cloud_vm_ray_backend.py,sha256=M_1U_xWwdLxMr0HKfDi-AkUPO3-Rz3A0Us2JbRZjeW0,251477
|
38
38
|
sky/backends/docker_utils.py,sha256=Hyw1YY20EyghhEbYx6O2FIMDcGkNzBzV9TM7LFynei8,8358
|
39
39
|
sky/backends/local_docker_backend.py,sha256=m0s6EZ9dTbPO8STy9FeLj8DvvtI_44MwDK9QByh2jwU,17048
|
40
|
-
sky/backends/wheel_utils.py,sha256=
|
40
|
+
sky/backends/wheel_utils.py,sha256=IUruJijm5854UGDdSayHbHzjjWRM46bATK1nSnK44xY,11071
|
41
41
|
sky/backends/monkey_patches/monkey_patch_ray_up.py,sha256=76-y2fCaE3JINj8lEwHT1eirYzCbpD8O1ySsysuGu8o,3450
|
42
42
|
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=-eDL9jSPUyxwxlj-npljVxcRVilMJUnW__iANuqk_hE,229045
|
47
47
|
sky/client/common.py,sha256=E_5cjxd8fWRB7fU1yfIbiyQf-IyVhpD5KkB7Fl3cQEI,15215
|
48
48
|
sky/client/sdk.py,sha256=NSuCYn84T-mx86nl7z-1qMwoWFlGXCvEmqd-HhfMAp4,70712
|
49
49
|
sky/clouds/__init__.py,sha256=OW6mJ-9hpJSBORCgt2LippLQEYZHNfnBW1mooRNNvxo,1416
|
50
|
-
sky/clouds/aws.py,sha256
|
50
|
+
sky/clouds/aws.py,sha256=Y5azSWJSSWq32CD6jhP5xTFlk-vg3sE4dMWcm5AQiQQ,54638
|
51
51
|
sky/clouds/azure.py,sha256=Zpo6ftWz_B30mX7N-An7JVO-8v7aU3f9cw1iH9phvwE,32251
|
52
52
|
sky/clouds/cloud.py,sha256=22sfoOyGYjsBj88RHp-eHHs6aqi0xDb8q_9o_v6SIFM,36690
|
53
53
|
sky/clouds/cudo.py,sha256=_UkLEtwJsfDMKlmJfML5W3rA8VArba4x8YGIdnvgZoM,13226
|
@@ -90,7 +90,7 @@ sky/clouds/service_catalog/data_fetchers/fetch_aws.py,sha256=Zj4bqWPiDcT_ZFyHxQw
|
|
90
90
|
sky/clouds/service_catalog/data_fetchers/fetch_azure.py,sha256=7YVnoGDGGZI2TK02bj_LOoD4E5J5CFl6eqz2XlR4Vy8,12790
|
91
91
|
sky/clouds/service_catalog/data_fetchers/fetch_cudo.py,sha256=52P48lvWN0s1ArjeLPeLemPRpxjSRcHincRle0nqdm4,3440
|
92
92
|
sky/clouds/service_catalog/data_fetchers/fetch_fluidstack.py,sha256=hsqpQi_YUI-qil3zLCEGatrR7BkWzywr4otRdHrd-4k,7350
|
93
|
-
sky/clouds/service_catalog/data_fetchers/fetch_gcp.py,sha256=
|
93
|
+
sky/clouds/service_catalog/data_fetchers/fetch_gcp.py,sha256=IKcb0kh9u2N3B2jV7v8ekrqu2Tb1M1yEBfgzI77n0kg,31026
|
94
94
|
sky/clouds/service_catalog/data_fetchers/fetch_ibm.py,sha256=WPzR1y5ZaTdv-R3HLIdSUnOfWh4N9cqzKoKiKJQkjFk,7414
|
95
95
|
sky/clouds/service_catalog/data_fetchers/fetch_lambda_cloud.py,sha256=MUzogyLruLQmIt-To6TsfnGPgv_nnlp49XYbeshsd7I,5003
|
96
96
|
sky/clouds/service_catalog/data_fetchers/fetch_vast.py,sha256=MRxk52FUeG-R2hPUbkH44HXRPou73dxXWYAHDEXg3xU,5016
|
@@ -101,12 +101,14 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
101
101
|
sky/clouds/utils/gcp_utils.py,sha256=YtuS4EoAMvcRnGPgE_WLENPOPWIdvhp7dLceTw_zfas,7114
|
102
102
|
sky/clouds/utils/oci_utils.py,sha256=0YxhgZdeIHQUI1AZ86YuswsZg5HdVCIVfSTRJsSHYI0,6396
|
103
103
|
sky/clouds/utils/scp_utils.py,sha256=MqawUhhFHHxVnn29nOI4gJ_nF665ich4Po7bsy1afsA,15948
|
104
|
-
sky/dashboard/out/404.html,sha256=
|
105
|
-
sky/dashboard/out/clusters.html,sha256=
|
104
|
+
sky/dashboard/out/404.html,sha256=rD3TwVd_efrkNjp7lbI7I_QHV8D1RDIADHC-yBpOiVM,2296
|
105
|
+
sky/dashboard/out/clusters.html,sha256=m_IHTnn6zxytPbivhLU1A2Hnpe-He-8bEB1dGKLRWrg,11953
|
106
106
|
sky/dashboard/out/favicon.ico,sha256=uYlvgxSM7gjBmXpZ8wydvZUPAbJiiix-rc2Xe5mma9s,15086
|
107
|
-
sky/dashboard/out/index.html,sha256=
|
108
|
-
sky/dashboard/out/jobs.html,sha256=
|
107
|
+
sky/dashboard/out/index.html,sha256=FPVWZLNosLAhSqwlt4JVqPzHizIxbxg4rSIppiKEmEo,1407
|
108
|
+
sky/dashboard/out/jobs.html,sha256=evm6VUGhofMxz4Y_PE1LdCeVg5CH9Sr-5aI481A90vU,13059
|
109
109
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
110
|
+
sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w/_buildManifest.js,sha256=Ok4yINvq-VFZbOefZBHPaavSf6DCdVryO-rPc9HNUkk,1048
|
111
|
+
sky/dashboard/out/_next/static/68UjuSjrx8JvfzxUuf1-w/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
110
112
|
sky/dashboard/out/_next/static/chunks/236-d437cf66e68a6f64.js,sha256=ralyFxYHEJcbwyN11jVIZbvPFrrpAq34CXvKqRdhEoc,24814
|
111
113
|
sky/dashboard/out/_next/static/chunks/312-c3c8845990db8ffc.js,sha256=H8yGnoxM_IYM2kU-A7mESi4aV4Ph3PxbIdnM2v5Kd3M,25150
|
112
114
|
sky/dashboard/out/_next/static/chunks/37-72fdc8f71d6e4784.js,sha256=XLVnZhTzv_QQZZeQX8IwNacGZme7FYFwo8e9e57gcAU,8051
|
@@ -128,16 +130,14 @@ sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-b57ec043f09c5813.
|
|
128
130
|
sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-b09f7fbf6d5d74f6.js,sha256=KayTgi3_fkoZ5e94WDIrz40erkrn--G_2QzQyMNHhok,8887
|
129
131
|
sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-ef2e0e91a9222cac.js,sha256=BlAqhmjQdnDgnOeBE3KWZfATs7QZN68TOqYb2gSSxoQ,13152
|
130
132
|
sky/dashboard/out/_next/static/css/f3538cd90cfca88c.css,sha256=y9a3IiJyaD6P_uZwLuCTQ6TJU0e85QIhNCbL-k4RIUc,31933
|
131
|
-
sky/dashboard/out/
|
132
|
-
sky/dashboard/out/
|
133
|
-
sky/dashboard/out/
|
134
|
-
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=plkAvOhZUBzjEBJkOJPlE8IEf6BG6M1LjWVxUdKZ4PQ,1653
|
135
|
-
sky/dashboard/out/jobs/[job].html,sha256=qge_G_bf7xnsjP0mGCJXFdqarVNXuHFdPfDijrA5ayI,1621
|
133
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=M0GtFwDFTylEoHi3UWYuLA1_hh4QEf88pS-lL1TlZHI,1984
|
134
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=QHC9hJFB6wbOz_3VIWu56KX5LsMDBRzCoMOWM4zDLxc,1653
|
135
|
+
sky/dashboard/out/jobs/[job].html,sha256=tEuQU0SxKfOdCkV_CdnUq2jrDDD6p70m6aIjOGxi14E,1621
|
136
136
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
137
137
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
138
138
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
139
139
|
sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
|
140
|
-
sky/data/mounting_utils.py,sha256=
|
140
|
+
sky/data/mounting_utils.py,sha256=OoNegk56oKM2NYCE6ZVe1E41xYKYtRjNOiiyKzI0SVo,21622
|
141
141
|
sky/data/storage.py,sha256=0gZHw73py4fW-2iyyuQxa3E7bwqMg5-Dh3-aEKf2PuQ,236592
|
142
142
|
sky/data/storage_utils.py,sha256=u8PTKUkE7qYwr1GgAJ45pI5YUkhUaPQPRUz_CZZo_HI,13785
|
143
143
|
sky/jobs/__init__.py,sha256=qoI53-xXE0-SOkrLWigvhgFXjk7dWE0OTqGPYIk-kmM,1458
|
@@ -221,7 +221,7 @@ sky/provision/paperspace/utils.py,sha256=FhJZz0O5tCbdaJ5WE6zTdVXvW6msalMaAc3xOR3
|
|
221
221
|
sky/provision/runpod/__init__.py,sha256=6HYvHI27EaLrX1SS0vWVhdLu5HDBeZCdvAeDJuwM5pk,556
|
222
222
|
sky/provision/runpod/config.py,sha256=9ulZJVL7nHuxhTdoj8D7lNn7SdicJ5zc6FIcHIG9tcg,321
|
223
223
|
sky/provision/runpod/instance.py,sha256=kUaD3nRMcBipCQwspSHaQ_WnIDnZJIVNrSk7_7ruWJg,10364
|
224
|
-
sky/provision/runpod/utils.py,sha256=
|
224
|
+
sky/provision/runpod/utils.py,sha256=XPpJOczboUi2iWZWi7c6J5rUrB1O9THSDJ-6643LMdE,13020
|
225
225
|
sky/provision/runpod/api/__init__.py,sha256=eJwjPeQZ5B7chf4-Bl4YeI2Uo9aLX4M1rr2NmPk89_E,112
|
226
226
|
sky/provision/runpod/api/commands.py,sha256=oh77PS0H0wZudHV8II9ceRuaFQ8FN4NJ4S3-6_PeqPM,4238
|
227
227
|
sky/provision/runpod/api/pods.py,sha256=GMwxgNr9NnHPfyh2Y9b8S_vLhrLY4h7LybFBBQNAyfw,4948
|
@@ -262,16 +262,16 @@ sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,
|
|
262
262
|
sky/serve/server/core.py,sha256=6l_XddW5ZWfdRdzyfQdB8rtBcU90VN_yXRM85tz0hsc,41499
|
263
263
|
sky/serve/server/server.py,sha256=A9K37a0nQgZeN3eKWv62Oh2C5TSAReTZ9pHmztqlI-c,4396
|
264
264
|
sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
265
|
-
sky/server/common.py,sha256=
|
266
|
-
sky/server/constants.py,sha256=
|
267
|
-
sky/server/server.py,sha256=
|
265
|
+
sky/server/common.py,sha256=k5Be_Co9gI892iDvhYj6D__X-8_-RuEij5WlNiKDKJ4,27233
|
266
|
+
sky/server/constants.py,sha256=Ha3A4X0kPh0FrdlM5u34Wi7OxhScPUwHqRi4-ye347Y,1112
|
267
|
+
sky/server/server.py,sha256=DABDYs1drNLeQ1b5WMlD2f4XU1VrDNtvgh5pDmdZxcU,46757
|
268
268
|
sky/server/stream_utils.py,sha256=4JMHgtoXPpCT8JwtqyUcDQ9IdZFir9om0JaCRr8rvbQ,5849
|
269
269
|
sky/server/uvicorn.py,sha256=wajwPHJ3IEEP3GMNOCc0S81-1v2qT5F-ejUkLFVhUzk,2953
|
270
270
|
sky/server/html/log.html,sha256=TSGZktua9Ysl_ysg3w60rjxAxhH61AJnsYDHdtqrjmI,6929
|
271
271
|
sky/server/requests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
272
272
|
sky/server/requests/event_loop.py,sha256=OhpPbuce65bbjpGRlcJa78AVnYSm08SzFKt70ypCUuQ,1211
|
273
273
|
sky/server/requests/executor.py,sha256=ikpy7A-kYdVdeXlh0Ll927jl7QOn0Y6Pp8VodqpwF9w,26760
|
274
|
-
sky/server/requests/payloads.py,sha256=
|
274
|
+
sky/server/requests/payloads.py,sha256=7Ect-lsw4fem0BOMxFbyt1nUCucLPf52Kfblo-BlHUs,16934
|
275
275
|
sky/server/requests/preconditions.py,sha256=ipxIb_3JXG6S3-ymcOdqQNb7VDvoPqADxu9ZK7-nQWc,7179
|
276
276
|
sky/server/requests/process.py,sha256=uv6JmqdT1vR6S5j3a0CEmxz3fUoKQoZCryQsjZpZE7E,8734
|
277
277
|
sky/server/requests/requests.py,sha256=9ovdQE-zv_Mvc6IbGATHVyQlOxSKjg_OankZbgDVGeE,21338
|
@@ -283,7 +283,7 @@ sky/server/requests/serializers/decoders.py,sha256=F7eqENzt7hH92BPYUGnSJ_-XGobA0
|
|
283
283
|
sky/server/requests/serializers/encoders.py,sha256=4bQV5yTg8RTPT_HkRyQpjaBY_uUvBJ4NH189W0-6Pi0,5578
|
284
284
|
sky/setup_files/MANIFEST.in,sha256=xhxaTVBu63MiTRV52AIlHp6qrg0i301PDIvH0lRw4E0,619
|
285
285
|
sky/setup_files/dependencies.py,sha256=ZNn608y0Yb2oTz9prWDxgPEeH9QEmfJ3CzlIcE021QQ,6489
|
286
|
-
sky/setup_files/setup.py,sha256=
|
286
|
+
sky/setup_files/setup.py,sha256=dGDMbDZQM3-9vLFgYWsxyGmHQLr2QfNLRU8lIQevlnQ,7508
|
287
287
|
sky/skylet/LICENSE,sha256=BnFrJSvUFpMUoH5mOpWnEvaC5R6Uux8W6WXgrte8iYg,12381
|
288
288
|
sky/skylet/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
289
289
|
sky/skylet/attempt_skylet.py,sha256=GZ6ITjjA0m-da3IxXXfoHR6n4pjp3X3TOXUqVvSrV0k,2136
|
@@ -379,15 +379,15 @@ sky/utils/kubernetes/deploy_remote_cluster.sh,sha256=EQMBC0VUqe3UaiYvwkNq4P6U9bk
|
|
379
379
|
sky/utils/kubernetes/exec_kubeconfig_converter.py,sha256=fE1SnteoxI05EaugnWeV82hXwZTVHmbXsh1aaZAgF3c,2548
|
380
380
|
sky/utils/kubernetes/generate_kind_config.py,sha256=_TNLnifA_r7-CRq083IP1xjelYqiLjzQX9ohuqYpDH8,3187
|
381
381
|
sky/utils/kubernetes/generate_kubeconfig.sh,sha256=MBvXJio0PeujZSCXiRKE_pa6HCTiU9qBzR1WrXccVSY,10477
|
382
|
-
sky/utils/kubernetes/gpu_labeler.py,sha256=
|
382
|
+
sky/utils/kubernetes/gpu_labeler.py,sha256=YAwkytFo2j5GyGyX8RqnUXCMBff00Mdm9G_0mmtNZLo,10345
|
383
383
|
sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7ZWF5gdVIZPupCCo9A,1224
|
384
384
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
385
385
|
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=HPVgNt-wbCVPd9dpDFiA7t2mzQLpjXHJ61eiwRbEr-c,10378
|
386
386
|
sky/utils/kubernetes/rsync_helper.sh,sha256=eaQOyvDq_RmcRHBqB9tH6LyDuYC310IVp97C5nqrTQg,1793
|
387
387
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=Kq1MDygF2IxFmu9FXpCxqucXLmeUrvs6OtRij6XTQbo,6554
|
388
|
-
skypilot_nightly-1.0.0.
|
389
|
-
skypilot_nightly-1.0.0.
|
390
|
-
skypilot_nightly-1.0.0.
|
391
|
-
skypilot_nightly-1.0.0.
|
392
|
-
skypilot_nightly-1.0.0.
|
393
|
-
skypilot_nightly-1.0.0.
|
388
|
+
skypilot_nightly-1.0.0.dev20250423.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
389
|
+
skypilot_nightly-1.0.0.dev20250423.dist-info/METADATA,sha256=_oicVHhBGcfwtKI6A3I7JgsCtqGNODcbT61KB6tAEDs,18691
|
390
|
+
skypilot_nightly-1.0.0.dev20250423.dist-info/WHEEL,sha256=pxyMxgL8-pra_rKaQ4drOZAegBVuX-G_4nRHjjgWbmo,91
|
391
|
+
skypilot_nightly-1.0.0.dev20250423.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
392
|
+
skypilot_nightly-1.0.0.dev20250423.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
393
|
+
skypilot_nightly-1.0.0.dev20250423.dist-info/RECORD,,
|
/sky/dashboard/out/_next/static/{mS9YfLA5hhsJMeBj9W8J7 → 68UjuSjrx8JvfzxUuf1-w}/_buildManifest.js
RENAMED
File without changes
|
/sky/dashboard/out/_next/static/{mS9YfLA5hhsJMeBj9W8J7 → 68UjuSjrx8JvfzxUuf1-w}/_ssgManifest.js
RENAMED
File without changes
|
{skypilot_nightly-1.0.0.dev20250421.dist-info → skypilot_nightly-1.0.0.dev20250423.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|
File without changes
|