Skip to content

Feature Request: pass --cell flag to VTOrc deployments (required in Vitess v25+) #786

@timvaillancourt

Description

@timvaillancourt

Feature Description

Vitess v25 makes VTOrc's --cell flag a hard requirement. The change is in vitessio/vitess#20048validateCell() 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

  1. v25+ — VTOrc will not start without this fix
  2. v24--cell is accepted, missing flag emits a warning
  3. ≤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

Metadata

Metadata

Labels

Breaking Vitess Changes FixPRs that handle the breaking changes from Vitess which show up on upgrading the Vitess dependencyfeatureNew Feature

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions