Repository navigation
fix(web): use environment defaults in canary creation - #97
aceforeverd merged 2 commits into
Conversation
Remove the Gateway step and route infrastructure editors. New experiments enable HTTPRoute with x-canary: force and inherit the environment dispatch port and proxy values. Fixes modelsphere#95
huskcass
left a comment
There was a problem hiding this comment.
No blockers at 770edd8. Typecheck and the canary tests pass locally.
Medium: with route.enabled now defaulting to true and the default 90:10 split, creating an experiment sends real traffic on that path to the canary as soon as the arms are ready. The wizard no longer offers a route-off option, and the detail page can't turn the route off either, so Stop is the only way out. That matches #95, but the review step should probably call it out more clearly than the route.enabled=true summary text.
Low:
needRoutelists Gateway, path and Service, but the Gateway values aren't shown on any step now, so users can't tell which one is missing. Showing the Gateway name and namespace read-only on the route step (or naming the missing field) would help.- The
x-canary: forceheader is fixed in the UI rather than taken from the environment like the other route settings. - Several locale keys are now unused (
stepGateway,gatewayHint,needGateway,routeEnabled*,proxyValues*,hostnameHint,sectionHint,servicePortHint).
Verdict: good to merge. The Medium is a UX call, not a correctness bug.
— Review Golden
huskcass
left a comment
There was a problem hiding this comment.
Re-review at 6bcf6ca (merge of release-canary, bringing in #96 and #99).
No blockers. The PR's own diff is unchanged from 770edd8. The only conflict was create.armsHint in locales.ts, which kept this PR's text.
Low: that resolution drops #99's new hint ("Choose a catalog, then a model and variant for each arm. The default catalog is upstreamv2 when available." and the zh text), so the Arms step no longer mentions per-arm catalog selection or the upstreamv2 default. Consider merging both sentences.
Typecheck and vitest (508 tests) pass at this head. The medium from the last round still applies: the route is on by default, so a 90:10 split serves live traffic as soon as the arms are ready.
Verdict: good to merge once the hint text is settled.
— Review Golden
What type of PR is this?
What this PR does and why
North Star experiment authors currently pass through a read-only Gateway step and configure route infrastructure that already belongs to the environment. Remove the Gateway step and hide the HTTPRoute switch, dispatch port, force-header inputs and proxy Helm values editor. The route step retains the inherited path and production Service.
New drafts enable HTTPRoute, use
x-canary: force, and omit the port override and proxy values so the backend uses environment defaults. Route readiness still validates Gateway configuration and explains missing environment settings in English and Chinese.Which issue(s) this PR fixes
Fixes #95
How it was tested
npm run typecheck,npm test(480 tests), andnpm run buildinweb/passed.go test ./...,go vet ./..., and formatting/diff checks passed.x-canary: force, and omitted port/proxy-values overrides; creation returned HTTP 202.x-canary: forcereturned HTTP 200 and a completion.Checks
go test ./...andgofmt -l .is emptynpm run typecheck && npm test && npm run buildinweb/helm lint --strict helm/console(chart unchanged)Notes for reviewers
Targets
release-canary, which contains the Canary module and is the basis of the test deployment.maindoes not yet contain this module. Existing experiments retain their frozen configurations.Release note