skypilot-nightly 1.0.0.dev20250729__py3-none-any.whl → 1.0.0.dev20250731__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 +4 -1
- sky/backends/cloud_vm_ray_backend.py +4 -3
- sky/catalog/__init__.py +3 -3
- sky/catalog/aws_catalog.py +12 -0
- sky/catalog/common.py +2 -2
- sky/catalog/data_fetchers/fetch_aws.py +13 -1
- sky/client/cli/command.py +448 -60
- sky/client/common.py +12 -9
- sky/clouds/nebius.py +1 -1
- sky/clouds/utils/gcp_utils.py +1 -1
- sky/clouds/vast.py +1 -2
- sky/dashboard/out/404.html +1 -1
- sky/dashboard/out/_next/static/chunks/1043-928582d4860fef92.js +1 -0
- sky/dashboard/out/_next/static/chunks/1141-3f10a5a9f697c630.js +11 -0
- sky/dashboard/out/_next/static/chunks/1559-6c00e20454194859.js +30 -0
- sky/dashboard/out/_next/static/chunks/1664-22b00e32c9ff96a4.js +1 -0
- sky/dashboard/out/_next/static/chunks/1871-1df8b686a51f3e3a.js +6 -0
- sky/dashboard/out/_next/static/chunks/2003.f90b06bb1f914295.js +1 -0
- sky/dashboard/out/_next/static/chunks/2350.fab69e61bac57b23.js +1 -0
- sky/dashboard/out/_next/static/chunks/2369.fc20f0c2c8ed9fe7.js +15 -0
- sky/dashboard/out/_next/static/chunks/2641.142718b6b78a6f9b.js +1 -0
- sky/dashboard/out/_next/static/chunks/3698-7874720877646365.js +1 -0
- sky/dashboard/out/_next/static/chunks/3785.95524bc443db8260.js +1 -0
- sky/dashboard/out/_next/static/chunks/3937.210053269f121201.js +1 -0
- sky/dashboard/out/_next/static/chunks/4725.42f21f250f91f65b.js +1 -0
- sky/dashboard/out/_next/static/chunks/4869.18e6a4361a380763.js +16 -0
- sky/dashboard/out/_next/static/chunks/4937.d6bf67771e353356.js +15 -0
- sky/dashboard/out/_next/static/chunks/5230-f3bb2663e442e86c.js +1 -0
- sky/dashboard/out/_next/static/chunks/5739-d67458fcb1386c92.js +8 -0
- sky/dashboard/out/_next/static/chunks/6135-d0e285ac5f3f2485.js +1 -0
- sky/dashboard/out/_next/static/chunks/616-3d59f75e2ccf9321.js +39 -0
- sky/dashboard/out/_next/static/chunks/6212-7bd06f60ba693125.js +13 -0
- sky/dashboard/out/_next/static/chunks/6601-234b1cf963c7280b.js +1 -0
- sky/dashboard/out/_next/static/chunks/691.6d99cbfba347cebf.js +55 -0
- sky/dashboard/out/_next/static/chunks/6989-983d3ae7a874de98.js +1 -0
- sky/dashboard/out/_next/static/chunks/6990-08b2a1cae076a943.js +1 -0
- sky/dashboard/out/_next/static/chunks/7411-b15471acd2cba716.js +41 -0
- sky/dashboard/out/_next/static/chunks/8969-9a8cca241b30db83.js +1 -0
- sky/dashboard/out/_next/static/chunks/9025.7937c16bc8623516.js +6 -0
- sky/dashboard/out/_next/static/chunks/938-40d15b6261ec8dc1.js +1 -0
- sky/dashboard/out/_next/static/chunks/9847.4c46c5e229c78704.js +30 -0
- sky/dashboard/out/_next/static/chunks/9984.78ee6d2c6fa4b0e8.js +1 -0
- sky/dashboard/out/_next/static/chunks/fd9d1056-86323a29a8f7e46a.js +1 -0
- sky/dashboard/out/_next/static/chunks/framework-cf60a09ccd051a10.js +33 -0
- sky/dashboard/out/_next/static/chunks/main-app-587214043926b3cc.js +1 -0
- sky/dashboard/out/_next/static/chunks/main-f15ccb73239a3bf1.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/_app-a67ae198457b9886.js +34 -0
- sky/dashboard/out/_next/static/chunks/pages/_error-c66a4e8afc46f17b.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-fa63e8b1d203f298.js +11 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-665fa5d96dd41d67.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/clusters-956ad430075efee8.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/config-8620d099cbef8608.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/index-444f1804401f04ea.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/infra/[context]-9cfd875eecb6eaf5.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/infra-0fbdc9072f19fbe2.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-b25c109d6e41bcf4.js +11 -0
- sky/dashboard/out/_next/static/chunks/pages/jobs-6393a9edc7322b54.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/users-34d6bb10c3b3ee3d.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/volumes-225c8dae0634eb7f.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/workspace/new-92f741084a89e27b.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-4d41c9023287f59a.js +1 -0
- sky/dashboard/out/_next/static/chunks/pages/workspaces-e4cb7e97d37e93ad.js +1 -0
- sky/dashboard/out/_next/static/chunks/webpack-5adfc4d4b3db6f71.js +1 -0
- sky/dashboard/out/_next/static/oKqDxFQ88cquF4nQGE_0w/_buildManifest.js +1 -0
- 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/data/data_utils.py +25 -0
- sky/data/storage.py +1219 -1775
- sky/global_user_state.py +18 -8
- sky/jobs/__init__.py +3 -0
- sky/jobs/client/sdk.py +80 -3
- sky/jobs/controller.py +76 -25
- sky/jobs/recovery_strategy.py +80 -34
- sky/jobs/scheduler.py +68 -20
- sky/jobs/server/core.py +228 -136
- sky/jobs/server/server.py +40 -0
- sky/jobs/state.py +164 -31
- sky/jobs/utils.py +144 -68
- sky/logs/aws.py +4 -2
- sky/provision/kubernetes/utils.py +6 -4
- sky/provision/nebius/constants.py +3 -0
- sky/provision/vast/instance.py +2 -1
- sky/provision/vast/utils.py +9 -6
- sky/py.typed +0 -0
- sky/resources.py +24 -14
- sky/schemas/db/spot_jobs/002_cluster_pool.py +42 -0
- sky/serve/autoscalers.py +8 -0
- sky/serve/client/impl.py +188 -0
- sky/serve/client/sdk.py +12 -82
- sky/serve/constants.py +5 -1
- sky/serve/controller.py +5 -0
- sky/serve/replica_managers.py +112 -37
- sky/serve/serve_state.py +16 -6
- sky/serve/serve_utils.py +274 -77
- sky/serve/server/core.py +8 -525
- sky/serve/server/impl.py +709 -0
- sky/serve/service.py +13 -9
- sky/serve/service_spec.py +74 -4
- sky/server/constants.py +1 -1
- sky/server/requests/payloads.py +33 -0
- sky/server/requests/requests.py +18 -1
- sky/server/requests/serializers/decoders.py +12 -3
- sky/server/requests/serializers/encoders.py +13 -2
- sky/server/server.py +6 -1
- sky/skylet/events.py +9 -0
- sky/skypilot_config.py +24 -21
- sky/task.py +41 -11
- sky/templates/jobs-controller.yaml.j2 +3 -0
- sky/templates/sky-serve-controller.yaml.j2 +18 -2
- sky/users/server.py +1 -1
- sky/utils/command_runner.py +4 -2
- sky/utils/controller_utils.py +14 -10
- sky/utils/dag_utils.py +4 -2
- sky/utils/db/migration_utils.py +2 -4
- sky/utils/schemas.py +24 -19
- {skypilot_nightly-1.0.0.dev20250729.dist-info → skypilot_nightly-1.0.0.dev20250731.dist-info}/METADATA +1 -1
- {skypilot_nightly-1.0.0.dev20250729.dist-info → skypilot_nightly-1.0.0.dev20250731.dist-info}/RECORD +135 -130
- sky/dashboard/out/_next/static/Q2sVXboB_t7cgvntL-6nD/_buildManifest.js +0 -1
- sky/dashboard/out/_next/static/chunks/1043-869d9c78bf5dd3df.js +0 -1
- sky/dashboard/out/_next/static/chunks/1141-e49a159c30a6c4a7.js +0 -11
- sky/dashboard/out/_next/static/chunks/1559-18717d96ef2fcbe9.js +0 -30
- sky/dashboard/out/_next/static/chunks/1664-d65361e92b85e786.js +0 -1
- sky/dashboard/out/_next/static/chunks/1871-ea0e7283886407ca.js +0 -6
- sky/dashboard/out/_next/static/chunks/2003.b82e6db40ec4c463.js +0 -1
- sky/dashboard/out/_next/static/chunks/2350.23778a2b19aabd33.js +0 -1
- sky/dashboard/out/_next/static/chunks/2369.2d6e4757f8dfc2b7.js +0 -15
- sky/dashboard/out/_next/static/chunks/2641.74c19c4d45a2c034.js +0 -1
- sky/dashboard/out/_next/static/chunks/3698-9fa11dafb5cad4a6.js +0 -1
- sky/dashboard/out/_next/static/chunks/3785.59705416215ff08b.js +0 -1
- sky/dashboard/out/_next/static/chunks/3937.d7f1c55d1916c7f2.js +0 -1
- sky/dashboard/out/_next/static/chunks/4725.66125dcd9832aa5d.js +0 -1
- sky/dashboard/out/_next/static/chunks/4869.da729a7db3a31f43.js +0 -16
- sky/dashboard/out/_next/static/chunks/4937.d75809403fc264ac.js +0 -15
- sky/dashboard/out/_next/static/chunks/5230-df791914b54d91d9.js +0 -1
- sky/dashboard/out/_next/static/chunks/5739-5ea3ffa10fc884f2.js +0 -8
- sky/dashboard/out/_next/static/chunks/6135-2abbd0352f8ee061.js +0 -1
- sky/dashboard/out/_next/static/chunks/616-162f3033ffcd3d31.js +0 -39
- sky/dashboard/out/_next/static/chunks/6601-d4a381403a8bae91.js +0 -1
- sky/dashboard/out/_next/static/chunks/691.488b4aef97c28727.js +0 -55
- sky/dashboard/out/_next/static/chunks/6989-eab0e9c16b64fd9f.js +0 -1
- sky/dashboard/out/_next/static/chunks/6990-f64e03df359e04f7.js +0 -1
- sky/dashboard/out/_next/static/chunks/7411-2cc31dc0fdf2a9ad.js +0 -41
- sky/dashboard/out/_next/static/chunks/8969-8e0b2055bf5dd499.js +0 -1
- sky/dashboard/out/_next/static/chunks/9025.4a9099bdf3ed4875.js +0 -6
- sky/dashboard/out/_next/static/chunks/938-7ee806653aef0609.js +0 -1
- sky/dashboard/out/_next/static/chunks/9847.387abf8a14d722db.js +0 -30
- sky/dashboard/out/_next/static/chunks/9984.0460de9d3adf5582.js +0 -1
- sky/dashboard/out/_next/static/chunks/fd9d1056-61f2257a9cd8b32b.js +0 -1
- sky/dashboard/out/_next/static/chunks/framework-efc06c2733009cd3.js +0 -33
- sky/dashboard/out/_next/static/chunks/main-app-68c028b1bc5e1b72.js +0 -1
- sky/dashboard/out/_next/static/chunks/main-c0a4f1ea606d48d2.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/_app-da491665d4289aae.js +0 -34
- sky/dashboard/out/_next/static/chunks/pages/_error-c72a1f77a3c0be1b.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]/[job]-2186770cc2de1623.js +0 -11
- sky/dashboard/out/_next/static/chunks/pages/clusters/[cluster]-95afb019ab85801c.js +0 -6
- sky/dashboard/out/_next/static/chunks/pages/clusters-3d4be4961e1c94eb.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/config-a2673b256b6d416f.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/index-89e7daf7b7df02e0.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/infra/[context]-a90b4fe4616dc501.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/infra-0d3d1f890c5d188a.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/jobs/[job]-dc0299ffefebcdbe.js +0 -16
- sky/dashboard/out/_next/static/chunks/pages/jobs-49f790d12a85027c.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/users-6790fcefd5487b13.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/volumes-61ea7ba7e56f8d06.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/workspace/new-5629d4e551dba1ee.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/workspaces/[name]-6bcd4b20914d76c9.js +0 -1
- sky/dashboard/out/_next/static/chunks/pages/workspaces-5f7fe4b7d55b8612.js +0 -1
- sky/dashboard/out/_next/static/chunks/webpack-a305898dc479711e.js +0 -1
- /sky/dashboard/out/_next/static/{Q2sVXboB_t7cgvntL-6nD → oKqDxFQ88cquF4nQGE_0w}/_ssgManifest.js +0 -0
- {skypilot_nightly-1.0.0.dev20250729.dist-info → skypilot_nightly-1.0.0.dev20250731.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20250729.dist-info → skypilot_nightly-1.0.0.dev20250731.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20250729.dist-info → skypilot_nightly-1.0.0.dev20250731.dist-info}/licenses/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20250729.dist-info → skypilot_nightly-1.0.0.dev20250731.dist-info}/top_level.txt +0 -0
sky/utils/command_runner.py
CHANGED
|
@@ -201,6 +201,7 @@ class CommandRunner:
|
|
|
201
201
|
separate_stderr: bool,
|
|
202
202
|
skip_num_lines: int,
|
|
203
203
|
source_bashrc: bool = False,
|
|
204
|
+
use_login: bool = True,
|
|
204
205
|
) -> str:
|
|
205
206
|
"""Returns the command to run."""
|
|
206
207
|
if isinstance(cmd, list):
|
|
@@ -211,7 +212,7 @@ class CommandRunner:
|
|
|
211
212
|
'/bin/bash',
|
|
212
213
|
'--login',
|
|
213
214
|
'-c',
|
|
214
|
-
]
|
|
215
|
+
] if use_login else ['/bin/bash', '-c']
|
|
215
216
|
if source_bashrc:
|
|
216
217
|
command += [
|
|
217
218
|
# Need this `-i` option to make sure `source ~/.bashrc` work.
|
|
@@ -1124,7 +1125,8 @@ class LocalProcessCommandRunner(CommandRunner):
|
|
|
1124
1125
|
process_stream,
|
|
1125
1126
|
separate_stderr,
|
|
1126
1127
|
skip_num_lines=skip_num_lines,
|
|
1127
|
-
source_bashrc=source_bashrc
|
|
1128
|
+
source_bashrc=source_bashrc,
|
|
1129
|
+
use_login=False)
|
|
1128
1130
|
|
|
1129
1131
|
log_dir = os.path.expanduser(os.path.dirname(log_path))
|
|
1130
1132
|
os.makedirs(log_dir, exist_ok=True)
|
sky/utils/controller_utils.py
CHANGED
|
@@ -5,7 +5,7 @@ import enum
|
|
|
5
5
|
import os
|
|
6
6
|
import tempfile
|
|
7
7
|
import typing
|
|
8
|
-
from typing import Any, Dict, Iterable, List, Optional, Set
|
|
8
|
+
from typing import Any, Callable, Dict, Iterable, List, Optional, Set
|
|
9
9
|
import uuid
|
|
10
10
|
|
|
11
11
|
import colorama
|
|
@@ -64,7 +64,7 @@ class _ControllerSpec:
|
|
|
64
64
|
controller_type: str
|
|
65
65
|
name: str
|
|
66
66
|
cluster_name: str
|
|
67
|
-
in_progress_hint: str
|
|
67
|
+
in_progress_hint: Callable[[bool], str]
|
|
68
68
|
decline_cancel_hint: str
|
|
69
69
|
_decline_down_when_failed_to_fetch_status_hint: str
|
|
70
70
|
decline_down_for_dirty_controller_hint: str
|
|
@@ -94,9 +94,9 @@ class Controllers(enum.Enum):
|
|
|
94
94
|
controller_type='jobs',
|
|
95
95
|
name='managed jobs controller',
|
|
96
96
|
cluster_name=common.JOB_CONTROLLER_NAME,
|
|
97
|
-
in_progress_hint=
|
|
98
|
-
|
|
99
|
-
|
|
97
|
+
in_progress_hint=lambda _:
|
|
98
|
+
('* {job_info}To see all managed jobs: '
|
|
99
|
+
f'{colorama.Style.BRIGHT}sky jobs queue{colorama.Style.RESET_ALL}'),
|
|
100
100
|
decline_cancel_hint=(
|
|
101
101
|
'Cancelling the jobs controller\'s jobs is not allowed.\nTo cancel '
|
|
102
102
|
f'managed jobs, use: {colorama.Style.BRIGHT}sky jobs cancel '
|
|
@@ -126,8 +126,11 @@ class Controllers(enum.Enum):
|
|
|
126
126
|
name='serve controller',
|
|
127
127
|
cluster_name=common.SKY_SERVE_CONTROLLER_NAME,
|
|
128
128
|
in_progress_hint=(
|
|
129
|
-
|
|
130
|
-
f'
|
|
129
|
+
lambda pool:
|
|
130
|
+
(f'* To see detailed pool status: {colorama.Style.BRIGHT}'
|
|
131
|
+
f'sky jobs pool status -v{colorama.Style.RESET_ALL}') if pool else
|
|
132
|
+
(f'* To see detailed service status: {colorama.Style.BRIGHT}'
|
|
133
|
+
f'sky serve status -v{colorama.Style.RESET_ALL}')),
|
|
131
134
|
decline_cancel_hint=(
|
|
132
135
|
'Cancelling the sky serve controller\'s jobs is not allowed.'),
|
|
133
136
|
_decline_down_when_failed_to_fetch_status_hint=(
|
|
@@ -391,10 +394,11 @@ def check_cluster_name_not_controller(
|
|
|
391
394
|
|
|
392
395
|
|
|
393
396
|
# Internal only:
|
|
394
|
-
def
|
|
397
|
+
def download_and_stream_job_log(
|
|
395
398
|
backend: 'cloud_vm_ray_backend.CloudVmRayBackend',
|
|
396
399
|
handle: 'cloud_vm_ray_backend.CloudVmRayResourceHandle',
|
|
397
|
-
local_dir: str
|
|
400
|
+
local_dir: str,
|
|
401
|
+
job_ids: Optional[List[str]] = None) -> Optional[str]:
|
|
398
402
|
"""Downloads and streams the latest job log.
|
|
399
403
|
|
|
400
404
|
This function is only used by jobs controller and sky serve controller.
|
|
@@ -412,7 +416,7 @@ def download_and_stream_latest_job_log(
|
|
|
412
416
|
# multi-node cluster is preempted, and we recover the managed job
|
|
413
417
|
# on the existing cluster, which leads to a larger job_id. Those
|
|
414
418
|
# job_ids all represent the same logical managed job.
|
|
415
|
-
job_ids=
|
|
419
|
+
job_ids=job_ids,
|
|
416
420
|
local_dir=local_dir)
|
|
417
421
|
except Exception as e: # pylint: disable=broad-except
|
|
418
422
|
# We want to avoid crashing the controller. sync_down_logs() is pretty
|
sky/utils/dag_utils.py
CHANGED
|
@@ -148,7 +148,7 @@ def load_chain_dag_from_yaml_str(
|
|
|
148
148
|
|
|
149
149
|
|
|
150
150
|
def dump_chain_dag_to_yaml_str(dag: dag_lib.Dag,
|
|
151
|
-
|
|
151
|
+
use_user_specified_yaml: bool = False) -> str:
|
|
152
152
|
"""Dumps a chain DAG to a YAML string.
|
|
153
153
|
|
|
154
154
|
Args:
|
|
@@ -161,7 +161,9 @@ def dump_chain_dag_to_yaml_str(dag: dag_lib.Dag,
|
|
|
161
161
|
assert dag.is_chain(), dag
|
|
162
162
|
configs = [{'name': dag.name}]
|
|
163
163
|
for task in dag.tasks:
|
|
164
|
-
configs.append(
|
|
164
|
+
configs.append(
|
|
165
|
+
task.to_yaml_config(
|
|
166
|
+
use_user_specified_yaml=use_user_specified_yaml))
|
|
165
167
|
return common_utils.dump_yaml_str(configs)
|
|
166
168
|
|
|
167
169
|
|
sky/utils/db/migration_utils.py
CHANGED
|
@@ -12,7 +12,6 @@ import filelock
|
|
|
12
12
|
import sqlalchemy
|
|
13
13
|
|
|
14
14
|
from sky import sky_logging
|
|
15
|
-
from sky import skypilot_config
|
|
16
15
|
from sky.skylet import constants
|
|
17
16
|
|
|
18
17
|
logger = sky_logging.init_logger(__name__)
|
|
@@ -24,16 +23,15 @@ GLOBAL_USER_STATE_VERSION = '001'
|
|
|
24
23
|
GLOBAL_USER_STATE_LOCK_PATH = '~/.sky/locks/.state_db.lock'
|
|
25
24
|
|
|
26
25
|
SPOT_JOBS_DB_NAME = 'spot_jobs_db'
|
|
27
|
-
SPOT_JOBS_VERSION = '
|
|
26
|
+
SPOT_JOBS_VERSION = '002'
|
|
28
27
|
SPOT_JOBS_LOCK_PATH = '~/.sky/locks/.spot_jobs_db.lock'
|
|
29
28
|
|
|
30
29
|
|
|
31
30
|
def get_engine(db_name: str):
|
|
32
31
|
conn_string = None
|
|
33
32
|
if os.environ.get(constants.ENV_VAR_IS_SKYPILOT_SERVER) is not None:
|
|
34
|
-
conn_string =
|
|
33
|
+
conn_string = os.environ.get(constants.ENV_VAR_DB_CONNECTION_URI)
|
|
35
34
|
if conn_string:
|
|
36
|
-
logger.debug(f'using db URI from {conn_string}')
|
|
37
35
|
engine = sqlalchemy.create_engine(conn_string,
|
|
38
36
|
poolclass=sqlalchemy.NullPool)
|
|
39
37
|
else:
|
sky/utils/schemas.py
CHANGED
|
@@ -605,7 +605,6 @@ def get_service_schema():
|
|
|
605
605
|
return {
|
|
606
606
|
'$schema': 'https://json-schema.org/draft/2020-12/schema',
|
|
607
607
|
'type': 'object',
|
|
608
|
-
'required': ['readiness_probe'],
|
|
609
608
|
'additionalProperties': False,
|
|
610
609
|
'properties': {
|
|
611
610
|
'readiness_probe': {
|
|
@@ -641,6 +640,9 @@ def get_service_schema():
|
|
|
641
640
|
}
|
|
642
641
|
}]
|
|
643
642
|
},
|
|
643
|
+
'pool': {
|
|
644
|
+
'type': 'boolean',
|
|
645
|
+
},
|
|
644
646
|
'replica_policy': {
|
|
645
647
|
'type': 'object',
|
|
646
648
|
'required': ['min_replicas'],
|
|
@@ -688,6 +690,9 @@ def get_service_schema():
|
|
|
688
690
|
'replicas': {
|
|
689
691
|
'type': 'integer',
|
|
690
692
|
},
|
|
693
|
+
'workers': {
|
|
694
|
+
'type': 'integer',
|
|
695
|
+
},
|
|
691
696
|
'load_balancing_policy': {
|
|
692
697
|
'type': 'string',
|
|
693
698
|
'case_insensitive_enum': list(
|
|
@@ -825,6 +830,9 @@ def get_task_schema():
|
|
|
825
830
|
'service': {
|
|
826
831
|
'type': 'object',
|
|
827
832
|
},
|
|
833
|
+
'pool': {
|
|
834
|
+
'type': 'object',
|
|
835
|
+
},
|
|
828
836
|
'setup': {
|
|
829
837
|
'type': 'string',
|
|
830
838
|
},
|
|
@@ -1137,21 +1145,7 @@ def get_config_schema():
|
|
|
1137
1145
|
}
|
|
1138
1146
|
resources_schema['properties'].pop('ports')
|
|
1139
1147
|
|
|
1140
|
-
def _get_controller_schema(
|
|
1141
|
-
controller_properties = {
|
|
1142
|
-
'resources': resources_schema,
|
|
1143
|
-
'high_availability': {
|
|
1144
|
-
'type': 'boolean',
|
|
1145
|
-
'default': False,
|
|
1146
|
-
},
|
|
1147
|
-
'autostop': _AUTOSTOP_SCHEMA,
|
|
1148
|
-
}
|
|
1149
|
-
if add_consolidation_mode:
|
|
1150
|
-
controller_properties['consolidation_mode'] = {
|
|
1151
|
-
'type': 'boolean',
|
|
1152
|
-
'default': False,
|
|
1153
|
-
}
|
|
1154
|
-
|
|
1148
|
+
def _get_controller_schema():
|
|
1155
1149
|
return {
|
|
1156
1150
|
'type': 'object',
|
|
1157
1151
|
'required': [],
|
|
@@ -1161,7 +1155,18 @@ def get_config_schema():
|
|
|
1161
1155
|
'type': 'object',
|
|
1162
1156
|
'required': [],
|
|
1163
1157
|
'additionalProperties': False,
|
|
1164
|
-
'properties':
|
|
1158
|
+
'properties': {
|
|
1159
|
+
'resources': resources_schema,
|
|
1160
|
+
'high_availability': {
|
|
1161
|
+
'type': 'boolean',
|
|
1162
|
+
'default': False,
|
|
1163
|
+
},
|
|
1164
|
+
'autostop': _AUTOSTOP_SCHEMA,
|
|
1165
|
+
'consolidation_mode': {
|
|
1166
|
+
'type': 'boolean',
|
|
1167
|
+
'default': False,
|
|
1168
|
+
}
|
|
1169
|
+
},
|
|
1165
1170
|
},
|
|
1166
1171
|
'bucket': {
|
|
1167
1172
|
'type': 'string',
|
|
@@ -1707,8 +1712,8 @@ def get_config_schema():
|
|
|
1707
1712
|
'db': {
|
|
1708
1713
|
'type': 'string',
|
|
1709
1714
|
},
|
|
1710
|
-
'jobs': _get_controller_schema(
|
|
1711
|
-
'serve': _get_controller_schema(
|
|
1715
|
+
'jobs': _get_controller_schema(),
|
|
1716
|
+
'serve': _get_controller_schema(),
|
|
1712
1717
|
'allowed_clouds': allowed_clouds,
|
|
1713
1718
|
'admin_policy': admin_policy_schema,
|
|
1714
1719
|
'docker': docker_configs,
|