Feature Description
Vitess v25 makes VTOrc's --cell flag a hard requirement. The change is in vitessio/vitess#20048 — validateCell() previously logged a warning and continued; in v25 it returns a FAILED_PRECONDITION error if --cell is empty. The flag itself was introduced in v24 (vitessio/vitess#19047) to give VTOrc cell/location context for analysis and recovery decisions
The operator's VTOrc deployment does not currently pass --cell. In pkg/operator/vtorc/deployment.go, the flags() function (lines 212-223) sets only:
"topo_implementation": spec.GlobalLockserver.Implementation,
"topo_global_server_address": spec.GlobalLockserver.Address,
"topo_global_root": spec.GlobalLockserver.RootPath,
"port": planetscalev2.DefaultWebPort,
"clusters_to_watch": spec.Keyspace + "/" + spec.Shard,
"logtostderr": true,
Once a cluster upgrades to Vitess v25, every VTOrc managed by this operator will fail to start with a FAILED_PRECONDITION error from validateCell() 😱
What needs to happen
Spec.Cell is already on the vtorc spec (deployment.go:57), and 2 x other components in the operator already pass it to their binaries:
pkg/operator/vtgate/deployment.go:269 — "cell": spec.Cell.Name
pkg/operator/vtctld/deployment.go:236 — "cell": spec.Cell.Name
Adding "cell": spec.Cell to vtorc's flags() map matches the existing pattern
Version-skew consideration
--cell was only added to VTOrc in v24, so passing it unconditionally affects users on v23 or older. Worth confirming whether VTOrc on ≤v23 rejects unknown flags or tolerates them before deciding if the flag needs version gating
Impact summary
- v25+ — VTOrc will not start without this fix
- v24 —
--cell is accepted, missing flag emits a warning
- ≤v23 —
--cell does not exist; behaviour with the flag passed needs verification
Use Case(s)
Every cluster managed by vitess-operator that upgrades to Vitess v25 (GA per the v25.0.0 milestone). Without this change, the operator's VTOrc deployments break on upgrade
Feature Description
Vitess v25 makes VTOrc's
--cellflag a hard requirement. The change is in vitessio/vitess#20048 —validateCell()previously logged a warning and continued; in v25 it returns aFAILED_PRECONDITIONerror if--cellis empty. The flag itself was introduced in v24 (vitessio/vitess#19047) to give VTOrc cell/location context for analysis and recovery decisionsThe operator's VTOrc deployment does not currently pass
--cell. Inpkg/operator/vtorc/deployment.go, theflags()function (lines 212-223) sets only:Once a cluster upgrades to Vitess v25, every VTOrc managed by this operator will fail to start with a
FAILED_PRECONDITIONerror fromvalidateCell()😱What needs to happen
Spec.Cellis already on the vtorc spec (deployment.go:57), and 2 x other components in the operator already pass it to their binaries:pkg/operator/vtgate/deployment.go:269—"cell": spec.Cell.Namepkg/operator/vtctld/deployment.go:236—"cell": spec.Cell.NameAdding
"cell": spec.Cellto vtorc'sflags()map matches the existing patternVersion-skew consideration
--cellwas only added to VTOrc in v24, so passing it unconditionally affects users on v23 or older. Worth confirming whether VTOrc on ≤v23 rejects unknown flags or tolerates them before deciding if the flag needs version gatingImpact summary
--cellis accepted, missing flag emits a warning--celldoes not exist; behaviour with the flag passed needs verificationUse Case(s)
Every cluster managed by
vitess-operatorthat upgrades to Vitess v25 (GA per the v25.0.0 milestone). Without this change, the operator's VTOrc deployments break on upgrade