planetscale / planetscale/vitess-operator
Feature Request: pass `--cell` flag to VTOrc deployments (required in Vitess v25+)
@timvaillancourt is already working on this.
Since May 12, 2026.
- Dominant language
- Go
- Stars
- 372
- Forks
- 102
- Avg merge
- 3d 5h
- Merged PRs (30d)
- 15
Description
Feature Description
Vitess v25 makes VTOrc's --cell flag a hard requirement. The change is in https://github.com/vitessio/vitess/pull/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 (https://github.com/vitessio/vitess/pull/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.Namepkg/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 —
--cellis accepted, missing flag emits a warning - ≤v23 —
--celldoes 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
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.