skypilot-nightly 1.0.0.dev20241005__py3-none-any.whl → 1.0.0.dev20241007__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- sky/__init__.py +2 -2
- sky/serve/controller.py +23 -14
- sky/serve/serve_utils.py +4 -0
- sky/utils/subprocess_utils.py +1 -0
- {skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/METADATA +2 -2
- {skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/RECORD +10 -10
- {skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/LICENSE +0 -0
- {skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/WHEEL +0 -0
- {skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/entry_points.txt +0 -0
- {skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.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 = 'd5b6d89c83ea1ee7258f68314da4c6f8add83e04'
|
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.dev20241007'
|
39
39
|
__root_dir__ = os.path.dirname(os.path.abspath(__file__))
|
40
40
|
|
41
41
|
|
sky/serve/controller.py
CHANGED
@@ -2,6 +2,7 @@
|
|
2
2
|
|
3
3
|
Responsible for autoscaling and replica management.
|
4
4
|
"""
|
5
|
+
import contextlib
|
5
6
|
import logging
|
6
7
|
import threading
|
7
8
|
import time
|
@@ -9,6 +10,7 @@ import traceback
|
|
9
10
|
from typing import Any, Dict, List
|
10
11
|
|
11
12
|
import fastapi
|
13
|
+
from fastapi import responses
|
12
14
|
import uvicorn
|
13
15
|
|
14
16
|
from sky import serve
|
@@ -49,7 +51,14 @@ class SkyServeController:
|
|
49
51
|
autoscalers.Autoscaler.from_spec(service_name, service_spec))
|
50
52
|
self._host = host
|
51
53
|
self._port = port
|
52
|
-
self._app = fastapi.FastAPI()
|
54
|
+
self._app = fastapi.FastAPI(lifespan=self.lifespan)
|
55
|
+
|
56
|
+
@contextlib.asynccontextmanager
|
57
|
+
async def lifespan(self, _: fastapi.FastAPI):
|
58
|
+
uvicorn_access_logger = logging.getLogger('uvicorn.access')
|
59
|
+
for handler in uvicorn_access_logger.handlers:
|
60
|
+
handler.setFormatter(sky_logging.FORMATTER)
|
61
|
+
yield
|
53
62
|
|
54
63
|
def _run_autoscaler(self):
|
55
64
|
logger.info('Starting autoscaler.')
|
@@ -88,7 +97,8 @@ class SkyServeController:
|
|
88
97
|
def run(self) -> None:
|
89
98
|
|
90
99
|
@self._app.post('/controller/load_balancer_sync')
|
91
|
-
async def load_balancer_sync(
|
100
|
+
async def load_balancer_sync(
|
101
|
+
request: fastapi.Request) -> fastapi.Response:
|
92
102
|
request_data = await request.json()
|
93
103
|
# TODO(MaoZiming): Check aggregator type.
|
94
104
|
request_aggregator: Dict[str, Any] = request_data.get(
|
@@ -96,18 +106,21 @@ class SkyServeController:
|
|
96
106
|
timestamps: List[int] = request_aggregator.get('timestamps', [])
|
97
107
|
logger.info(f'Received {len(timestamps)} inflight requests.')
|
98
108
|
self._autoscaler.collect_request_information(request_aggregator)
|
99
|
-
return {
|
109
|
+
return responses.JSONResponse(content={
|
100
110
|
'ready_replica_urls':
|
101
111
|
self._replica_manager.get_active_replica_urls()
|
102
|
-
}
|
112
|
+
},
|
113
|
+
status_code=200)
|
103
114
|
|
104
115
|
@self._app.post('/controller/update_service')
|
105
|
-
async def update_service(request: fastapi.Request):
|
116
|
+
async def update_service(request: fastapi.Request) -> fastapi.Response:
|
106
117
|
request_data = await request.json()
|
107
118
|
try:
|
108
119
|
version = request_data.get('version', None)
|
109
120
|
if version is None:
|
110
|
-
return
|
121
|
+
return responses.JSONResponse(
|
122
|
+
content={'message': 'Error: version is not specified.'},
|
123
|
+
status_code=400)
|
111
124
|
update_mode_str = request_data.get(
|
112
125
|
'mode', serve_utils.DEFAULT_UPDATE_MODE.value)
|
113
126
|
update_mode = serve_utils.UpdateMode(update_mode_str)
|
@@ -136,17 +149,13 @@ class SkyServeController:
|
|
136
149
|
self._autoscaler.update_version(version,
|
137
150
|
service,
|
138
151
|
update_mode=update_mode)
|
139
|
-
return {'message': 'Success'}
|
152
|
+
return responses.JSONResponse(content={'message': 'Success'},
|
153
|
+
status_code=200)
|
140
154
|
except Exception as e: # pylint: disable=broad-except
|
141
155
|
logger.error(f'Error in update_service: '
|
142
156
|
f'{common_utils.format_exception(e)}')
|
143
|
-
return {'message': 'Error'}
|
144
|
-
|
145
|
-
@self._app.on_event('startup')
|
146
|
-
def configure_logger():
|
147
|
-
uvicorn_access_logger = logging.getLogger('uvicorn.access')
|
148
|
-
for handler in uvicorn_access_logger.handlers:
|
149
|
-
handler.setFormatter(sky_logging.FORMATTER)
|
157
|
+
return responses.JSONResponse(content={'message': 'Error'},
|
158
|
+
status_code=500)
|
150
159
|
|
151
160
|
threading.Thread(target=self._run_autoscaler).start()
|
152
161
|
|
sky/serve/serve_utils.py
CHANGED
@@ -302,6 +302,10 @@ def update_service_encoded(service_name: str, version: int, mode: str) -> str:
|
|
302
302
|
raise ValueError('The service is up-ed in an old version and does not '
|
303
303
|
'support update. Please `sky serve down` '
|
304
304
|
'it first and relaunch the service. ')
|
305
|
+
elif resp.status_code == 400:
|
306
|
+
raise ValueError(f'Client error during service update: {resp.text}')
|
307
|
+
elif resp.status_code == 500:
|
308
|
+
raise RuntimeError(f'Server error during service update: {resp.text}')
|
305
309
|
elif resp.status_code != 200:
|
306
310
|
raise ValueError(f'Failed to update service: {resp.text}')
|
307
311
|
|
sky/utils/subprocess_utils.py
CHANGED
@@ -77,6 +77,7 @@ def handle_returncode(returncode: int,
|
|
77
77
|
command: The command that was run.
|
78
78
|
error_msg: The error message to print.
|
79
79
|
stderr: The stderr of the command.
|
80
|
+
stream_logs: Whether to stream logs.
|
80
81
|
"""
|
81
82
|
echo = logger.error if stream_logs else logger.debug
|
82
83
|
if returncode != 0:
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: skypilot-nightly
|
3
|
-
Version: 1.0.0.
|
3
|
+
Version: 1.0.0.dev20241007
|
4
4
|
Summary: SkyPilot: An intercloud broker for the clouds
|
5
5
|
Author: SkyPilot Team
|
6
6
|
License: Apache 2.0
|
@@ -153,7 +153,7 @@ Requires-Dist: pyvmomi==8.0.1.0.2; extra == "vsphere"
|
|
153
153
|
|
154
154
|
----
|
155
155
|
:fire: *News* :fire:
|
156
|
-
- [Sep, 2024] Point, Launch and Serve **Llama 3.2** on
|
156
|
+
- [Sep, 2024] Point, Launch and Serve **Llama 3.2** on Kubernetes or Any Cloud: [**example**](./llm/llama-3_2/)
|
157
157
|
- [Sep, 2024] Run and deploy [**Pixtral**](./llm/pixtral), the first open-source multimodal model from Mistral AI.
|
158
158
|
- [Jul, 2024] [**Finetune**](./llm/llama-3_1-finetuning/) and [**serve**](./llm/llama-3_1/) **Llama 3.1** on your infra
|
159
159
|
- [Jun, 2024] Reproduce **GPT** with [llm.c](https://github.com/karpathy/llm.c/discussions/481) on any cloud: [**guide**](./llm/gpt-2/)
|
{skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/RECORD
RENAMED
@@ -1,4 +1,4 @@
|
|
1
|
-
sky/__init__.py,sha256=
|
1
|
+
sky/__init__.py,sha256=qM97VOOUsAX0qlJn1dd3D1SoSS-VZ6VfhyEVw4EvgAc,5854
|
2
2
|
sky/admin_policy.py,sha256=hPo02f_A32gCqhUueF0QYy1fMSSKqRwYEg_9FxScN_s,3248
|
3
3
|
sky/authentication.py,sha256=TfKkVnmRIetATSEVQFp-rOOIRGqVig2i8faSQQt_ixA,20974
|
4
4
|
sky/check.py,sha256=jLMIIJrseaZj1_o5WkbaD9XdyXIlCaT6pyAaIFdhdmA,9079
|
@@ -171,13 +171,13 @@ sky/provision/vsphere/common/vim_utils.py,sha256=EMWLS8ILpdx6XwUZ9I53y0B_1yFrRrl
|
|
171
171
|
sky/serve/__init__.py,sha256=Qg_XPOtQsUxiN-Q3njHZRfzoMcQ_KKU1QthkiTbESDw,1661
|
172
172
|
sky/serve/autoscalers.py,sha256=khY1oZ22PRaUQNsLCoNKH178X_NiJw0LSLOKr7_LNgY,30275
|
173
173
|
sky/serve/constants.py,sha256=OansIC7a0Pwat-Y5SF43T9phad_EvyjKO3peZgKFEHk,4367
|
174
|
-
sky/serve/controller.py,sha256=
|
174
|
+
sky/serve/controller.py,sha256=gfE_gB7wxE1VxvnYqw_-KcMGc6X2kufl-NLR7sWdzdY,8172
|
175
175
|
sky/serve/core.py,sha256=cW2SNMPMbGtOcqASHnL__B12BCIErUilGtFw3olQbjk,28947
|
176
176
|
sky/serve/load_balancer.py,sha256=aUfDsgUT_fYrchCwJCeunMPXmAkwJAY58BEu-IN2FaA,11571
|
177
177
|
sky/serve/load_balancing_policies.py,sha256=ExdwH_pxPYpJ6CkoTQCOPSa4lzwbq1LFFMKzmIu8ryk,2331
|
178
178
|
sky/serve/replica_managers.py,sha256=dO962WZ_6YWRDpyNemY7SzC7fZHlNfoL4kUS3MaKwDo,57405
|
179
179
|
sky/serve/serve_state.py,sha256=5BZSKKKxQRk-0mku17Ch4Veu4qOhaFvaOJY3zrZCkLw,19315
|
180
|
-
sky/serve/serve_utils.py,sha256=
|
180
|
+
sky/serve/serve_utils.py,sha256=im_1cJoJmufFxkBVnhK4nI6XlHvEXersQyIivNruJJc,38009
|
181
181
|
sky/serve/service.py,sha256=fkfJvNJ2BO6rfV0TblZG-QkOXaCyZlpkwbGgrsTzf2w,11872
|
182
182
|
sky/serve/service_spec.py,sha256=iRhW95SERvb4NWtV10uCuhgvW31HuSAmZZ55OX0WK8s,15309
|
183
183
|
sky/setup_files/MANIFEST.in,sha256=BAR1TfVIHwBFfV3najggE8HDXTJyO3fNN0Yhu5aTitI,634
|
@@ -256,7 +256,7 @@ sky/utils/log_utils.py,sha256=yVu3etgKhiVYX8UG-JFPWZujxWBT4kwxZ5oAPIdjtGs,12054
|
|
256
256
|
sky/utils/resources_utils.py,sha256=snByBxgx3Hnjfch2uysdAA3D-OAwrnuzTDHug36s5H4,6515
|
257
257
|
sky/utils/rich_utils.py,sha256=5ZVhzlFx-nhqMXwv00eO9xC4rz7ibDlfD2lmGhZrJEY,1581
|
258
258
|
sky/utils/schemas.py,sha256=QT0Fxri2o0SiWkky1DlZhA1dzQRQoB5OdVaej0wJvhc,28787
|
259
|
-
sky/utils/subprocess_utils.py,sha256=
|
259
|
+
sky/utils/subprocess_utils.py,sha256=3R54Elc2n8DQeO6Y8MCDJ6N6v27HDGpbNMIfCquqXYQ,6552
|
260
260
|
sky/utils/timeline.py,sha256=ao_nm0y52ZQILfL7Y92c3pSEFRyPm_ElORC3DrI5BwQ,3936
|
261
261
|
sky/utils/ux_utils.py,sha256=318TRunQCyJpJXonfiJ1SVotNA-6K4F2XgMEYjvWvsk,3264
|
262
262
|
sky/utils/validator.py,sha256=cAFERCoC7jH0DFKepcU4x9SYmdrYL1iVmW9tXA18hvo,701
|
@@ -273,9 +273,9 @@ sky/utils/kubernetes/k8s_gpu_labeler_job.yaml,sha256=KPqp23B-zQ2SZK03jdHeF9fLTog
|
|
273
273
|
sky/utils/kubernetes/k8s_gpu_labeler_setup.yaml,sha256=VLKT2KKimZu1GDg_4AIlIt488oMQvhRZWwsj9vBbPUg,3812
|
274
274
|
sky/utils/kubernetes/rsync_helper.sh,sha256=Ma-N9a271fTfdgP5-8XIQL7KPf8IPUo-uY004PCdUFo,747
|
275
275
|
sky/utils/kubernetes/ssh_jump_lifecycle_manager.py,sha256=RFLJ3k7MR5UN4SKHykQ0lV9SgXumoULpKYIAt1vh-HU,6560
|
276
|
-
skypilot_nightly-1.0.0.
|
277
|
-
skypilot_nightly-1.0.0.
|
278
|
-
skypilot_nightly-1.0.0.
|
279
|
-
skypilot_nightly-1.0.0.
|
280
|
-
skypilot_nightly-1.0.0.
|
281
|
-
skypilot_nightly-1.0.0.
|
276
|
+
skypilot_nightly-1.0.0.dev20241007.dist-info/LICENSE,sha256=emRJAvE7ngL6x0RhQvlns5wJzGI3NEQ_WMjNmd9TZc4,12170
|
277
|
+
skypilot_nightly-1.0.0.dev20241007.dist-info/METADATA,sha256=DB1gJrJOXxSKRlbVrw-6rzua8zYvBLohJnJgwVEuDzk,18945
|
278
|
+
skypilot_nightly-1.0.0.dev20241007.dist-info/WHEEL,sha256=GV9aMThwP_4oNCtvEC2ec3qUYutgWeAzklro_0m4WJQ,91
|
279
|
+
skypilot_nightly-1.0.0.dev20241007.dist-info/entry_points.txt,sha256=StA6HYpuHj-Y61L2Ze-hK2IcLWgLZcML5gJu8cs6nU4,36
|
280
|
+
skypilot_nightly-1.0.0.dev20241007.dist-info/top_level.txt,sha256=qA8QuiNNb6Y1OF-pCUtPEr6sLEwy2xJX06Bd_CrtrHY,4
|
281
|
+
skypilot_nightly-1.0.0.dev20241007.dist-info/RECORD,,
|
File without changes
|
{skypilot_nightly-1.0.0.dev20241005.dist-info → skypilot_nightly-1.0.0.dev20241007.dist-info}/WHEEL
RENAMED
File without changes
|
File without changes
|
File without changes
|