Skip to content

vtctld: stop passing deprecated --cell flag - #874

Open
ChaitanyaD48 wants to merge 1 commit into
planetscale:mainfrom
ChaitanyaD48:fix/vtctld-remove-cell-flag
Open

ChaitanyaD48 wants to merge 1 commit into
planetscale:mainfrom
ChaitanyaD48:fix/vtctld-remove-cell-flag

Conversation

@ChaitanyaD48

Copy link
Copy Markdown

Description

Stop automatically passing --cell to vtctld so operator-managed deployments can start successfully when Vitess removes the flag in v26.

The operator currently generates --cell=<cell-name> for every vtctld Deployment. The flag is a deprecated no-op in Vitess v25. Once removed, vtctld rejects the argument with unknown flag: --cell, preventing the process from starting and its pod from becoming ready.

Fixes #866

Changes

  • Remove cell from the default vtctld argument map in pkg/operator/vtctld/deployment.go.
  • Extend TestDeploymentFlags to verify that:
    • Newly created Deployments omit --cell.
    • Reconciliation removes --cell from existing Deployments, including when the Vitess image remains unchanged.
    • The reconciled argument list matches the desired configuration.

The reconciliation check covers the existing argument-preservation logic: an old --cell argument must not survive an operator upgrade through KeepEquivalentArgs.

Related Vitess work

This is a companion change to: vitess/#21828

That PR targets Vitess v26 and removes the deprecated legacy HTTP API flags from vtctld and vtcombo:

  • --cell
  • --proxy-tablets
  • --action-timeout
  • --tablet-health-keep-alive

It also removes the obsolete -cell argument from the Docker mini vtctld startup script.

The operator automatically generates --cell for vtctld; it does not generate the other three flags in that argument builder.

Merge and publication order

This operator change should land and be included in the published operator image before the Vitess flag-removal PR merges.

Vitess's VTop Example test runs the PR-built vitess/lite:pr image with planetscale/vitess-operator:latest. If that operator image still generates --cell, the new vtctld binary fails to start and the test times out waiting for its pod.

Merging this source change alone is therefore insufficient: the latest image consumed by the test must include it. The Vitess removal itself must also wait until main targets v26.

Validation

  • Confirmed both new regression cases fail against the original operator code because it still generates --cell=zone1.
  • Confirmed all vtctld package tests pass with the fix:
    go test -count=1 -timeout 60s ./pkg/operator/vtctld
  • Passed the full repository unit-test target:
    make unit-test
  • Passed Go formatting and git diff --check checks.

Remove the automatic cell argument before Vitess v26 removes the flag. Verify new Deployments omit it and reconciliation removes it from existing Deployments.

Fixes planetscale#866

Signed-off-by: ChaitanyaD48 <chaitanya.d48@gmail.com>
Copilot AI balanced review requested due to automatic review settings November 9, 2026 15:01

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@ChaitanyaD48 ChaitanyaD48 changed the title vtctld: stop passing deprecated --cell flag vtctld: stop passing deprecated --cell flag Nov 9, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Stop passing --cell to vtctld before Vitess v26 removes it

2 participants