skypilot-nightly 1.0.0.dev20250726__py3-none-any.whl → 1.0.0.dev20250729__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.
Potentially problematic release.
This version of skypilot-nightly might be problematic. Click here for more details.
- sky/__init__.py +2 -2
- sky/backends/backend_utils.py +116 -55
- sky/catalog/kubernetes_catalog.py +2 -2
- sky/clouds/kubernetes.py +2 -1
- 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/config.html +1 -1
- sky/dashboard/out/index.html +1 -1
- sky/dashboard/out/infra/[context].html +1 -1
- sky/dashboard/out/infra.html +1 -1
- sky/dashboard/out/jobs/[job].html +1 -1
- sky/dashboard/out/jobs.html +1 -1
- sky/dashboard/out/users.html +1 -1
- sky/dashboard/out/volumes.html +1 -1
- sky/dashboard/out/workspace/new.html +1 -1
- sky/dashboard/out/workspaces/[name].html +1 -1
- sky/dashboard/out/workspaces.html +1 -1
- sky/exceptions.py +1 -0
- sky/jobs/server/core.py +4 -1
- sky/logs/agent.py +0 -14
- sky/logs/aws.py +0 -28
- sky/provision/kubernetes/instance.py +4 -3
- sky/provision/kubernetes/utils.py +51 -28
- sky/serve/server/core.py +21 -2
- sky/serve/service.py +22 -2
- sky/server/server.py +1 -1
- sky/templates/sky-serve-controller.yaml.j2 +3 -0
- sky/utils/kubernetes/gpu_labeler.py +2 -2
- sky/utils/schemas.py +5 -1
- {skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/RECORD +39 -39
- /sky/dashboard/out/_next/static/{lVqpIJvikPZAX3dgsm6_q → Q2sVXboB_t7cgvntL-6nD}/_buildManifest.js +0 -0
- /sky/dashboard/out/_next/static/{lVqpIJvikPZAX3dgsm6_q → Q2sVXboB_t7cgvntL-6nD}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.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 = '1e4f892c08e19e9ca7651d3a114a71d954dcd915'
|
|
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.dev20250729'
|
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
|
40
40
|
|
|
41
41
|
|
sky/backends/backend_utils.py
CHANGED
|
@@ -33,6 +33,7 @@ from sky import sky_logging
|
|
|
33
33
|
from sky import skypilot_config
|
|
34
34
|
from sky.adaptors import common as adaptors_common
|
|
35
35
|
from sky.jobs import utils as managed_job_utils
|
|
36
|
+
from sky.provision import common as provision_common
|
|
36
37
|
from sky.provision import instance_setup
|
|
37
38
|
from sky.provision.kubernetes import utils as kubernetes_utils
|
|
38
39
|
from sky.server.requests import requests as requests_lib
|
|
@@ -1812,6 +1813,45 @@ def _query_cluster_status_via_cloud_api(
|
|
|
1812
1813
|
return node_statuses
|
|
1813
1814
|
|
|
1814
1815
|
|
|
1816
|
+
def _query_cluster_info_via_cloud_api(
|
|
1817
|
+
handle: 'cloud_vm_ray_backend.CloudVmRayResourceHandle'
|
|
1818
|
+
) -> provision_common.ClusterInfo:
|
|
1819
|
+
"""Returns the cluster info.
|
|
1820
|
+
|
|
1821
|
+
Raises:
|
|
1822
|
+
exceptions.NotSupportedError: the cloud does not support the new provisioner.
|
|
1823
|
+
exceptions.FetchClusterInfoError: the cluster info cannot be
|
|
1824
|
+
fetched from the cloud provider.
|
|
1825
|
+
"""
|
|
1826
|
+
cloud = handle.launched_resources.cloud
|
|
1827
|
+
assert cloud is not None, handle
|
|
1828
|
+
if cloud.STATUS_VERSION >= clouds.StatusVersion.SKYPILOT:
|
|
1829
|
+
try:
|
|
1830
|
+
cloud_name = repr(cloud)
|
|
1831
|
+
ray_config = global_user_state.get_cluster_yaml_dict(
|
|
1832
|
+
handle.cluster_yaml)
|
|
1833
|
+
provider_config = ray_config['provider']
|
|
1834
|
+
region = provider_config.get('region') or provider_config.get(
|
|
1835
|
+
'location')
|
|
1836
|
+
cluster_info = provision_lib.get_cluster_info(
|
|
1837
|
+
cloud_name, region, handle.cluster_name_on_cloud,
|
|
1838
|
+
provider_config)
|
|
1839
|
+
logger.debug(
|
|
1840
|
+
f'Querying {cloud_name} cluster '
|
|
1841
|
+
f'{handle.cluster_name_on_cloud} '
|
|
1842
|
+
f'head instance:\n{cluster_info.get_head_instance()}\n'
|
|
1843
|
+
f'worker instances:\n{cluster_info.get_worker_instances()}')
|
|
1844
|
+
return cluster_info
|
|
1845
|
+
except Exception as e: # pylint: disable=broad-except
|
|
1846
|
+
with ux_utils.print_exception_no_traceback():
|
|
1847
|
+
raise exceptions.FetchClusterInfoError(
|
|
1848
|
+
reason=exceptions.FetchClusterInfoError.Reason.UNKNOWN
|
|
1849
|
+
) from e
|
|
1850
|
+
else:
|
|
1851
|
+
raise exceptions.NotSupportedError(
|
|
1852
|
+
f'The cloud {cloud} does not support the SkyPilot provisioner.')
|
|
1853
|
+
|
|
1854
|
+
|
|
1815
1855
|
def check_can_clone_disk_and_override_task(
|
|
1816
1856
|
cluster_name: str, target_cluster_name: Optional[str], task: 'task_lib.Task'
|
|
1817
1857
|
) -> Tuple['task_lib.Task', 'cloud_vm_ray_backend.CloudVmRayResourceHandle']:
|
|
@@ -2152,68 +2192,89 @@ def _update_cluster_status(cluster_name: str) -> Optional[Dict[str, Any]]:
|
|
|
2152
2192
|
# * The cluster is partially or completely in the INIT state, which means
|
|
2153
2193
|
# that provisioning was interrupted. This is considered abnormal.
|
|
2154
2194
|
#
|
|
2155
|
-
# An abnormal cluster will transition to INIT and
|
|
2156
|
-
#
|
|
2195
|
+
# An abnormal cluster will transition to INIT, and one of the following will happen:
|
|
2196
|
+
# (1) If the SkyPilot provisioner is used AND the head node is alive, we
|
|
2197
|
+
# will not reset the autostop setting. Because autostop is handled by
|
|
2198
|
+
# the skylet through the cloud APIs, and will continue to function
|
|
2199
|
+
# regardless of the ray cluster's health.
|
|
2200
|
+
# (2) Otherwise, we will reset the autostop setting, unless the cluster is
|
|
2201
|
+
# autostopping/autodowning.
|
|
2157
2202
|
is_abnormal = ((0 < len(node_statuses) < handle.launched_nodes) or any(
|
|
2158
2203
|
status != status_lib.ClusterStatus.STOPPED for status in node_statuses))
|
|
2159
2204
|
if is_abnormal:
|
|
2160
2205
|
logger.debug('The cluster is abnormal. Setting to INIT status. '
|
|
2161
2206
|
f'node_statuses: {node_statuses}')
|
|
2162
|
-
|
|
2163
|
-
|
|
2164
|
-
|
|
2165
|
-
|
|
2166
|
-
stream_logs=False):
|
|
2167
|
-
# Friendly hint.
|
|
2168
|
-
autostop = record['autostop']
|
|
2169
|
-
maybe_down_str = ' --down' if record['to_down'] else ''
|
|
2170
|
-
noun = 'autodown' if record['to_down'] else 'autostop'
|
|
2171
|
-
|
|
2172
|
-
# Reset the autostopping as the cluster is abnormal, and may
|
|
2173
|
-
# not correctly autostop. Resetting the autostop will let
|
|
2174
|
-
# the user know that the autostop may not happen to avoid
|
|
2175
|
-
# leakages from the assumption that the cluster will autostop.
|
|
2176
|
-
success = True
|
|
2177
|
-
reset_local_autostop = True
|
|
2207
|
+
if record['autostop'] >= 0:
|
|
2208
|
+
is_head_node_alive = False
|
|
2209
|
+
if launched_resources.cloud.PROVISIONER_VERSION >= clouds.ProvisionerVersion.SKYPILOT:
|
|
2210
|
+
# Check if the head node is alive
|
|
2178
2211
|
try:
|
|
2179
|
-
|
|
2180
|
-
|
|
2181
|
-
|
|
2182
|
-
|
|
2183
|
-
|
|
2184
|
-
|
|
2185
|
-
|
|
2186
|
-
|
|
2187
|
-
|
|
2188
|
-
|
|
2189
|
-
|
|
2190
|
-
|
|
2191
|
-
|
|
2192
|
-
|
|
2193
|
-
|
|
2194
|
-
|
|
2195
|
-
|
|
2196
|
-
|
|
2212
|
+
cluster_info = _query_cluster_info_via_cloud_api(handle)
|
|
2213
|
+
is_head_node_alive = cluster_info.get_head_instance(
|
|
2214
|
+
) is not None
|
|
2215
|
+
except Exception as e: # pylint: disable=broad-except
|
|
2216
|
+
logger.debug(
|
|
2217
|
+
f'Failed to get cluster info for {cluster_name!r}: '
|
|
2218
|
+
f'{common_utils.format_exception(e)}')
|
|
2219
|
+
|
|
2220
|
+
backend = get_backend_from_handle(handle)
|
|
2221
|
+
if isinstance(backend, backends.CloudVmRayBackend):
|
|
2222
|
+
if is_head_node_alive:
|
|
2223
|
+
logger.debug(
|
|
2224
|
+
f'Skipping autostop reset for cluster {cluster_name!r} '
|
|
2225
|
+
'because the head node is alive.')
|
|
2226
|
+
elif not backend.is_definitely_autostopping(handle,
|
|
2227
|
+
stream_logs=False):
|
|
2228
|
+
# Friendly hint.
|
|
2229
|
+
autostop = record['autostop']
|
|
2230
|
+
maybe_down_str = ' --down' if record['to_down'] else ''
|
|
2231
|
+
noun = 'autodown' if record['to_down'] else 'autostop'
|
|
2232
|
+
|
|
2233
|
+
# Reset the autostopping as the cluster is abnormal, and may
|
|
2234
|
+
# not correctly autostop. Resetting the autostop will let
|
|
2235
|
+
# the user know that the autostop may not happen to avoid
|
|
2236
|
+
# leakages from the assumption that the cluster will autostop.
|
|
2237
|
+
success = True
|
|
2238
|
+
reset_local_autostop = True
|
|
2239
|
+
try:
|
|
2240
|
+
backend.set_autostop(handle, -1, stream_logs=False)
|
|
2241
|
+
except exceptions.CommandError as e:
|
|
2242
|
+
success = False
|
|
2243
|
+
if e.returncode == 255:
|
|
2244
|
+
word = 'autostopped' if noun == 'autostop' else 'autodowned'
|
|
2245
|
+
logger.debug(f'The cluster is likely {word}.')
|
|
2246
|
+
reset_local_autostop = False
|
|
2247
|
+
except (Exception, SystemExit) as e: # pylint: disable=broad-except
|
|
2248
|
+
success = False
|
|
2249
|
+
logger.debug(f'Failed to reset autostop. Due to '
|
|
2250
|
+
f'{common_utils.format_exception(e)}')
|
|
2251
|
+
if reset_local_autostop:
|
|
2252
|
+
global_user_state.set_cluster_autostop_value(
|
|
2253
|
+
handle.cluster_name, -1, to_down=False)
|
|
2254
|
+
|
|
2255
|
+
if success:
|
|
2256
|
+
operation_str = (f'Canceled {noun} on the cluster '
|
|
2257
|
+
f'{cluster_name!r}')
|
|
2258
|
+
else:
|
|
2259
|
+
operation_str = (
|
|
2260
|
+
f'Attempted to cancel {noun} on the '
|
|
2261
|
+
f'cluster {cluster_name!r} with best effort')
|
|
2262
|
+
yellow = colorama.Fore.YELLOW
|
|
2263
|
+
bright = colorama.Style.BRIGHT
|
|
2264
|
+
reset = colorama.Style.RESET_ALL
|
|
2265
|
+
ux_utils.console_newline()
|
|
2266
|
+
logger.warning(
|
|
2267
|
+
f'{yellow}{operation_str}, since it is found to be in an '
|
|
2268
|
+
f'abnormal state. To fix, try running: {reset}{bright}sky '
|
|
2269
|
+
f'start -f -i {autostop}{maybe_down_str} {cluster_name}'
|
|
2270
|
+
f'{reset}')
|
|
2197
2271
|
else:
|
|
2198
|
-
|
|
2199
|
-
|
|
2200
|
-
|
|
2201
|
-
|
|
2202
|
-
|
|
2203
|
-
|
|
2204
|
-
ux_utils.console_newline()
|
|
2205
|
-
logger.warning(
|
|
2206
|
-
f'{yellow}{operation_str}, since it is found to be in an '
|
|
2207
|
-
f'abnormal state. To fix, try running: {reset}{bright}sky '
|
|
2208
|
-
f'start -f -i {autostop}{maybe_down_str} {cluster_name}'
|
|
2209
|
-
f'{reset}')
|
|
2210
|
-
else:
|
|
2211
|
-
ux_utils.console_newline()
|
|
2212
|
-
operation_str = 'autodowning' if record[
|
|
2213
|
-
'to_down'] else 'autostopping'
|
|
2214
|
-
logger.info(
|
|
2215
|
-
f'Cluster {cluster_name!r} is {operation_str}. Setting to '
|
|
2216
|
-
'INIT status; try refresh again in a while.')
|
|
2272
|
+
ux_utils.console_newline()
|
|
2273
|
+
operation_str = 'autodowning' if record[
|
|
2274
|
+
'to_down'] else 'autostopping'
|
|
2275
|
+
logger.info(
|
|
2276
|
+
f'Cluster {cluster_name!r} is {operation_str}. Setting to '
|
|
2277
|
+
'INIT status; try refresh again in a while.')
|
|
2217
2278
|
|
|
2218
2279
|
# If the user starts part of a STOPPED cluster, we still need a status
|
|
2219
2280
|
# to represent the abnormal status. For spot cluster, it can also
|
|
@@ -214,7 +214,7 @@ def _list_accelerators(
|
|
|
214
214
|
# Generate the accelerator quantities
|
|
215
215
|
accelerator_count = (
|
|
216
216
|
kubernetes_utils.get_node_accelerator_count(
|
|
217
|
-
node.status.allocatable))
|
|
217
|
+
context, node.status.allocatable))
|
|
218
218
|
|
|
219
219
|
if accelerator_count > 0:
|
|
220
220
|
# TPUs are counted in a different way compared to GPUs.
|
|
@@ -261,7 +261,7 @@ def _list_accelerators(
|
|
|
261
261
|
if container.resources.requests:
|
|
262
262
|
allocated_qty += (
|
|
263
263
|
kubernetes_utils.get_node_accelerator_count(
|
|
264
|
-
container.resources.requests))
|
|
264
|
+
context, container.resources.requests))
|
|
265
265
|
|
|
266
266
|
accelerators_available = accelerator_count - allocated_qty
|
|
267
267
|
# Initialize the total_accelerators_available to make sure the
|
sky/clouds/kubernetes.py
CHANGED
|
@@ -547,7 +547,8 @@ class Kubernetes(clouds.Cloud):
|
|
|
547
547
|
tpu_requested = True
|
|
548
548
|
k8s_resource_key = kubernetes_utils.TPU_RESOURCE_KEY
|
|
549
549
|
else:
|
|
550
|
-
k8s_resource_key = kubernetes_utils.get_gpu_resource_key(
|
|
550
|
+
k8s_resource_key = kubernetes_utils.get_gpu_resource_key(
|
|
551
|
+
context)
|
|
551
552
|
else:
|
|
552
553
|
# If no GPUs are requested, we set NVIDIA_VISIBLE_DEVICES=none to
|
|
553
554
|
# maintain GPU isolation. This is to override the default behavior
|
sky/dashboard/out/404.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{"statusCode":404}},"page":"/_error","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-2186770cc2de1623.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D/%5Bjob%5D-2186770cc2de1623.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]/[job]","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-ea0e7283886407ca.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-95afb019ab85801c.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1871-ea0e7283886407ca.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters/%5Bcluster%5D-95afb019ab85801c.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/config.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-a2673b256b6d416f.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/config-a2673b256b6d416f.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-89e7daf7b7df02e0.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/index-89e7daf7b7df02e0.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-a90b4fe4616dc501.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra/%5Bcontext%5D-a90b4fe4616dc501.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/infra.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-0d3d1f890c5d188a.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/infra-0d3d1f890c5d188a.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dc0299ffefebcdbe.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs/%5Bjob%5D-dc0299ffefebcdbe.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs/[job]","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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"/><meta name="next-head-count" content="2"/><link rel="preload" href="/dashboard/_next/static/css/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-49f790d12a85027c.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/jobs-49f790d12a85027c.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/jobs","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/users.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-6790fcefd5487b13.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/users-6790fcefd5487b13.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/users","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/volumes.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/volumes","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspace/new","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-e49a159c30a6c4a7.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-6bcd4b20914d76c9.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/616-162f3033ffcd3d31.js" defer=""></script><script src="/dashboard/_next/static/chunks/5230-df791914b54d91d9.js" defer=""></script><script src="/dashboard/_next/static/chunks/5739-5ea3ffa10fc884f2.js" defer=""></script><script src="/dashboard/_next/static/chunks/1664-d65361e92b85e786.js" defer=""></script><script src="/dashboard/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js" defer=""></script><script src="/dashboard/_next/static/chunks/1272-1ef0bf0237faccdb.js" defer=""></script><script src="/dashboard/_next/static/chunks/1559-18717d96ef2fcbe9.js" defer=""></script><script src="/dashboard/_next/static/chunks/6989-eab0e9c16b64fd9f.js" defer=""></script><script src="/dashboard/_next/static/chunks/3698-9fa11dafb5cad4a6.js" defer=""></script><script src="/dashboard/_next/static/chunks/6135-2abbd0352f8ee061.js" defer=""></script><script src="/dashboard/_next/static/chunks/6990-f64e03df359e04f7.js" defer=""></script><script src="/dashboard/_next/static/chunks/8969-8e0b2055bf5dd499.js" defer=""></script><script src="/dashboard/_next/static/chunks/1043-869d9c78bf5dd3df.js" defer=""></script><script src="/dashboard/_next/static/chunks/6601-d4a381403a8bae91.js" defer=""></script><script src="/dashboard/_next/static/chunks/938-7ee806653aef0609.js" defer=""></script><script src="/dashboard/_next/static/chunks/1141-e49a159c30a6c4a7.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces/%5Bname%5D-6bcd4b20914d76c9.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces/[name]","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.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/b3227360726f12eb.css" as="style"/><link rel="stylesheet" href="/dashboard/_next/static/css/b3227360726f12eb.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-a305898dc479711e.js" defer=""></script><script src="/dashboard/_next/static/chunks/framework-efc06c2733009cd3.js" defer=""></script><script src="/dashboard/_next/static/chunks/main-c0a4f1ea606d48d2.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/_app-da491665d4289aae.js" defer=""></script><script src="/dashboard/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/workspaces","query":{},"buildId":"Q2sVXboB_t7cgvntL-6nD","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|
sky/exceptions.py
CHANGED
sky/jobs/server/core.py
CHANGED
|
@@ -59,7 +59,10 @@ def _upload_files_to_controller(dag: 'sky.Dag') -> Dict[str, str]:
|
|
|
59
59
|
# as uploading to the controller is only a local copy.
|
|
60
60
|
storage_clouds = (
|
|
61
61
|
storage_lib.get_cached_enabled_storage_cloud_names_or_refresh())
|
|
62
|
-
|
|
62
|
+
force_disable_cloud_bucket = skypilot_config.get_nested(
|
|
63
|
+
('jobs', 'force_disable_cloud_bucket'), False)
|
|
64
|
+
if (not managed_job_utils.is_consolidation_mode() and storage_clouds and
|
|
65
|
+
not force_disable_cloud_bucket):
|
|
63
66
|
for task_ in dag.tasks:
|
|
64
67
|
controller_utils.maybe_translate_local_file_mounts_and_sync_up(
|
|
65
68
|
task_, task_type='jobs')
|
sky/logs/agent.py
CHANGED
|
@@ -67,20 +67,6 @@ class FluentbitAgent(LoggingAgent):
|
|
|
67
67
|
}
|
|
68
68
|
return common_utils.dump_yaml_str(cfg_dict)
|
|
69
69
|
|
|
70
|
-
def add_fallback_outputs(self, cfg_dict: Dict[str, Any]) -> Dict[str, Any]:
|
|
71
|
-
"""Add fallback outputs to the Fluent Bit configuration.
|
|
72
|
-
|
|
73
|
-
This method can be overridden by subclasses to add fallback outputs
|
|
74
|
-
in case the primary output fails.
|
|
75
|
-
|
|
76
|
-
Args:
|
|
77
|
-
cfg_dict: The Fluent Bit configuration dictionary.
|
|
78
|
-
|
|
79
|
-
Returns:
|
|
80
|
-
The updated configuration dictionary.
|
|
81
|
-
"""
|
|
82
|
-
return cfg_dict
|
|
83
|
-
|
|
84
70
|
@abc.abstractmethod
|
|
85
71
|
def fluentbit_output_config(
|
|
86
72
|
self, cluster_name: resources_utils.ClusterName) -> Dict[str, Any]:
|
sky/logs/aws.py
CHANGED
|
@@ -211,36 +211,8 @@ class CloudwatchLoggingAgent(FluentbitAgent):
|
|
|
211
211
|
}
|
|
212
212
|
}
|
|
213
213
|
|
|
214
|
-
# Add fallback outputs for graceful failure handling
|
|
215
|
-
cfg_dict = self.add_fallback_outputs(cfg_dict)
|
|
216
|
-
|
|
217
214
|
return common_utils.dump_yaml_str(cfg_dict)
|
|
218
215
|
|
|
219
|
-
def add_fallback_outputs(self, cfg_dict: Dict[str, Any]) -> Dict[str, Any]:
|
|
220
|
-
"""Add fallback outputs to the Fluent Bit configuration.
|
|
221
|
-
|
|
222
|
-
This adds a local file output as a fallback in case
|
|
223
|
-
CloudWatch logging fails.
|
|
224
|
-
|
|
225
|
-
Args:
|
|
226
|
-
cfg_dict: The Fluent Bit configuration dictionary.
|
|
227
|
-
|
|
228
|
-
Returns:
|
|
229
|
-
The updated configuration dictionary.
|
|
230
|
-
"""
|
|
231
|
-
# Add a local file output as a fallback
|
|
232
|
-
fallback_output = {
|
|
233
|
-
'name': 'file',
|
|
234
|
-
'match': '*',
|
|
235
|
-
'path': '/tmp/skypilot_logs_fallback.log',
|
|
236
|
-
'format': 'out_file',
|
|
237
|
-
}
|
|
238
|
-
|
|
239
|
-
# Add the fallback output to the configuration
|
|
240
|
-
cfg_dict['pipeline']['outputs'].append(fallback_output)
|
|
241
|
-
|
|
242
|
-
return cfg_dict
|
|
243
|
-
|
|
244
216
|
def fluentbit_output_config(
|
|
245
217
|
self, cluster_name: resources_utils.ClusterName) -> Dict[str, Any]:
|
|
246
218
|
"""Get the Fluent Bit output configuration for CloudWatch.
|
|
@@ -210,7 +210,7 @@ def _raise_pod_scheduling_errors(namespace, context, new_nodes):
|
|
|
210
210
|
# case we will need to update this logic.
|
|
211
211
|
# TODO(Doyoung): Update the error message raised
|
|
212
212
|
# with the multi-host TPU support.
|
|
213
|
-
gpu_resource_key = kubernetes_utils.get_gpu_resource_key() # pylint: disable=line-too-long
|
|
213
|
+
gpu_resource_key = kubernetes_utils.get_gpu_resource_key(context) # pylint: disable=line-too-long
|
|
214
214
|
if 'Insufficient google.com/tpu' in event_message:
|
|
215
215
|
extra_msg = (
|
|
216
216
|
f'Verify if '
|
|
@@ -797,7 +797,8 @@ def _create_pods(region: str, cluster_name_on_cloud: str,
|
|
|
797
797
|
limits = pod_spec['spec']['containers'][0].get('resources',
|
|
798
798
|
{}).get('limits')
|
|
799
799
|
if limits is not None:
|
|
800
|
-
needs_gpus = limits.get(kubernetes_utils.get_gpu_resource_key(),
|
|
800
|
+
needs_gpus = limits.get(kubernetes_utils.get_gpu_resource_key(context),
|
|
801
|
+
0) > 0
|
|
801
802
|
|
|
802
803
|
# TPU pods provisioned on GKE use the default containerd runtime.
|
|
803
804
|
# Reference: https://cloud.google.com/kubernetes-engine/docs/how-to/migrate-containerd#overview # pylint: disable=line-too-long
|
|
@@ -900,7 +901,7 @@ def _create_pods(region: str, cluster_name_on_cloud: str,
|
|
|
900
901
|
# to the non-DWS case.
|
|
901
902
|
if needs_gpus:
|
|
902
903
|
gpu_toleration = {
|
|
903
|
-
'key': kubernetes_utils.get_gpu_resource_key(),
|
|
904
|
+
'key': kubernetes_utils.get_gpu_resource_key(context),
|
|
904
905
|
'operator': 'Exists',
|
|
905
906
|
'effect': 'NoSchedule'
|
|
906
907
|
}
|
|
@@ -147,12 +147,14 @@ MEMORY_SIZE_UNITS = {
|
|
|
147
147
|
# The resource keys used by Kubernetes to track NVIDIA GPUs and Google TPUs on
|
|
148
148
|
# nodes. These keys are typically used in the node's status.allocatable
|
|
149
149
|
# or status.capacity fields to indicate the available resources on the node.
|
|
150
|
-
|
|
150
|
+
SUPPORTED_GPU_RESOURCE_KEYS = {'amd': 'amd.com/gpu', 'nvidia': 'nvidia.com/gpu'}
|
|
151
151
|
TPU_RESOURCE_KEY = 'google.com/tpu'
|
|
152
152
|
|
|
153
153
|
NO_ACCELERATOR_HELP_MESSAGE = (
|
|
154
154
|
'If your cluster contains GPUs or TPUs, make sure '
|
|
155
|
-
f'
|
|
155
|
+
f'one of {SUPPORTED_GPU_RESOURCE_KEYS["amd"]}, '
|
|
156
|
+
f'{SUPPORTED_GPU_RESOURCE_KEYS["nvidia"]} or '
|
|
157
|
+
f'{TPU_RESOURCE_KEY} resource is available '
|
|
156
158
|
'on the nodes and the node labels for identifying GPUs/TPUs '
|
|
157
159
|
'(e.g., skypilot.co/accelerator) are setup correctly. ')
|
|
158
160
|
|
|
@@ -391,6 +393,8 @@ def get_gke_accelerator_name(accelerator: str) -> str:
|
|
|
391
393
|
return 'nvidia-h200-141gb'
|
|
392
394
|
elif accelerator.startswith('tpu-'):
|
|
393
395
|
return accelerator
|
|
396
|
+
elif accelerator.startswith('amd-'):
|
|
397
|
+
return accelerator
|
|
394
398
|
else:
|
|
395
399
|
return 'nvidia-tesla-{}'.format(accelerator.lower())
|
|
396
400
|
|
|
@@ -1098,10 +1102,10 @@ def detect_accelerator_resource(
|
|
|
1098
1102
|
context: Optional[str]) -> Tuple[bool, Set[str]]:
|
|
1099
1103
|
"""Checks if the Kubernetes cluster has GPU/TPU resource.
|
|
1100
1104
|
|
|
1101
|
-
|
|
1102
|
-
with nvidia.com/gpu and google.com/tpu. If nvidia.com/gpu resource is
|
|
1105
|
+
Three types of accelerator resources are available which are each checked
|
|
1106
|
+
with amd.com/gpu, nvidia.com/gpu and google.com/tpu. If amd.com/gpu or nvidia.com/gpu resource is
|
|
1103
1107
|
missing, that typically means that the Kubernetes cluster does not have
|
|
1104
|
-
GPUs or the nvidia GPU operator and/or device drivers are not installed.
|
|
1108
|
+
GPUs or the amd/nvidia GPU operator and/or device drivers are not installed.
|
|
1105
1109
|
|
|
1106
1110
|
Returns:
|
|
1107
1111
|
bool: True if the cluster has GPU_RESOURCE_KEY or TPU_RESOURCE_KEY
|
|
@@ -1112,7 +1116,7 @@ def detect_accelerator_resource(
|
|
|
1112
1116
|
nodes = get_kubernetes_nodes(context=context)
|
|
1113
1117
|
for node in nodes:
|
|
1114
1118
|
cluster_resources.update(node.status.allocatable.keys())
|
|
1115
|
-
has_accelerator = (get_gpu_resource_key() in cluster_resources or
|
|
1119
|
+
has_accelerator = (get_gpu_resource_key(context) in cluster_resources or
|
|
1116
1120
|
TPU_RESOURCE_KEY in cluster_resources)
|
|
1117
1121
|
|
|
1118
1122
|
return has_accelerator, cluster_resources
|
|
@@ -1262,8 +1266,8 @@ def check_instance_fits(context: Optional[str],
|
|
|
1262
1266
|
else:
|
|
1263
1267
|
# Check if any of the GPU nodes have sufficient number of GPUs.
|
|
1264
1268
|
gpu_nodes = [
|
|
1265
|
-
node for node in gpu_nodes if
|
|
1266
|
-
|
|
1269
|
+
node for node in gpu_nodes if get_node_accelerator_count(
|
|
1270
|
+
context, node.status.allocatable) >= acc_count
|
|
1267
1271
|
]
|
|
1268
1272
|
if not gpu_nodes:
|
|
1269
1273
|
return False, (
|
|
@@ -1325,14 +1329,14 @@ def get_accelerator_label_key_values(
|
|
|
1325
1329
|
Raises:
|
|
1326
1330
|
ResourcesUnavailableError: Can be raised from the following conditions:
|
|
1327
1331
|
- The cluster does not have GPU/TPU resources
|
|
1328
|
-
(nvidia.com/gpu, google.com/tpu)
|
|
1332
|
+
(amd.com/gpu, nvidia.com/gpu, google.com/tpu)
|
|
1329
1333
|
- The cluster has GPU/TPU resources, but no node in the cluster has
|
|
1330
1334
|
an accelerator label.
|
|
1331
1335
|
- The cluster has a node with an invalid accelerator label value.
|
|
1332
1336
|
- The cluster doesn't have any nodes with acc_type GPU/TPU
|
|
1333
1337
|
"""
|
|
1334
1338
|
# Check if the cluster has GPU resources
|
|
1335
|
-
# TODO(romilb): This assumes the accelerator is a nvidia GPU. We
|
|
1339
|
+
# TODO(romilb): This assumes the accelerator is a amd/nvidia GPU. We
|
|
1336
1340
|
# need to support TPUs and other accelerators as well.
|
|
1337
1341
|
# TODO(romilb): Currently, we broadly disable all GPU checks if autoscaling
|
|
1338
1342
|
# is configured in config.yaml since the cluster may be scaling up from
|
|
@@ -1496,12 +1500,15 @@ def get_accelerator_label_key_values(
|
|
|
1496
1500
|
f'`sky ssh up --infra {context_display_name}`. {suffix}')
|
|
1497
1501
|
else:
|
|
1498
1502
|
msg = (
|
|
1499
|
-
f'Could not detect GPU/TPU resources ({
|
|
1503
|
+
f'Could not detect GPU/TPU resources ({SUPPORTED_GPU_RESOURCE_KEYS["amd"]!r}, '
|
|
1504
|
+
f'{SUPPORTED_GPU_RESOURCE_KEYS["nvidia"]!r} or '
|
|
1500
1505
|
f'{TPU_RESOURCE_KEY!r}) in Kubernetes cluster. If this cluster'
|
|
1501
1506
|
' contains GPUs, please ensure GPU drivers are installed on '
|
|
1502
1507
|
'the node. Check if the GPUs are setup correctly by running '
|
|
1503
1508
|
'`kubectl describe nodes` and looking for the '
|
|
1504
|
-
f'{
|
|
1509
|
+
f'{SUPPORTED_GPU_RESOURCE_KEYS["amd"]!r}, '
|
|
1510
|
+
f'{SUPPORTED_GPU_RESOURCE_KEYS["nvidia"]!r} or '
|
|
1511
|
+
f'{TPU_RESOURCE_KEY!r} resource. '
|
|
1505
1512
|
'Please refer to the documentation on how to set up GPUs.'
|
|
1506
1513
|
f'{suffix}')
|
|
1507
1514
|
raise exceptions.ResourcesUnavailableError(msg)
|
|
@@ -2861,7 +2868,7 @@ def get_unlabeled_accelerator_nodes(context: Optional[str] = None) -> List[Any]:
|
|
|
2861
2868
|
nodes = get_kubernetes_nodes(context=context)
|
|
2862
2869
|
nodes_with_accelerator = []
|
|
2863
2870
|
for node in nodes:
|
|
2864
|
-
if get_gpu_resource_key() in node.status.capacity:
|
|
2871
|
+
if get_gpu_resource_key(context) in node.status.capacity:
|
|
2865
2872
|
nodes_with_accelerator.append(node)
|
|
2866
2873
|
|
|
2867
2874
|
label_formatter, _ = detect_gpu_label_formatter(context)
|
|
@@ -2950,7 +2957,8 @@ def get_kubernetes_node_info(
|
|
|
2950
2957
|
break
|
|
2951
2958
|
|
|
2952
2959
|
allocated_qty = 0
|
|
2953
|
-
accelerator_count = get_node_accelerator_count(
|
|
2960
|
+
accelerator_count = get_node_accelerator_count(context,
|
|
2961
|
+
node.status.allocatable)
|
|
2954
2962
|
|
|
2955
2963
|
if pods is None:
|
|
2956
2964
|
accelerators_available = -1
|
|
@@ -2965,7 +2973,7 @@ def get_kubernetes_node_info(
|
|
|
2965
2973
|
for container in pod.spec.containers:
|
|
2966
2974
|
if container.resources.requests:
|
|
2967
2975
|
allocated_qty += get_node_accelerator_count(
|
|
2968
|
-
container.resources.requests)
|
|
2976
|
+
context, container.resources.requests)
|
|
2969
2977
|
|
|
2970
2978
|
accelerators_available = accelerator_count - allocated_qty
|
|
2971
2979
|
|
|
@@ -3177,7 +3185,8 @@ def is_tpu_on_gke(accelerator: str) -> bool:
|
|
|
3177
3185
|
return normalized in GKE_TPU_ACCELERATOR_TO_GENERATION
|
|
3178
3186
|
|
|
3179
3187
|
|
|
3180
|
-
def get_node_accelerator_count(
|
|
3188
|
+
def get_node_accelerator_count(context: Optional[str],
|
|
3189
|
+
attribute_dict: dict) -> int:
|
|
3181
3190
|
"""Retrieves the count of accelerators from a node's resource dictionary.
|
|
3182
3191
|
|
|
3183
3192
|
This method checks the node's allocatable resources or the accelerators
|
|
@@ -3192,7 +3201,7 @@ def get_node_accelerator_count(attribute_dict: dict) -> int:
|
|
|
3192
3201
|
Number of accelerators allocated or available from the node. If no
|
|
3193
3202
|
resource is found, it returns 0.
|
|
3194
3203
|
"""
|
|
3195
|
-
gpu_resource_name = get_gpu_resource_key()
|
|
3204
|
+
gpu_resource_name = get_gpu_resource_key(context)
|
|
3196
3205
|
assert not (gpu_resource_name in attribute_dict and
|
|
3197
3206
|
TPU_RESOURCE_KEY in attribute_dict)
|
|
3198
3207
|
if gpu_resource_name in attribute_dict:
|
|
@@ -3318,7 +3327,7 @@ def process_skypilot_pods(
|
|
|
3318
3327
|
unit='G')
|
|
3319
3328
|
gpu_count = parse_cpu_or_gpu_resource(
|
|
3320
3329
|
pod.spec.containers[0].resources.requests.get(
|
|
3321
|
-
|
|
3330
|
+
get_gpu_resource_key(context), '0'))
|
|
3322
3331
|
gpu_name = None
|
|
3323
3332
|
if gpu_count > 0:
|
|
3324
3333
|
label_formatter, _ = (detect_gpu_label_formatter(context))
|
|
@@ -3373,19 +3382,33 @@ def process_skypilot_pods(
|
|
|
3373
3382
|
return list(clusters.values()), jobs_controllers, serve_controllers
|
|
3374
3383
|
|
|
3375
3384
|
|
|
3376
|
-
def
|
|
3377
|
-
"""
|
|
3378
|
-
|
|
3379
|
-
|
|
3380
|
-
|
|
3381
|
-
|
|
3385
|
+
def _gpu_resource_key_helper(context: Optional[str]) -> str:
|
|
3386
|
+
"""Helper function to get the GPU resource key."""
|
|
3387
|
+
gpu_resource_key = SUPPORTED_GPU_RESOURCE_KEYS['amd']
|
|
3388
|
+
try:
|
|
3389
|
+
nodes = kubernetes.core_api(context).list_node().items
|
|
3390
|
+
for gpu_key in SUPPORTED_GPU_RESOURCE_KEYS.values():
|
|
3391
|
+
if any(gpu_key in node.status.capacity for node in nodes):
|
|
3392
|
+
return gpu_key
|
|
3393
|
+
except Exception as e: # pylint: disable=broad-except
|
|
3394
|
+
logger.warning(f'Failed to load kube config or query nodes: {e}. '
|
|
3395
|
+
'Falling back to default GPU resource key.')
|
|
3396
|
+
return gpu_resource_key
|
|
3397
|
+
|
|
3398
|
+
|
|
3399
|
+
@annotations.lru_cache(scope='request')
|
|
3400
|
+
def get_gpu_resource_key(context: Optional[str] = None) -> str:
|
|
3401
|
+
"""Get the GPU resource name to use in Kubernetes.
|
|
3402
|
+
|
|
3403
|
+
The function auto-detects the GPU resource key by querying the Kubernetes node API.
|
|
3404
|
+
If detection fails, it falls back to a default value.
|
|
3405
|
+
An environment variable can override the detected or default value.
|
|
3406
|
+
|
|
3382
3407
|
Returns:
|
|
3383
3408
|
str: The selected GPU resource name.
|
|
3384
3409
|
"""
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
# E.g., can be nvidia.com/gpu-h100, amd.com/gpu etc.
|
|
3388
|
-
return os.getenv('CUSTOM_GPU_RESOURCE_KEY', default=GPU_RESOURCE_KEY)
|
|
3410
|
+
gpu_resource_key = _gpu_resource_key_helper(context)
|
|
3411
|
+
return os.getenv('CUSTOM_GPU_RESOURCE_KEY', default=gpu_resource_key)
|
|
3389
3412
|
|
|
3390
3413
|
|
|
3391
3414
|
def get_kubeconfig_paths() -> List[str]:
|
sky/serve/server/core.py
CHANGED
|
@@ -18,6 +18,7 @@ from sky import skypilot_config
|
|
|
18
18
|
from sky import task as task_lib
|
|
19
19
|
from sky.backends import backend_utils
|
|
20
20
|
from sky.catalog import common as service_catalog_common
|
|
21
|
+
from sky.data import storage as storage_lib
|
|
21
22
|
from sky.serve import constants as serve_constants
|
|
22
23
|
from sky.serve import serve_state
|
|
23
24
|
from sky.serve import serve_utils
|
|
@@ -151,8 +152,25 @@ def up(
|
|
|
151
152
|
|
|
152
153
|
with rich_utils.safe_status(
|
|
153
154
|
ux_utils.spinner_message('Initializing service')):
|
|
154
|
-
|
|
155
|
-
|
|
155
|
+
# Handle file mounts using two-hop approach when cloud storage
|
|
156
|
+
# unavailable
|
|
157
|
+
storage_clouds = (
|
|
158
|
+
storage_lib.get_cached_enabled_storage_cloud_names_or_refresh())
|
|
159
|
+
force_disable_cloud_bucket = skypilot_config.get_nested(
|
|
160
|
+
('serve', 'force_disable_cloud_bucket'), False)
|
|
161
|
+
if storage_clouds and not force_disable_cloud_bucket:
|
|
162
|
+
controller_utils.maybe_translate_local_file_mounts_and_sync_up(
|
|
163
|
+
task, task_type='serve')
|
|
164
|
+
local_to_controller_file_mounts = {}
|
|
165
|
+
else:
|
|
166
|
+
# Fall back to two-hop file_mount uploading when no cloud storage
|
|
167
|
+
if task.storage_mounts:
|
|
168
|
+
raise exceptions.NotSupportedError(
|
|
169
|
+
'Cloud-based file_mounts are specified, but no cloud '
|
|
170
|
+
'storage is available. Please specify local '
|
|
171
|
+
'file_mounts only.')
|
|
172
|
+
local_to_controller_file_mounts = (
|
|
173
|
+
controller_utils.translate_local_file_mounts_to_two_hop(task))
|
|
156
174
|
|
|
157
175
|
tls_template_vars = _rewrite_tls_credential_paths_and_get_tls_env_vars(
|
|
158
176
|
service_name, task)
|
|
@@ -183,6 +201,7 @@ def up(
|
|
|
183
201
|
'service_name': service_name,
|
|
184
202
|
'controller_log_file': controller_log_file,
|
|
185
203
|
'remote_user_config_path': remote_config_yaml_path,
|
|
204
|
+
'local_to_controller_file_mounts': local_to_controller_file_mounts,
|
|
186
205
|
'modified_catalogs':
|
|
187
206
|
service_catalog_common.get_modified_catalog_file_mounts(),
|
|
188
207
|
**tls_template_vars,
|
sky/serve/service.py
CHANGED
|
@@ -19,6 +19,7 @@ from sky import sky_logging
|
|
|
19
19
|
from sky import task as task_lib
|
|
20
20
|
from sky.backends import backend_utils
|
|
21
21
|
from sky.backends import cloud_vm_ray_backend
|
|
22
|
+
from sky.data import data_utils
|
|
22
23
|
from sky.serve import constants
|
|
23
24
|
from sky.serve import controller
|
|
24
25
|
from sky.serve import load_balancer
|
|
@@ -71,6 +72,8 @@ def cleanup_storage(task_yaml: str) -> bool:
|
|
|
71
72
|
Returns:
|
|
72
73
|
True if the storage is cleaned up successfully, False otherwise.
|
|
73
74
|
"""
|
|
75
|
+
failed = False
|
|
76
|
+
|
|
74
77
|
try:
|
|
75
78
|
task = task_lib.Task.from_yaml(task_yaml)
|
|
76
79
|
backend = cloud_vm_ray_backend.CloudVmRayBackend()
|
|
@@ -86,8 +89,25 @@ def cleanup_storage(task_yaml: str) -> bool:
|
|
|
86
89
|
f'{common_utils.format_exception(e)}')
|
|
87
90
|
with ux_utils.enable_traceback():
|
|
88
91
|
logger.error(f' Traceback: {traceback.format_exc()}')
|
|
89
|
-
|
|
90
|
-
|
|
92
|
+
failed = True
|
|
93
|
+
|
|
94
|
+
# Clean up any files mounted from the local disk, such as two-hop file
|
|
95
|
+
# mounts.
|
|
96
|
+
for file_mount in (task.file_mounts or {}).values():
|
|
97
|
+
try:
|
|
98
|
+
if not data_utils.is_cloud_store_url(file_mount):
|
|
99
|
+
path = os.path.expanduser(file_mount)
|
|
100
|
+
if os.path.isdir(path):
|
|
101
|
+
shutil.rmtree(path)
|
|
102
|
+
else:
|
|
103
|
+
os.remove(path)
|
|
104
|
+
except Exception as e: # pylint: disable=broad-except
|
|
105
|
+
logger.error(f'Failed to clean up file mount {file_mount}: {e}')
|
|
106
|
+
with ux_utils.enable_traceback():
|
|
107
|
+
logger.error(f' Traceback: {traceback.format_exc()}')
|
|
108
|
+
failed = True
|
|
109
|
+
|
|
110
|
+
return not failed
|
|
91
111
|
|
|
92
112
|
|
|
93
113
|
def _cleanup(service_name: str) -> bool:
|
sky/server/server.py
CHANGED
|
@@ -245,7 +245,7 @@ class BasicAuthMiddleware(starlette.middleware.base.BaseHTTPMiddleware):
|
|
|
245
245
|
"""Middleware to handle HTTP Basic Auth."""
|
|
246
246
|
|
|
247
247
|
async def dispatch(self, request: fastapi.Request, call_next):
|
|
248
|
-
if request.url.path.startswith('/api/'):
|
|
248
|
+
if request.url.path.startswith('/api/health'):
|
|
249
249
|
# Try to set the auth user from basic auth
|
|
250
250
|
_try_set_basic_auth_user(request)
|
|
251
251
|
return await call_next(request)
|
|
@@ -34,6 +34,9 @@ file_mounts:
|
|
|
34
34
|
{%- for remote_catalog_path, local_catalog_path in modified_catalogs.items() %}
|
|
35
35
|
{{remote_catalog_path}}: {{local_catalog_path}}
|
|
36
36
|
{%- endfor %}
|
|
37
|
+
{%- for controller_file_mount_path, local_file_mount_path in local_to_controller_file_mounts.items() %}
|
|
38
|
+
{{controller_file_mount_path}}: {{local_file_mount_path}}
|
|
39
|
+
{%- endfor %}
|
|
37
40
|
{%- if use_tls %}
|
|
38
41
|
{{remote_tls_keyfile}}: {{local_tls_keyfile}}
|
|
39
42
|
{{remote_tls_certfile}}: {{local_tls_certfile}}
|
|
@@ -62,8 +62,8 @@ def label(context: Optional[str] = None, wait_for_completion: bool = True):
|
|
|
62
62
|
if not unlabeled_gpu_nodes:
|
|
63
63
|
print('No unlabeled GPU nodes found in the cluster. If you have '
|
|
64
64
|
'unlabeled GPU nodes, please ensure that they have the resource '
|
|
65
|
-
f'`{kubernetes_utils.get_gpu_resource_key()}:
|
|
66
|
-
'in their capacity.')
|
|
65
|
+
f'`{kubernetes_utils.get_gpu_resource_key(context)}: '
|
|
66
|
+
'<number of GPUs>` in their capacity.')
|
|
67
67
|
return
|
|
68
68
|
|
|
69
69
|
print(
|
sky/utils/schemas.py
CHANGED
|
@@ -1167,7 +1167,11 @@ def get_config_schema():
|
|
|
1167
1167
|
'type': 'string',
|
|
1168
1168
|
'pattern': '^(https|s3|gs|r2|cos)://.+',
|
|
1169
1169
|
'required': [],
|
|
1170
|
-
}
|
|
1170
|
+
},
|
|
1171
|
+
'force_disable_cloud_bucket': {
|
|
1172
|
+
'type': 'boolean',
|
|
1173
|
+
'default': False,
|
|
1174
|
+
},
|
|
1171
1175
|
}
|
|
1172
1176
|
}
|
|
1173
1177
|
|
{skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/RECORD
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
sky/__init__.py,sha256=
|
|
1
|
+
sky/__init__.py,sha256=c8GJ3hR0luiVb2XYWqXOjYkQ0kwh3nrWD87g6X9LGwY,6535
|
|
2
2
|
sky/admin_policy.py,sha256=BeSowGnWfDj58ALiNf3cc2N4gMQWzjO6aXnX7vaqYhk,9782
|
|
3
3
|
sky/authentication.py,sha256=V7zGSV7bqcAKC_EGOOS0KhJ01ZFLnme0WnjLFO7zavs,25603
|
|
4
4
|
sky/check.py,sha256=R0pFsTq2v-wr3NFePlX9DmDhsbvWEoFJAXsys3pUmT4,30338
|
|
@@ -6,7 +6,7 @@ sky/cli.py,sha256=VXIZryeTtJPYpPTBKymVPmuOCyh8knfWrq-qnkr6R-4,178
|
|
|
6
6
|
sky/cloud_stores.py,sha256=Ln5GBpel-sEs7rVx7bBrMkfLwA_bctI05Rox2uoz7Lo,26388
|
|
7
7
|
sky/core.py,sha256=k_3QkqJecFpwLSatM52lD-IitVdjUIXn33EPJWcQfWE,56628
|
|
8
8
|
sky/dag.py,sha256=5MFXlP43y9U54zxfYGhVyBiWEInoFFlt_zJ7ASJntXw,3889
|
|
9
|
-
sky/exceptions.py,sha256=
|
|
9
|
+
sky/exceptions.py,sha256=U9s7ty5eyTdpOeteVxh7qOKmkYhyRVQmHXQXyREnMyk,19482
|
|
10
10
|
sky/execution.py,sha256=sZf0306FCKAo1FS7Vg2yCADSr5XHsODYwESHhwdVTjo,33439
|
|
11
11
|
sky/global_user_state.py,sha256=PpStfGwx02mwlPdwR55auB1Y-GfYKxun90YpzzQdH-c,67579
|
|
12
12
|
sky/models.py,sha256=Eor-cT4D71QTimogcnJ5ey1G1PXK-OXN-snEtE8Uu_g,3152
|
|
@@ -34,7 +34,7 @@ sky/adaptors/vast.py,sha256=tpvmHi7IkQNzbbHVkeo04kUSajoEpSzXr2XgeO_I1LU,695
|
|
|
34
34
|
sky/adaptors/vsphere.py,sha256=zJP9SeObEoLrpgHW2VHvZE48EhgVf8GfAEIwBeaDMfM,2129
|
|
35
35
|
sky/backends/__init__.py,sha256=tpa9gAygQopsiBUUuy3wVmr4E05FoPTFHIWqEo4i-u0,627
|
|
36
36
|
sky/backends/backend.py,sha256=6ltCouZhaXJqv2Zh9nP_YCdHf10_oIRNzAA-XDiMmI8,7969
|
|
37
|
-
sky/backends/backend_utils.py,sha256=
|
|
37
|
+
sky/backends/backend_utils.py,sha256=ykbCKTPdG3T6Zd4Fq8hqpk-EZ2TtYxSW3c1yEymtizE,150321
|
|
38
38
|
sky/backends/cloud_vm_ray_backend.py,sha256=akHVi9HTY3ypr8YHLllyj9JJ7z3-JK9k91Pbr-vjg3c,264075
|
|
39
39
|
sky/backends/docker_utils.py,sha256=_EhM6NStZDAwcegppQqExaB5iuSn1qL4xFFUqXAz2Uk,8392
|
|
40
40
|
sky/backends/local_docker_backend.py,sha256=r84uhXCk7NK9hGW840KPKnrADd7mCerMwncxOzckHg4,17126
|
|
@@ -51,7 +51,7 @@ sky/catalog/fluidstack_catalog.py,sha256=387bOTlR3Bzj07uT1wvw3VSw3fVACQUi1hFoz4A
|
|
|
51
51
|
sky/catalog/gcp_catalog.py,sha256=6LfpdBGMutc9lDfmpoKMCB8YaYy3KKcWOm7Xg4bkAkk,26514
|
|
52
52
|
sky/catalog/hyperbolic_catalog.py,sha256=vMs0HcTyFLBNpuDNdWYFwAIfnKh5TT34mY6CRRPHTFc,4946
|
|
53
53
|
sky/catalog/ibm_catalog.py,sha256=cU-PmiKyJY3ZCVKJzCaT_ClxJx785yZEg9JlK8vlWfc,4734
|
|
54
|
-
sky/catalog/kubernetes_catalog.py,sha256=
|
|
54
|
+
sky/catalog/kubernetes_catalog.py,sha256=YYx92uv5r0B62q8ExcetvbMNNPtJ4yQzAxtGEkEqubI,14118
|
|
55
55
|
sky/catalog/lambda_catalog.py,sha256=M5g23ILZo55CzSdNbEfB4AzAwvs6bPaJPEsMDGuGoqI,5543
|
|
56
56
|
sky/catalog/nebius_catalog.py,sha256=9TQ309xqe8svquwgNFPht6PHrQc_bMUVhVaEjllGjYk,4748
|
|
57
57
|
sky/catalog/oci_catalog.py,sha256=5SzhG7umqlWpBoEOYNDBhQFgLIF0H4gtoDwfZo7MkTI,8821
|
|
@@ -95,7 +95,7 @@ sky/clouds/fluidstack.py,sha256=AbVYW2iwVVebIn0dWdSSsdItILHRLG3VVU3N2-n1I9c,1360
|
|
|
95
95
|
sky/clouds/gcp.py,sha256=LteGFf8kxmVoWyzM1YTNDh3xOrsuVJFB2-E7KNJ_Yz8,68861
|
|
96
96
|
sky/clouds/hyperbolic.py,sha256=bmV4NFpUPgzR0ownavHHVqyw26EtOgQ_ZB6SlxlgmJw,11999
|
|
97
97
|
sky/clouds/ibm.py,sha256=qMbOkTMJzPn2HDH9cie9zERvukRZbZoueLIaufCECAw,22860
|
|
98
|
-
sky/clouds/kubernetes.py,sha256=
|
|
98
|
+
sky/clouds/kubernetes.py,sha256=s0IA3dSfW4KdxmdjRP-a1ZSw-tWgwNjwLMpb0qJReBk,54517
|
|
99
99
|
sky/clouds/lambda_cloud.py,sha256=aRW4GwLjaFFR6_bPbBr9o8z-SKHtuP18BAVwoPuDtBE,13553
|
|
100
100
|
sky/clouds/nebius.py,sha256=4b7UhtKR8uS-imBJYMMY7p0RX8H1W121MkLRJ07RP-I,21361
|
|
101
101
|
sky/clouds/oci.py,sha256=U5wtBx78RqCgCAqjlTTgSnRqWWa7D7LIvyoo8097Fno,28571
|
|
@@ -111,17 +111,19 @@ sky/clouds/utils/azure_utils.py,sha256=NToRBnhEyuUvb-nBnsKTxjhOBRkMcrelL8LK4w6s4
|
|
|
111
111
|
sky/clouds/utils/gcp_utils.py,sha256=zpdibyvdROgDGqllcvQuST3pKqj6pzqX-gxCw-DsCfc,9873
|
|
112
112
|
sky/clouds/utils/oci_utils.py,sha256=TFqAqRLggg4Z0bhxrrq8nouSSomZy-ub1frHXEkud2M,7302
|
|
113
113
|
sky/clouds/utils/scp_utils.py,sha256=VGuccVO5uFGr8-yolWSoYrgr11z6cIeDBGcqkBzAyOs,18409
|
|
114
|
-
sky/dashboard/out/404.html,sha256=
|
|
115
|
-
sky/dashboard/out/clusters.html,sha256=
|
|
116
|
-
sky/dashboard/out/config.html,sha256=
|
|
114
|
+
sky/dashboard/out/404.html,sha256=dPR26LZaznGWG1SD-Fy3XTPR2B80vo3eflX1BOQORvc,1423
|
|
115
|
+
sky/dashboard/out/clusters.html,sha256=0zoXFg4aUddIDE8iec5KIV9rREv0hgv73th6MCvnTv4,1418
|
|
116
|
+
sky/dashboard/out/config.html,sha256=gm3fvWI0faMkuTtd4LcsdwuDu6eFQZnMuNJVWLnClR0,1414
|
|
117
117
|
sky/dashboard/out/favicon.ico,sha256=XilUZZglAl_1zRsg85QsbQgmQAzGPQjcUIJ-A3AzYn8,93590
|
|
118
|
-
sky/dashboard/out/index.html,sha256=
|
|
119
|
-
sky/dashboard/out/infra.html,sha256=
|
|
120
|
-
sky/dashboard/out/jobs.html,sha256=
|
|
118
|
+
sky/dashboard/out/index.html,sha256=lnSsxkId-tPl1E-X5Xq3ta1PLOK-8xDwYFzhgsUyFuA,1407
|
|
119
|
+
sky/dashboard/out/infra.html,sha256=ANIyd2pK0q-269gq_H-Mvnl0wPRzoxeRfkAhKzDhUak,1412
|
|
120
|
+
sky/dashboard/out/jobs.html,sha256=JH01qlUHBTVgGXQG0-K9EiEQap1J7J0Wu-hvDFLFXI8,1410
|
|
121
121
|
sky/dashboard/out/skypilot.svg,sha256=c0iRtlfLlaUm2p0rG9NFmo5FN0Qhf3pq5Xph-AeMPJw,5064
|
|
122
|
-
sky/dashboard/out/users.html,sha256=
|
|
123
|
-
sky/dashboard/out/volumes.html,sha256=
|
|
124
|
-
sky/dashboard/out/workspaces.html,sha256=
|
|
122
|
+
sky/dashboard/out/users.html,sha256=5scHKkPCxQlCsFOEXUeH7F7YAcutc0IVgQKR747exA4,1412
|
|
123
|
+
sky/dashboard/out/volumes.html,sha256=Z-_49l_Z3vpy0ShXZgfxroCEMOtvO2IrrE_B7_Ue6gw,1416
|
|
124
|
+
sky/dashboard/out/workspaces.html,sha256=H2p72PxAtHr5nKH0_RNRGUiZK95D1bJRweHtrr78p_M,1422
|
|
125
|
+
sky/dashboard/out/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js,sha256=mmxo6wQVKY20ZhMR66BRt5Wcei8mpj5spy7xJIR2Qy8,2236
|
|
126
|
+
sky/dashboard/out/_next/static/Q2sVXboB_t7cgvntL-6nD/_ssgManifest.js,sha256=Z49s4suAsf5y_GfnQSvm4qtq2ggxEbZPfEDTXjy6XgA,80
|
|
125
127
|
sky/dashboard/out/_next/static/chunks/1043-869d9c78bf5dd3df.js,sha256=bAxynBdZtwL6IUsmByq0m47nF_VnO1lsMN9Xjdrp1GI,18328
|
|
126
128
|
sky/dashboard/out/_next/static/chunks/1141-e49a159c30a6c4a7.js,sha256=KK5G7lgpUnTVxW1tvREGo0rPqKfq8nDl6xx1T21fgCo,17818
|
|
127
129
|
sky/dashboard/out/_next/static/chunks/1272-1ef0bf0237faccdb.js,sha256=VJ6y-Z6Eg2T93hQIRfWAbjAkQ7nQhglmIaVbEpKSILY,38451
|
|
@@ -175,15 +177,13 @@ sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dc0299ffefebcdbe.js,sha25
|
|
|
175
177
|
sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js,sha256=K9tqKHcB2kiSHTAddLaM2oL1PzmqZNTdLDOuNzCaJNM,765
|
|
176
178
|
sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-6bcd4b20914d76c9.js,sha256=wCk-0BTOhpwUb22meXUGhG7zX-retkF3aR7cuk4qbYQ,1492
|
|
177
179
|
sky/dashboard/out/_next/static/css/b3227360726f12eb.css,sha256=H55rkeVIrdGOUAIPmLZ6C78aEgXb7fEPa9mT9BOuLBI,55358
|
|
178
|
-
sky/dashboard/out/
|
|
179
|
-
sky/dashboard/out/
|
|
180
|
-
sky/dashboard/out/
|
|
181
|
-
sky/dashboard/out/
|
|
182
|
-
sky/dashboard/out/infra/[context].html,sha256=IeGOmOQRUfxdcMcZymlGfvs_DwKw6Qti46r3T34hcN4,1436
|
|
183
|
-
sky/dashboard/out/jobs/[job].html,sha256=Dha_F-I1V-bpwKmtykc9tGQAEBgA5LXODfCrUdJuqn8,2305
|
|
180
|
+
sky/dashboard/out/clusters/[cluster].html,sha256=3ZHYa6fY-r-B6xg-J7NQ9ioJHnA20kw-9phMLff6V6Y,2848
|
|
181
|
+
sky/dashboard/out/clusters/[cluster]/[job].html,sha256=PuFjhgi6kliWm7V9teCVp5IdXGXrSjfCNL3XMjFj4ow,2161
|
|
182
|
+
sky/dashboard/out/infra/[context].html,sha256=hRORJKeU63X5gUEg20gCHgj3LxntTxCBq5cvsI0Oe38,1436
|
|
183
|
+
sky/dashboard/out/jobs/[job].html,sha256=7jiPEQlLEXcJ2Akb-UZov-azriC4aaHYZmoX1CfuY8w,2305
|
|
184
184
|
sky/dashboard/out/videos/cursor-small.mp4,sha256=8tRdp1vjawOrXUar1cfjOc-nkaKmcwCPZx_LO0XlCvQ,203285
|
|
185
|
-
sky/dashboard/out/workspace/new.html,sha256=
|
|
186
|
-
sky/dashboard/out/workspaces/[name].html,sha256=
|
|
185
|
+
sky/dashboard/out/workspace/new.html,sha256=OlfNa3tmNL_KVwSPXOBMc2Lyz4tUGVWjfEQzCO5bYcg,1428
|
|
186
|
+
sky/dashboard/out/workspaces/[name].html,sha256=HfHLBQtSbXgvLFTo3ET6PYqPJ39tEqjLnShBwjoNkH4,2846
|
|
187
187
|
sky/data/__init__.py,sha256=Nhaf1NURisXpZuwWANa2IuCyppIuc720FRwqSE2oEwY,184
|
|
188
188
|
sky/data/data_transfer.py,sha256=N8b0CQebDuHieXjvEVwlYmK6DbQxUGG1RQJEyTbh3dU,12040
|
|
189
189
|
sky/data/data_utils.py,sha256=CNYPM963qby5ddW0DZNbhiWXkqgB9MHh_jrC5DoBctM,33437
|
|
@@ -200,12 +200,12 @@ sky/jobs/utils.py,sha256=B3MtsAn8ODXRC1eqrE5cQ7XuUkDuBaUgFkCU4vadOJI,73577
|
|
|
200
200
|
sky/jobs/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
201
201
|
sky/jobs/client/sdk.py,sha256=SSdXVvaGCX5DjCfmMf6bSXOH1Dzk-a3bNhr7qNyHSuU,11335
|
|
202
202
|
sky/jobs/server/__init__.py,sha256=AbpHGcgLb-kRsJGnwFEktk7uzpZOCcBY74-YBdrKVGs,1
|
|
203
|
-
sky/jobs/server/core.py,sha256=
|
|
203
|
+
sky/jobs/server/core.py,sha256=TEzLeNJVnqO05n0DKaOWjCHs-TPX7H28b6Kzv7iq3Eo,32723
|
|
204
204
|
sky/jobs/server/server.py,sha256=ae8JAs-2ipWqL_GsA3x8T2mY-OJLc3ioWg_CfRzCUIY,4011
|
|
205
205
|
sky/jobs/server/utils.py,sha256=q9KL1VGJ8TBIypzt3U9ozHd90QwRib7CBPrXZypMQ98,3496
|
|
206
206
|
sky/logs/__init__.py,sha256=zW4gAEvWDz5S53FlLp3krAuKrmTSJ0e3kZDnhxSbW4E,722
|
|
207
|
-
sky/logs/agent.py,sha256=
|
|
208
|
-
sky/logs/aws.py,sha256=
|
|
207
|
+
sky/logs/agent.py,sha256=tv0C40_FauZpvU93Ro_mC23LnaXWhSTjqch1JQMXiqw,2771
|
|
208
|
+
sky/logs/aws.py,sha256=wj4HiruQ_qG5Lq_it_MNKYa9Bnt6NYq09823hOLLS8o,9670
|
|
209
209
|
sky/logs/gcp.py,sha256=eKVEcHO3FJRg_YTcE9omE8uAIF6AdBWWpkEPqWFAqXg,3857
|
|
210
210
|
sky/metrics/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
211
211
|
sky/metrics/utils.py,sha256=Cww3yNG4HyW4DEdLOFUayFgMZ16t2JFSvvhuTTV7Vio,7654
|
|
@@ -254,10 +254,10 @@ sky/provision/hyperbolic/utils.py,sha256=NCa3ULvIi64-YHYoOnPd3SShlJ6VuQsEwaTBqHF
|
|
|
254
254
|
sky/provision/kubernetes/__init__.py,sha256=xzVA9OCga0pCdUAQ7zZiCZMdq-Y0182oHlIKWESA15A,896
|
|
255
255
|
sky/provision/kubernetes/config.py,sha256=iuKFZdivSaEOZf6PWz3JLju3bqyIuO58jTb9fFUn8nE,29632
|
|
256
256
|
sky/provision/kubernetes/constants.py,sha256=vZJQsAVjAgwsOskB48tIFSXtNw7IFnJOQE_H6N-vOYQ,1130
|
|
257
|
-
sky/provision/kubernetes/instance.py,sha256=
|
|
257
|
+
sky/provision/kubernetes/instance.py,sha256=T1ac7efRMF6L5SrH51NNVxGeXmKlUC-tthWhOfchJTI,59914
|
|
258
258
|
sky/provision/kubernetes/network.py,sha256=Dgj8u7IQBHKHt-mSDhYzue1wfDk96FR_8fO89TwuZ2E,12846
|
|
259
259
|
sky/provision/kubernetes/network_utils.py,sha256=eEbt8acJW3Ohe6qHZNZ9GAQ29kIZEQX7Q5S08yOuvhA,12220
|
|
260
|
-
sky/provision/kubernetes/utils.py,sha256=
|
|
260
|
+
sky/provision/kubernetes/utils.py,sha256=xynvD6qmxaHPTMzw0AD3S6vO-INtFK2JDfaWB30p6CU,151275
|
|
261
261
|
sky/provision/kubernetes/volume.py,sha256=9u7kDnQxNKvic4ZKJFxGE7fHcMo5N18VQmkVjseRFjU,8059
|
|
262
262
|
sky/provision/kubernetes/manifests/fusermount-server-daemonset.yaml,sha256=S87GNAbDqgTrLuxF-afPAqQ0V-i41El4s_9KBZMuaag,1331
|
|
263
263
|
sky/provision/lambda_cloud/__init__.py,sha256=6EEvSgtUeEiup9ivIFevHmgv0GqleroO2X0K7TRa2nE,612
|
|
@@ -322,13 +322,13 @@ sky/serve/load_balancing_policies.py,sha256=Ssr0GtHKyzzAIEOUAMCLvND5rapmrpxI-OQe
|
|
|
322
322
|
sky/serve/replica_managers.py,sha256=x8c1tRIQMN4dVzVUHJpZYSEBtEjOCbcwmqZ_GkVzpnc,64785
|
|
323
323
|
sky/serve/serve_state.py,sha256=_VinToQp_E0a48qnBvQm5BBlqGlAvuylsGMhxYoKp-w,22590
|
|
324
324
|
sky/serve/serve_utils.py,sha256=EZ5BlkoNDrAsvNY7njlUnLAuncEhkBUJUxwR1gmCuR8,50443
|
|
325
|
-
sky/serve/service.py,sha256=
|
|
325
|
+
sky/serve/service.py,sha256=yQst8qtedLQy1h9F4v2UFumZvHBGn2rOXW3HjUzN8Z4,15072
|
|
326
326
|
sky/serve/service_spec.py,sha256=t7wh7sx68DKjPyrk1Ub-c1ZjkWD8ehG-YOj9CNdC9qQ,18552
|
|
327
327
|
sky/serve/spot_placer.py,sha256=auRlYZNg8uIW-lxiirxpDP-iIaJtkrhesm6OGMgwPq4,11288
|
|
328
328
|
sky/serve/client/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
329
329
|
sky/serve/client/sdk.py,sha256=PB3U8SgUukBJ3BramFbxeJHHWdjyysqG9V9hIMW9bRE,15184
|
|
330
330
|
sky/serve/server/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
331
|
-
sky/serve/server/core.py,sha256
|
|
331
|
+
sky/serve/server/core.py,sha256=6kYcTh_GdIO1QOxL6ONl1BX8nH4qk8E5npDhqMObsPU,43134
|
|
332
332
|
sky/serve/server/server.py,sha256=A9K37a0nQgZeN3eKWv62Oh2C5TSAReTZ9pHmztqlI-c,4396
|
|
333
333
|
sky/server/__init__.py,sha256=MPPBqFzXz6Jv5QSk6td_IcvnfXfNErDZVcizu4MLRow,27
|
|
334
334
|
sky/server/common.py,sha256=XRLjlT0zSivdLRukjAQyWrwCVC6Qo-GY3XUjJJRViYQ,35384
|
|
@@ -336,7 +336,7 @@ sky/server/config.py,sha256=XWf5Kw4am6vMO5wcyWevbQAFH-dmKb7AMEgDzD083-M,8538
|
|
|
336
336
|
sky/server/constants.py,sha256=v6RP8ZEwCNsxO2s2IukgOcEldZO5bvcQaxmOTA0Cf0g,2321
|
|
337
337
|
sky/server/metrics.py,sha256=6H6n6dq_C5HMaU97mJlRUB9bqOEA_k205PO15wE3AWk,3648
|
|
338
338
|
sky/server/rest.py,sha256=-oDsI8-NmIcb7aqy_8USB4lQbPWdQibST59GJVtFUi8,7983
|
|
339
|
-
sky/server/server.py,sha256=
|
|
339
|
+
sky/server/server.py,sha256=yBHi0S_zlXlpcjHpWQ05Uf1wturTdZboaQdZ1D-vZe4,73738
|
|
340
340
|
sky/server/state.py,sha256=YbVOMJ1JipQQv17gLIGyiGN7MKfnP83qlUa5MB1z0Yk,747
|
|
341
341
|
sky/server/stream_utils.py,sha256=RS4RuMxQqTGqp3uxzZVtmFWzos4d49P7hMX_VklzEVU,9189
|
|
342
342
|
sky/server/uvicorn.py,sha256=I-JUJwgUznt87hboDd66NTRaw0WtfFVzxxtoxowNqBg,9266
|
|
@@ -410,7 +410,7 @@ sky/templates/oci-ray.yml.j2,sha256=TvB2at81DuXSG1QV4dxmqjjMdfDTsCU5T4JH01vI5DU,
|
|
|
410
410
|
sky/templates/paperspace-ray.yml.j2,sha256=PcB21RMfxO5Gne1qT7J_JjnZENLVHrAwVegjIEb_F6E,4283
|
|
411
411
|
sky/templates/runpod-ray.yml.j2,sha256=By2b6BLyaon4dx0b3elXCyLN7Dk1lxvMkYikZgCxjG4,4617
|
|
412
412
|
sky/templates/scp-ray.yml.j2,sha256=48b_mKtkx_fyEPQUQ_i6YMmylrtGbvIIUkQsuvgTU3I,3481
|
|
413
|
-
sky/templates/sky-serve-controller.yaml.j2,sha256=
|
|
413
|
+
sky/templates/sky-serve-controller.yaml.j2,sha256=AFOIP3yqOKSvaBDxhTbop70h_SXHiUeEjmUx8ygpBtM,2202
|
|
414
414
|
sky/templates/skypilot-server-kubernetes-proxy.sh,sha256=n5swq5LauF9dnhDWMYqFFHkXeJ44Zjmg1RVbF60jNbE,1079
|
|
415
415
|
sky/templates/vast-ray.yml.j2,sha256=Kjq8AtfL86VllOB8vDSnZeKsyv4QJV-80diXO2xuB6g,3020
|
|
416
416
|
sky/templates/vsphere-ray.yml.j2,sha256=zSCAptPE40wQcxn-bL5GPU-ac5mV9kgsbJXcSJTSWHA,3886
|
|
@@ -453,7 +453,7 @@ sky/utils/resource_checker.py,sha256=N18XhoVIqjY1VzmKvxQxRchRgC2WIgcEQyHDkLvg4Y8
|
|
|
453
453
|
sky/utils/resources_utils.py,sha256=zcJXHYQt6WtQHKuWEif1QP1NtSO7XQYJBaEs625yV1Y,15958
|
|
454
454
|
sky/utils/rich_console_utils.py,sha256=wPvAlshaFHuMZSjiDnaK3OSBppZLBjAn-lj7AvxNBQk,553
|
|
455
455
|
sky/utils/rich_utils.py,sha256=iR6Gf8ZewE9sut4uhkmZwtEelzm3FvckM9K41meQnWM,14650
|
|
456
|
-
sky/utils/schemas.py,sha256
|
|
456
|
+
sky/utils/schemas.py,sha256=PB7uYrNsEVu0kHiwZksZK6k35ZP7SnkUuXtphD_g2Lc,55204
|
|
457
457
|
sky/utils/status_lib.py,sha256=QGkd6COD1GX1h30Mk9RMUdyeUOMJs5971GkxTcFgdsU,1705
|
|
458
458
|
sky/utils/subprocess_utils.py,sha256=tOpFY_1ml7JkVGAN1o473lcKPklGR95qBCW61eu8kEo,15773
|
|
459
459
|
sky/utils/tempstore.py,sha256=3S5fJ3UjnE12ve38c3MpTXpoRWfDSGndZpqNe7P_8aU,2148
|
|
@@ -477,7 +477,7 @@ sky/utils/kubernetes/deploy_remote_cluster.py,sha256=KECOmpIt_i1qnrC2Ju7sKUlTbQY
|
|
|
477
477
|
sky/utils/kubernetes/exec_kubeconfig_converter.py,sha256=fCWX13qvbqvoHghwjWjZdmzfOrcmSiTaQnP6owJ05A8,2256
|
|
478
478
|
sky/utils/kubernetes/generate_kind_config.py,sha256=_TNLnifA_r7-CRq083IP1xjelYqiLjzQX9ohuqYpDH8,3187
|
|
479
479
|
sky/utils/kubernetes/generate_kubeconfig.sh,sha256=JnHiFJ8RTULB55jpbbmQrixzxLpc2otbRnUleDakMR4,10694
|
|
480
|
-
sky/utils/kubernetes/gpu_labeler.py,sha256=
|
|
480
|
+
sky/utils/kubernetes/gpu_labeler.py,sha256=3v5Gwdwt0O5R_7moGCI5C2VgeQeOw9nVbI4JJS8TkUY,10352
|
|
481
481
|
sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=k0TBoQ4zgf79-sVkixKSGYFHQ7ZWF5gdVIZPupCCo9A,1224
|
|
482
482
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
|
483
483
|
sky/utils/kubernetes/kubernetes_deploy_utils.py,sha256=lF9hMg0TVVX1jE8W1xmzkaz66YOwFJvGNws3ICC2syA,15932
|
|
@@ -497,9 +497,9 @@ sky/workspaces/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
|
497
497
|
sky/workspaces/core.py,sha256=MkQoVqWN67tf4VRq284U9vgAw4lwb_cpUfwHQT4V9Ow,16598
|
|
498
498
|
sky/workspaces/server.py,sha256=Box45DS54xXGHy7I3tGKGy-JP0a8G_z6IhfvGlEXtsA,3439
|
|
499
499
|
sky/workspaces/utils.py,sha256=IIAiFoS6sdb2t0X5YoX9AietpTanZUQNTK8cePun-sY,2143
|
|
500
|
-
skypilot_nightly-1.0.0.
|
|
501
|
-
skypilot_nightly-1.0.0.
|
|
502
|
-
skypilot_nightly-1.0.0.
|
|
503
|
-
skypilot_nightly-1.0.0.
|
|
504
|
-
skypilot_nightly-1.0.0.
|
|
505
|
-
skypilot_nightly-1.0.0.
|
|
500
|
+
skypilot_nightly-1.0.0.dev20250729.dist-info/licenses/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
|
501
|
+
skypilot_nightly-1.0.0.dev20250729.dist-info/METADATA,sha256=e_BYSuTOuyMDtVrwniLYy43gRgd6PBPaoYR_eRS1ZRM,19691
|
|
502
|
+
skypilot_nightly-1.0.0.dev20250729.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
503
|
+
skypilot_nightly-1.0.0.dev20250729.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
|
504
|
+
skypilot_nightly-1.0.0.dev20250729.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
|
505
|
+
skypilot_nightly-1.0.0.dev20250729.dist-info/RECORD,,
|
/sky/dashboard/out/_next/static/{lVqpIJvikPZAX3dgsm6_q → Q2sVXboB_t7cgvntL-6nD}/_buildManifest.js
RENAMED
|
File without changes
|
/sky/dashboard/out/_next/static/{lVqpIJvikPZAX3dgsm6_q → Q2sVXboB_t7cgvntL-6nD}/_ssgManifest.js
RENAMED
|
File without changes
|
{skypilot_nightly-1.0.0.dev20250726.dist-info → skypilot_nightly-1.0.0.dev20250729.dist-info}/WHEEL
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|