You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Only reject start-time options the caller actually declared
The declarative paths hand serve_start a fully-defaulted dump of the config, so
every untouched schema default read as a requested change: HTTPOptionsSchema.host
defaults to 0.0.0.0 while HTTPOptions.host defaults to the loopback, so a config
with no http_options section rejected every apply to a Serve instance that was
started from Python, and ServeDeploySchema.proxy_location always carries a value
so placement was always requested too. Compare only what the config declared
(declared_start_time_options), and have serve start pass only the flags it was
given.
Placement is now diffed against the placement the caller asked for rather than
the one in effect: direct-ingress mode overrides proxy_location to HeadOnly, so
re-applying the very config that started Serve was rejected, and the error told
the user to restart, which reapplies the same override.
Also redact secrets from the error (it reaches an HTTP 400 body), surface it as a
CLI error instead of a traceback from serve run/serve start, document the 400 on
the REST reference and serve.start, and update the pre-existing standalone test
that asserted the warning this replaced.
Signed-off-by: john.taylor <john.taylor@anyscale.com>
Copy file name to clipboardExpand all lines: doc/source/serve/api/index.md
+2Lines changed: 2 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -201,6 +201,8 @@ The Serve REST API is exposed at the same port as the Ray Dashboard. The Dashboa
201
201
202
202
Declaratively deploys a list of Serve applications. If Serve is already running on the Ray cluster, removes all applications not listed in the new config. If Serve is not running on the Ray cluster, starts Serve. See [multi-app config schema](serve-rest-api-config-schema) for the request's JSON schema.
203
203
204
+
`proxy_location`, `http_options`, and `grpc_options` are global to the cluster and fixed when Serve starts. If Serve is already running and the config sets any of them to a different value, the whole request is rejected with a `400` naming each field, and no applications are deployed. Omitting a field is not a request to change it.
0 commit comments