Repository navigation
[Frontend] Runtime form: autoscaler block, inheritance and lossless edits - #61
Open
pallasathena92 wants to merge 7 commits into
Open
pallasathena92 wants to merge 7 commits into
pallasathena92 wants to merge 7 commits into
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the
|
3 tasks done
pallasathena92
force-pushed
the
yifeliu/service-form
branch
from
October 31, 2026 00:45
6beb344 to
e823987
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this PR does
Plan Phase 1.2: the ServingRuntime / ClusterServingRuntime form follows the v1.3 API and edits are lossless.
ComponentExtensionFieldsfrom [Frontend] Rebuild the deploy form for v1.3 with a YAML tab #58 (min/max replicas, autoscaler class, HPA CPU target, KEDA timing and triggers,autoscalerPolicyRef);ScalingConfigwith the removedscaleTarget/scaleMetricis gone.MultiNodeConfig(leader/worker) stays; turning multi-node off clearsleader/workerinstead of submitting them unseen.spec.scalingPolicysection (mode fromScalingPolicyModeValues, proportional anchor and follower ratios, with the API doc comments as help);modelSizeRangevalidated as<number>[M|B|T]with an uppercase suffix (OME reads4bas 0);ome.io/inherit-fromas a select among the runtimes of the same scope (a ServingRuntime sees its namespace first, then the cluster runtimes it does not shadow; never itself);ome.io/runtime-profileas a toggle that forcesdisabled: true.?namespace=; clone preselects the source's scope and strips server-managed metadata.status,runtime-schema.tsisz.looseObjectthroughout, andbuildRuntimelays only the form-owned fields over the stored spec, keepingresourceVersion, labels,env[].valueFrom, tolerations, probes, HPA behaviour and anything the form has no input for. Every submit runs the API server dry run first (422 causes throughErrorState); a "Validate (dry run)" button stops there.ModelFormatsSectionwritesmodelFormat{name,version}andmodelFramework{name,version}(the v1.3 CRD requires both; legacyname-only entries are mapped on load);VolumeFormwrote avolumeTypefield the API does not have and now writes the real volume sources; the routerconfigmap was bound to a string and is now a JSON map field;valueAsNumberinputs producedNaNand use the sharedoptionalNumber.runtimesApi.create/updateaccept{ dryRun: true }.POST /runtimesandPUT /runtimes/:nameignore?dryRuntoday, so a dry run of a ClusterServingRuntime would persist; the backend fix for that is a separate PR on top of #56. Stacked on #58.Why we need it
The runtime form wrote removed fields, dropped most of a runtime's spec on edit, had no autoscaler, scaling policy, inheritance or profile support, and could not create or edit namespaced runtimes.
How to test
cd frontend && npm run typecheck && npm run lint && npm run format:check && npm run gen:types:check && npm testpass (95 tests; new:runtime-schema.test.ts,runtimeFormValues.test.ts,RuntimeForm.test.tsxcovering the lossless edit round trip with a dry run first, a namespaced create with the autoscaler underengineConfig, 422 causes stopping the write, and form errors listed before any request).env[].valueFromand labels and checkkubectl diffshows no loss; create a ServingRuntime in a namespace; setome.io/inherit-fromand see the chain on the detail page ([Frontend] Render v1.3 status for services, runtimes and models #53).Checklist
make testpasses locally — frontend; backend untouched in this PR