skypilot-nightly 1.0.0.dev20250724__py3-none-any.whl → 1.0.0.dev20250726__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 +28 -2
- sky/backends/cloud_vm_ray_backend.py +1 -1
- sky/client/cli/command.py +55 -16
- sky/clouds/aws.py +1 -1
- sky/clouds/azure.py +1 -1
- sky/clouds/cloud.py +1 -1
- sky/clouds/cudo.py +1 -1
- sky/clouds/do.py +1 -1
- sky/clouds/fluidstack.py +1 -1
- sky/clouds/gcp.py +1 -1
- sky/clouds/hyperbolic.py +1 -1
- sky/clouds/ibm.py +1 -1
- sky/clouds/kubernetes.py +11 -9
- sky/clouds/lambda_cloud.py +1 -1
- sky/clouds/nebius.py +1 -1
- sky/clouds/oci.py +1 -1
- sky/clouds/paperspace.py +1 -1
- sky/clouds/runpod.py +1 -1
- sky/clouds/scp.py +1 -1
- sky/clouds/vast.py +1 -1
- sky/clouds/vsphere.py +1 -1
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/{webpack-b6447da22305b14a.js → webpack-a305898dc479711e.js} +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/global_user_state.py +12 -23
- sky/jobs/state.py +12 -24
- sky/jobs/utils.py +5 -0
- sky/provision/kubernetes/utils.py +9 -0
- sky/provision/kubernetes/volume.py +1 -1
- sky/resources.py +1 -1
- sky/server/common.py +9 -0
- sky/server/server.py +3 -0
- sky/skylet/job_lib.py +4 -0
- sky/skylet/log_lib.py +5 -3
- sky/task.py +1 -1
- sky/templates/aws-ray.yml.j2 +7 -1
- sky/templates/azure-ray.yml.j2 +1 -1
- sky/templates/do-ray.yml.j2 +1 -1
- sky/templates/kubernetes-ray.yml.j2 +6 -0
- sky/templates/lambda-ray.yml.j2 +1 -1
- sky/templates/nebius-ray.yml.j2 +1 -1
- sky/templates/paperspace-ray.yml.j2 +1 -1
- sky/templates/runpod-ray.yml.j2 +1 -1
- sky/utils/db/migration_utils.py +60 -19
- sky/utils/schemas.py +14 -1
- sky/utils/volume.py +78 -0
- sky/volumes/__init__.py +13 -0
- sky/volumes/client/sdk.py +19 -2
- sky/volumes/server/server.py +1 -1
- sky/volumes/utils.py +1 -1
- sky/volumes/volume.py +0 -73
- {skypilot_nightly-1.0.0.dev20250724.dist-info → skypilot_nightly-1.0.0.dev20250726.dist-info}/METADATA +13 -2
- {skypilot_nightly-1.0.0.dev20250724.dist-info → skypilot_nightly-1.0.0.dev20250726.dist-info}/RECORD +73 -72
- /sky/dashboard/out/_next/static/{BURfWrKsQk9psMPv0OXrh → lVqpIJvikPZAX3dgsm6_q}/_buildManifest.js +0 -0
- /sky/dashboard/out/_next/static/{BURfWrKsQk9psMPv0OXrh → lVqpIJvikPZAX3dgsm6_q}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250724.dist-info → skypilot_nightly-1.0.0.dev20250726.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250724.dist-info → skypilot_nightly-1.0.0.dev20250726.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250724.dist-info → skypilot_nightly-1.0.0.dev20250726.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250724.dist-info → skypilot_nightly-1.0.0.dev20250726.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 = 'dfa392a8416b3aa6c1e2a88c0d19d954408ca4ea'
|
|
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.dev20250726'
|
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
|
40
40
|
|
|
41
41
|
|
sky/backends/backend_utils.py
CHANGED
|
@@ -35,6 +35,7 @@ from sky.adaptors import common as adaptors_common
|
|
|
35
35
|
from sky.jobs import utils as managed_job_utils
|
|
36
36
|
from sky.provision import instance_setup
|
|
37
37
|
from sky.provision.kubernetes import utils as kubernetes_utils
|
|
38
|
+
from sky.server.requests import requests as requests_lib
|
|
38
39
|
from sky.skylet import constants
|
|
39
40
|
from sky.usage import usage_lib
|
|
40
41
|
from sky.utils import cluster_utils
|
|
@@ -67,7 +68,7 @@ if typing.TYPE_CHECKING:
|
|
|
67
68
|
from sky import task as task_lib
|
|
68
69
|
from sky.backends import cloud_vm_ray_backend
|
|
69
70
|
from sky.backends import local_docker_backend
|
|
70
|
-
from sky.
|
|
71
|
+
from sky.utils import volume as volume_lib
|
|
71
72
|
else:
|
|
72
73
|
yaml = adaptors_common.LazyImport('yaml')
|
|
73
74
|
requests = adaptors_common.LazyImport('requests')
|
|
@@ -798,6 +799,12 @@ def write_cluster_config(
|
|
|
798
799
|
'volume_name_on_cloud': vol.volume_config.name_on_cloud,
|
|
799
800
|
})
|
|
800
801
|
|
|
802
|
+
runcmd = skypilot_config.get_effective_region_config(
|
|
803
|
+
cloud=str(to_provision.cloud).lower(),
|
|
804
|
+
region=to_provision.region,
|
|
805
|
+
keys=('post_provision_runcmd',),
|
|
806
|
+
default_value=None)
|
|
807
|
+
|
|
801
808
|
# Use a tmp file path to avoid incomplete YAML file being re-used in the
|
|
802
809
|
# future.
|
|
803
810
|
tmp_yaml_path = yaml_path + '.tmp'
|
|
@@ -833,7 +840,7 @@ def write_cluster_config(
|
|
|
833
840
|
# User-supplied remote_identity
|
|
834
841
|
'remote_identity': remote_identity,
|
|
835
842
|
# The reservation pools that specified by the user. This is
|
|
836
|
-
# currently only used by GCP.
|
|
843
|
+
# currently only used by AWS and GCP.
|
|
837
844
|
'specific_reservations': specific_reservations,
|
|
838
845
|
|
|
839
846
|
# Conda setup
|
|
@@ -896,6 +903,10 @@ def write_cluster_config(
|
|
|
896
903
|
|
|
897
904
|
# Volume mounts
|
|
898
905
|
'volume_mounts': volume_mount_vars,
|
|
906
|
+
|
|
907
|
+
# runcmd to append to the cloud-init cloud config passed to the
|
|
908
|
+
# machine's UserData. This is currently only used by AWS.
|
|
909
|
+
'runcmd': runcmd,
|
|
899
910
|
}),
|
|
900
911
|
output_path=tmp_yaml_path)
|
|
901
912
|
config_dict['cluster_name'] = cluster_name
|
|
@@ -2831,6 +2842,21 @@ def get_clusters(
|
|
|
2831
2842
|
force_refresh_statuses = None
|
|
2832
2843
|
|
|
2833
2844
|
def _refresh_cluster(cluster_name):
|
|
2845
|
+
# TODO(syang): we should try not to leak
|
|
2846
|
+
# request info in backend_utils.py.
|
|
2847
|
+
# Refactor this to use some other info to
|
|
2848
|
+
# determine if a launch is in progress.
|
|
2849
|
+
request = requests_lib.get_request_tasks(
|
|
2850
|
+
status=[requests_lib.RequestStatus.RUNNING],
|
|
2851
|
+
cluster_names=[cluster_name],
|
|
2852
|
+
include_request_names=['sky.launch'])
|
|
2853
|
+
if len(request) > 0:
|
|
2854
|
+
# There is an active launch request on the cluster,
|
|
2855
|
+
# so we don't want to update the cluster status until
|
|
2856
|
+
# the request is completed.
|
|
2857
|
+
logger.debug(f'skipping refresh for cluster {cluster_name} '
|
|
2858
|
+
'as there is an active launch request')
|
|
2859
|
+
return global_user_state.get_cluster_from_name(cluster_name)
|
|
2834
2860
|
try:
|
|
2835
2861
|
record = refresh_cluster_record(
|
|
2836
2862
|
cluster_name,
|
|
@@ -73,7 +73,7 @@ from sky.utils import status_lib
|
|
|
73
73
|
from sky.utils import subprocess_utils
|
|
74
74
|
from sky.utils import timeline
|
|
75
75
|
from sky.utils import ux_utils
|
|
76
|
-
from sky.
|
|
76
|
+
from sky.utils import volume as volume_lib
|
|
77
77
|
|
|
78
78
|
if typing.TYPE_CHECKING:
|
|
79
79
|
from sky import dag
|
sky/client/cli/command.py
CHANGED
|
@@ -24,6 +24,7 @@ listed in "sky --help". Take care to put logically connected commands close to
|
|
|
24
24
|
each other.
|
|
25
25
|
"""
|
|
26
26
|
import collections
|
|
27
|
+
import concurrent.futures
|
|
27
28
|
import fnmatch
|
|
28
29
|
import os
|
|
29
30
|
import pathlib
|
|
@@ -358,6 +359,9 @@ def _install_shell_completion(ctx: click.Context, param: click.Parameter,
|
|
|
358
359
|
bashrc_diff = ('\n# For SkyPilot shell completion'
|
|
359
360
|
'\n. ~/.sky/.sky-complete.bash')
|
|
360
361
|
|
|
362
|
+
cmd: Optional[str] = None
|
|
363
|
+
reload_cmd: Optional[str] = None
|
|
364
|
+
|
|
361
365
|
if value == 'bash':
|
|
362
366
|
install_cmd = f'_SKY_COMPLETE=bash_source sky > \
|
|
363
367
|
~/.sky/.sky-complete.bash && \
|
|
@@ -389,6 +393,7 @@ def _install_shell_completion(ctx: click.Context, param: click.Parameter,
|
|
|
389
393
|
click.secho(f'Unsupported shell: {value}', fg='red')
|
|
390
394
|
ctx.exit()
|
|
391
395
|
|
|
396
|
+
assert cmd is not None # This should never be None due to ctx.exit() above
|
|
392
397
|
try:
|
|
393
398
|
subprocess.run(cmd,
|
|
394
399
|
shell=True,
|
|
@@ -420,6 +425,9 @@ def _uninstall_shell_completion(ctx: click.Context, param: click.Parameter,
|
|
|
420
425
|
else:
|
|
421
426
|
value = os.path.basename(os.environ['SHELL'])
|
|
422
427
|
|
|
428
|
+
cmd: Optional[str] = None
|
|
429
|
+
reload_cmd: Optional[str] = None
|
|
430
|
+
|
|
423
431
|
if value == 'bash':
|
|
424
432
|
cmd = 'sed -i"" -e "/# For SkyPilot shell completion/d" ~/.bashrc && \
|
|
425
433
|
sed -i"" -e "/sky-complete.bash/d" ~/.bashrc && \
|
|
@@ -444,6 +452,7 @@ def _uninstall_shell_completion(ctx: click.Context, param: click.Parameter,
|
|
|
444
452
|
click.secho(f'Unsupported shell: {value}', fg='red')
|
|
445
453
|
ctx.exit()
|
|
446
454
|
|
|
455
|
+
assert cmd is not None # This should never be None due to ctx.exit() above
|
|
447
456
|
try:
|
|
448
457
|
subprocess.run(cmd, shell=True, check=True)
|
|
449
458
|
click.secho(f'Shell completion uninstalled for {value}', fg='green')
|
|
@@ -1745,19 +1754,16 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
|
|
|
1745
1754
|
# Do not show job queue if user specifies clusters, and if user
|
|
1746
1755
|
# specifies --ip or --endpoint(s).
|
|
1747
1756
|
show_managed_jobs = show_managed_jobs and not any([clusters, ip, endpoints])
|
|
1748
|
-
if show_managed_jobs:
|
|
1749
|
-
managed_jobs_queue_request_id = managed_jobs.queue(refresh=False,
|
|
1750
|
-
skip_finished=True,
|
|
1751
|
-
all_users=all_users)
|
|
1752
1757
|
show_endpoints = endpoints or endpoint is not None
|
|
1753
1758
|
show_single_endpoint = endpoint is not None
|
|
1754
1759
|
show_services = show_services and not any([clusters, ip, endpoints])
|
|
1755
|
-
if show_services:
|
|
1756
|
-
# Run the sky serve service query in parallel to speed up the
|
|
1757
|
-
# status query.
|
|
1758
|
-
service_status_request_id = serve_lib.status(service_names=None)
|
|
1759
1760
|
|
|
1760
|
-
|
|
1761
|
+
query_clusters: Optional[List[str]] = None if not clusters else clusters
|
|
1762
|
+
refresh_mode = common.StatusRefreshMode.NONE
|
|
1763
|
+
if refresh:
|
|
1764
|
+
refresh_mode = common.StatusRefreshMode.FORCE
|
|
1765
|
+
|
|
1766
|
+
# Phase 1: Validate arguments for IP/endpoint queries
|
|
1761
1767
|
if ip or show_endpoints:
|
|
1762
1768
|
if refresh:
|
|
1763
1769
|
raise click.UsageError(
|
|
@@ -1791,9 +1797,19 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
|
|
|
1791
1797
|
flag='ip' if ip else
|
|
1792
1798
|
('endpoint port'
|
|
1793
1799
|
if show_single_endpoint else 'endpoints')))
|
|
1794
|
-
|
|
1800
|
+
|
|
1801
|
+
# Phase 2: Parallel submission of all API requests
|
|
1802
|
+
def submit_managed_jobs():
|
|
1803
|
+
return managed_jobs.queue(refresh=False,
|
|
1804
|
+
skip_finished=True,
|
|
1805
|
+
all_users=all_users)
|
|
1806
|
+
|
|
1807
|
+
def submit_services() -> Optional[str]:
|
|
1808
|
+
return serve_lib.status(service_names=None)
|
|
1809
|
+
|
|
1810
|
+
def submit_workspace() -> Optional[str]:
|
|
1795
1811
|
try:
|
|
1796
|
-
|
|
1812
|
+
return sdk.workspaces()
|
|
1797
1813
|
except RuntimeError:
|
|
1798
1814
|
# Backward compatibility for API server before #5660.
|
|
1799
1815
|
# TODO(zhwu): remove this after 0.10.0.
|
|
@@ -1802,12 +1818,35 @@ def status(verbose: bool, refresh: bool, ip: bool, endpoints: bool,
|
|
|
1802
1818
|
'workspaces. Update with: sky api stop; '
|
|
1803
1819
|
'sky api start'
|
|
1804
1820
|
f'{colorama.Style.RESET_ALL}')
|
|
1805
|
-
|
|
1821
|
+
return None
|
|
1806
1822
|
|
|
1807
|
-
|
|
1808
|
-
|
|
1809
|
-
|
|
1810
|
-
|
|
1823
|
+
managed_jobs_queue_request_id = None
|
|
1824
|
+
service_status_request_id = None
|
|
1825
|
+
workspace_request_id = None
|
|
1826
|
+
|
|
1827
|
+
# Submit all requests in parallel
|
|
1828
|
+
with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
|
|
1829
|
+
if show_managed_jobs:
|
|
1830
|
+
managed_jobs_request_future = executor.submit(submit_managed_jobs)
|
|
1831
|
+
if show_services:
|
|
1832
|
+
services_request_future = executor.submit(submit_services)
|
|
1833
|
+
if not (ip or show_endpoints):
|
|
1834
|
+
workspace_request_future = executor.submit(submit_workspace)
|
|
1835
|
+
|
|
1836
|
+
# Get the request IDs
|
|
1837
|
+
if show_managed_jobs:
|
|
1838
|
+
managed_jobs_queue_request_id = managed_jobs_request_future.result()
|
|
1839
|
+
if show_services:
|
|
1840
|
+
service_status_request_id = services_request_future.result()
|
|
1841
|
+
if not (ip or show_endpoints):
|
|
1842
|
+
workspace_request_id = workspace_request_future.result()
|
|
1843
|
+
|
|
1844
|
+
managed_jobs_queue_request_id = '' if not managed_jobs_queue_request_id \
|
|
1845
|
+
else managed_jobs_queue_request_id
|
|
1846
|
+
service_status_request_id = '' if not service_status_request_id \
|
|
1847
|
+
else service_status_request_id
|
|
1848
|
+
|
|
1849
|
+
# Phase 3: Get cluster records and handle special cases
|
|
1811
1850
|
cluster_records = _get_cluster_records_and_set_ssh_config(
|
|
1812
1851
|
query_clusters, refresh_mode, all_users)
|
|
1813
1852
|
|
sky/clouds/aws.py
CHANGED
|
@@ -32,7 +32,7 @@ if typing.TYPE_CHECKING:
|
|
|
32
32
|
# renaming to avoid shadowing variables
|
|
33
33
|
from sky import resources as resources_lib
|
|
34
34
|
from sky.utils import status_lib
|
|
35
|
-
from sky.
|
|
35
|
+
from sky.utils import volume as volume_lib
|
|
36
36
|
|
|
37
37
|
logger = sky_logging.init_logger(__name__)
|
|
38
38
|
|
sky/clouds/azure.py
CHANGED
sky/clouds/cloud.py
CHANGED
|
@@ -27,7 +27,7 @@ from sky.utils import ux_utils
|
|
|
27
27
|
if typing.TYPE_CHECKING:
|
|
28
28
|
from sky import resources as resources_lib
|
|
29
29
|
from sky.utils import status_lib
|
|
30
|
-
from sky.
|
|
30
|
+
from sky.utils import volume as volume_lib
|
|
31
31
|
|
|
32
32
|
|
|
33
33
|
class CloudImplementationFeatures(enum.Enum):
|
sky/clouds/cudo.py
CHANGED
|
@@ -12,7 +12,7 @@ from sky.utils import resources_utils
|
|
|
12
12
|
if typing.TYPE_CHECKING:
|
|
13
13
|
# Renaming to avoid shadowing variables.
|
|
14
14
|
from sky import resources as resources_lib
|
|
15
|
-
from sky.
|
|
15
|
+
from sky.utils import volume as volume_lib
|
|
16
16
|
|
|
17
17
|
_CREDENTIAL_FILES = [
|
|
18
18
|
# credential files for Cudo,
|
sky/clouds/do.py
CHANGED
sky/clouds/fluidstack.py
CHANGED
|
@@ -21,7 +21,7 @@ if typing.TYPE_CHECKING:
|
|
|
21
21
|
|
|
22
22
|
# Renaming to avoid shadowing variables.
|
|
23
23
|
from sky import resources as resources_lib
|
|
24
|
-
from sky.
|
|
24
|
+
from sky.utils import volume as volume_lib
|
|
25
25
|
else:
|
|
26
26
|
requests = adaptors_common.LazyImport('requests')
|
|
27
27
|
|
sky/clouds/gcp.py
CHANGED
|
@@ -29,7 +29,7 @@ from sky.utils import ux_utils
|
|
|
29
29
|
if typing.TYPE_CHECKING:
|
|
30
30
|
from sky import resources
|
|
31
31
|
from sky.utils import status_lib
|
|
32
|
-
from sky.
|
|
32
|
+
from sky.utils import volume as volume_lib
|
|
33
33
|
|
|
34
34
|
logger = sky_logging.init_logger(__name__)
|
|
35
35
|
|
sky/clouds/hyperbolic.py
CHANGED
|
@@ -13,7 +13,7 @@ from sky.utils.resources_utils import DiskTier
|
|
|
13
13
|
|
|
14
14
|
if typing.TYPE_CHECKING:
|
|
15
15
|
from sky import resources as resources_lib
|
|
16
|
-
from sky.
|
|
16
|
+
from sky.utils import volume as volume_lib
|
|
17
17
|
|
|
18
18
|
|
|
19
19
|
@registry.CLOUD_REGISTRY.register
|
sky/clouds/ibm.py
CHANGED
|
@@ -18,7 +18,7 @@ from sky.utils import ux_utils
|
|
|
18
18
|
if typing.TYPE_CHECKING:
|
|
19
19
|
# renaming to avoid shadowing variables
|
|
20
20
|
from sky import resources as resources_lib
|
|
21
|
-
from sky.
|
|
21
|
+
from sky.utils import volume as volume_lib
|
|
22
22
|
|
|
23
23
|
logger = sky_logging.init_logger(__name__)
|
|
24
24
|
|
sky/clouds/kubernetes.py
CHANGED
|
@@ -29,7 +29,7 @@ from sky.utils import kubernetes_enums
|
|
|
29
29
|
from sky.utils import registry
|
|
30
30
|
from sky.utils import resources_utils
|
|
31
31
|
from sky.utils import schemas
|
|
32
|
-
from sky.
|
|
32
|
+
from sky.utils import volume as volume_lib
|
|
33
33
|
|
|
34
34
|
if typing.TYPE_CHECKING:
|
|
35
35
|
# Renaming to avoid shadowing variables.
|
|
@@ -84,8 +84,8 @@ class Kubernetes(clouds.Cloud):
|
|
|
84
84
|
('Customized multiple network interfaces are not supported in '
|
|
85
85
|
'Kubernetes.'),
|
|
86
86
|
clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER:
|
|
87
|
-
('Custom network tier is
|
|
88
|
-
|
|
87
|
+
('Custom network tier is not supported in this Kubernetes '
|
|
88
|
+
'cluster.'),
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
IMAGE_CPU = 'skypilot:custom-cpu-ubuntu-2004'
|
|
@@ -616,12 +616,9 @@ class Kubernetes(clouds.Cloud):
|
|
|
616
616
|
if clouds.CloudImplementationFeatures.CUSTOM_NETWORK_TIER \
|
|
617
617
|
not in unsupported_features:
|
|
618
618
|
# Add high-performance networking environment variables for
|
|
619
|
-
#
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
):
|
|
623
|
-
network_env_vars = network_type.get_network_env_vars()
|
|
624
|
-
k8s_env_vars.update(network_env_vars)
|
|
619
|
+
# clusters with high performance networking
|
|
620
|
+
network_env_vars = network_type.get_network_env_vars()
|
|
621
|
+
k8s_env_vars.update(network_env_vars)
|
|
625
622
|
|
|
626
623
|
# We specify object-store-memory to be 500MB to avoid taking up too
|
|
627
624
|
# much memory on the head node. 'num-cpus' should be set to limit
|
|
@@ -743,6 +740,7 @@ class Kubernetes(clouds.Cloud):
|
|
|
743
740
|
'avoid_label_keys': avoid_label_keys,
|
|
744
741
|
'k8s_enable_flex_start': enable_flex_start,
|
|
745
742
|
'k8s_max_run_duration_seconds': max_run_duration_seconds,
|
|
743
|
+
'k8s_network_type': network_type.value,
|
|
746
744
|
}
|
|
747
745
|
|
|
748
746
|
# Add kubecontext if it is set. It may be None if SkyPilot is running
|
|
@@ -1094,6 +1092,10 @@ class Kubernetes(clouds.Cloud):
|
|
|
1094
1092
|
if label_key.startswith('nebius.com/'):
|
|
1095
1093
|
return (KubernetesHighPerformanceNetworkType.NEBIUS,
|
|
1096
1094
|
'')
|
|
1095
|
+
if label_key.startswith('ib.coreweave.cloud/'):
|
|
1096
|
+
return (
|
|
1097
|
+
KubernetesHighPerformanceNetworkType.COREWEAVE,
|
|
1098
|
+
'')
|
|
1097
1099
|
|
|
1098
1100
|
# Check for GKE clusters with specific GPUDirect variants
|
|
1099
1101
|
machine_family = node.metadata.labels.get(
|
sky/clouds/lambda_cloud.py
CHANGED
|
@@ -15,7 +15,7 @@ if typing.TYPE_CHECKING:
|
|
|
15
15
|
|
|
16
16
|
# Renaming to avoid shadowing variables.
|
|
17
17
|
from sky import resources as resources_lib
|
|
18
|
-
from sky.
|
|
18
|
+
from sky.utils import volume as volume_lib
|
|
19
19
|
else:
|
|
20
20
|
requests = adaptors_common.LazyImport('requests')
|
|
21
21
|
|
sky/clouds/nebius.py
CHANGED
sky/clouds/oci.py
CHANGED
|
@@ -40,7 +40,7 @@ from sky.utils import ux_utils
|
|
|
40
40
|
if typing.TYPE_CHECKING:
|
|
41
41
|
# Renaming to avoid shadowing variables.
|
|
42
42
|
from sky import resources as resources_lib
|
|
43
|
-
from sky.
|
|
43
|
+
from sky.utils import volume as volume_lib
|
|
44
44
|
|
|
45
45
|
logger = logging.getLogger(__name__)
|
|
46
46
|
|
sky/clouds/paperspace.py
CHANGED
sky/clouds/runpod.py
CHANGED
sky/clouds/scp.py
CHANGED
|
@@ -19,7 +19,7 @@ from sky.utils import status_lib
|
|
|
19
19
|
if typing.TYPE_CHECKING:
|
|
20
20
|
# Renaming to avoid shadowing variables.
|
|
21
21
|
from sky import resources as resources_lib
|
|
22
|
-
from sky.
|
|
22
|
+
from sky.utils import volume as volume_lib
|
|
23
23
|
|
|
24
24
|
_CREDENTIAL_FILES = [
|
|
25
25
|
'scp_credential',
|
sky/clouds/vast.py
CHANGED
sky/clouds/vsphere.py
CHANGED
|
@@ -18,7 +18,7 @@ if typing.TYPE_CHECKING:
|
|
|
18
18
|
|
|
19
19
|
# Renaming to avoid shadowing variables.
|
|
20
20
|
from sky import resources as resources_lib
|
|
21
|
-
from sky.
|
|
21
|
+
from sky.utils import volume as volume_lib
|
|
22
22
|
else:
|
|
23
23
|
requests = adaptors_common.LazyImport('requests')
|
|
24
24
|
|
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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_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":"lVqpIJvikPZAX3dgsm6_q","assetPrefix":"/dashboard","nextExport":true,"isFallback":false,"gip":true,"scriptLoader":[]}</script></body></html>
|
sky/dashboard/out/_next/static/chunks/{webpack-b6447da22305b14a.js → webpack-a305898dc479711e.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
!function(){"use strict";var e,t,n,r,c,o,f,u,i,a={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var f=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],u=!0,i=0;i<n.length;i++)f>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(u=!1,c<f&&(f=c));if(u){e.splice(o--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=n(f))Object.getOwnPropertyNames(f).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2350===e?"static/chunks/2350.23778a2b19aabd33.js":2369===e?"static/chunks/2369.2d6e4757f8dfc2b7.js":3937===e?"static/chunks/3937.d7f1c55d1916c7f2.js":9025===e?"static/chunks/9025.4a9099bdf3ed4875.js":4937===e?"static/chunks/4937.d75809403fc264ac.js":9984===e?"static/chunks/9984.0460de9d3adf5582.js":2003===e?"static/chunks/2003.b82e6db40ec4c463.js":
|
|
1
|
+
!function(){"use strict";var e,t,n,r,c,o,f,u,i,a={},s={};function d(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={exports:{}},r=!0;try{a[e](n,n.exports,d),r=!1}finally{r&&delete s[e]}return n.exports}d.m=a,e=[],d.O=function(t,n,r,c){if(n){c=c||0;for(var o=e.length;o>0&&e[o-1][2]>c;o--)e[o]=e[o-1];e[o]=[n,r,c];return}for(var f=1/0,o=0;o<e.length;o++){for(var n=e[o][0],r=e[o][1],c=e[o][2],u=!0,i=0;i<n.length;i++)f>=c&&Object.keys(d.O).every(function(e){return d.O[e](n[i])})?n.splice(i--,1):(u=!1,c<f&&(f=c));if(u){e.splice(o--,1);var a=r();void 0!==a&&(t=a)}}return t},d.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return d.d(t,{a:t}),t},n=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__},d.t=function(e,r){if(1&r&&(e=this(e)),8&r||"object"==typeof e&&e&&(4&r&&e.__esModule||16&r&&"function"==typeof e.then))return e;var c=Object.create(null);d.r(c);var o={};t=t||[null,n({}),n([]),n(n)];for(var f=2&r&&e;"object"==typeof f&&!~t.indexOf(f);f=n(f))Object.getOwnPropertyNames(f).forEach(function(t){o[t]=function(){return e[t]}});return o.default=function(){return e},d.d(c,o),c},d.d=function(e,t){for(var n in t)d.o(t,n)&&!d.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},d.f={},d.e=function(e){return Promise.all(Object.keys(d.f).reduce(function(t,n){return d.f[n](e,t),t},[]))},d.u=function(e){return 2350===e?"static/chunks/2350.23778a2b19aabd33.js":2369===e?"static/chunks/2369.2d6e4757f8dfc2b7.js":3937===e?"static/chunks/3937.d7f1c55d1916c7f2.js":9025===e?"static/chunks/9025.4a9099bdf3ed4875.js":4937===e?"static/chunks/4937.d75809403fc264ac.js":9984===e?"static/chunks/9984.0460de9d3adf5582.js":2003===e?"static/chunks/2003.b82e6db40ec4c463.js":691===e?"static/chunks/691.488b4aef97c28727.js":2641===e?"static/chunks/2641.74c19c4d45a2c034.js":9847===e?"static/chunks/9847.387abf8a14d722db.js":4725===e?"static/chunks/4725.66125dcd9832aa5d.js":3785===e?"static/chunks/3785.59705416215ff08b.js":4869===e?"static/chunks/4869.da729a7db3a31f43.js":"static/chunks/"+e+"-"+({616:"162f3033ffcd3d31",938:"7ee806653aef0609",1043:"869d9c78bf5dd3df",1141:"e49a159c30a6c4a7",1272:"1ef0bf0237faccdb",1559:"18717d96ef2fcbe9",1664:"d65361e92b85e786",1871:"ea0e7283886407ca",3698:"9fa11dafb5cad4a6",5230:"df791914b54d91d9",5739:"5ea3ffa10fc884f2",6135:"2abbd0352f8ee061",6601:"d4a381403a8bae91",6989:"eab0e9c16b64fd9f",6990:"f64e03df359e04f7",7411:"2cc31dc0fdf2a9ad",8969:"8e0b2055bf5dd499"})[e]+".js"},d.miniCssF=function(e){},d.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||Function("return this")()}catch(e){if("object"==typeof window)return window}}(),d.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r={},c="_N_E:",d.l=function(e,t,n,o){if(r[e]){r[e].push(t);return}if(void 0!==n)for(var f,u,i=document.getElementsByTagName("script"),a=0;a<i.length;a++){var s=i[a];if(s.getAttribute("src")==e||s.getAttribute("data-webpack")==c+n){f=s;break}}f||(u=!0,(f=document.createElement("script")).charset="utf-8",f.timeout=120,d.nc&&f.setAttribute("nonce",d.nc),f.setAttribute("data-webpack",c+n),f.src=d.tu(e)),r[e]=[t];var l=function(t,n){f.onerror=f.onload=null,clearTimeout(b);var c=r[e];if(delete r[e],f.parentNode&&f.parentNode.removeChild(f),c&&c.forEach(function(e){return e(n)}),t)return t(n)},b=setTimeout(l.bind(null,void 0,{type:"timeout",target:f}),12e4);f.onerror=l.bind(null,f.onerror),f.onload=l.bind(null,f.onload),u&&document.head.appendChild(f)},d.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},d.tt=function(){return void 0===o&&(o={createScriptURL:function(e){return e}},"undefined"!=typeof trustedTypes&&trustedTypes.createPolicy&&(o=trustedTypes.createPolicy("nextjs#bundler",o))),o},d.tu=function(e){return d.tt().createScriptURL(e)},d.p="/dashboard/_next/",f={2272:0},d.f.j=function(e,t){var n=d.o(f,e)?f[e]:void 0;if(0!==n){if(n)t.push(n[2]);else if(2272!=e){var r=new Promise(function(t,r){n=f[e]=[t,r]});t.push(n[2]=r);var c=d.p+d.u(e),o=Error();d.l(c,function(t){if(d.o(f,e)&&(0!==(n=f[e])&&(f[e]=void 0),n)){var r=t&&("load"===t.type?"missing":t.type),c=t&&t.target&&t.target.src;o.message="Loading chunk "+e+" failed.\n("+r+": "+c+")",o.name="ChunkLoadError",o.type=r,o.request=c,n[1](o)}},"chunk-"+e,e)}else f[e]=0}},d.O.j=function(e){return 0===f[e]},u=function(e,t){var n,r,c=t[0],o=t[1],u=t[2],i=0;if(c.some(function(e){return 0!==f[e]})){for(n in o)d.o(o,n)&&(d.m[n]=o[n]);if(u)var a=u(d)}for(e&&e(t);i<c.length;i++)r=c[i],d.o(f,r)&&f[r]&&f[r][0](),f[r]=0;return d.O(a)},(i=self.webpackChunk_N_E=self.webpackChunk_N_E||[]).forEach(u.bind(null,0)),i.push=u.bind(null,i.push.bind(i)),d.nc=void 0}();
|
|
@@ -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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_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":"lVqpIJvikPZAX3dgsm6_q","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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters/[cluster]","query":{},"buildId":"lVqpIJvikPZAX3dgsm6_q","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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/clusters","query":{},"buildId":"lVqpIJvikPZAX3dgsm6_q","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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/config","query":{},"buildId":"lVqpIJvikPZAX3dgsm6_q","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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/","query":{},"buildId":"lVqpIJvikPZAX3dgsm6_q","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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra/[context]","query":{},"buildId":"lVqpIJvikPZAX3dgsm6_q","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-
|
|
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/lVqpIJvikPZAX3dgsm6_q/_buildManifest.js" defer=""></script><script src="/dashboard/_next/static/lVqpIJvikPZAX3dgsm6_q/_ssgManifest.js" defer=""></script></head><body><div id="__next"></div><script id="__NEXT_DATA__" type="application/json">{"props":{"pageProps":{}},"page":"/infra","query":{},"buildId":"lVqpIJvikPZAX3dgsm6_q","assetPrefix":"/dashboard","nextExport":true,"autoExport":true,"isFallback":false,"scriptLoader":[]}</script></body></html>
|