Skip to content

Vitess 18: Remove deprecated k8stopo #13298

@dbussink

Description

@dbussink

We've decided (see https://docs.google.com/document/d/1XLUdKePtj9aZD0E2Nlr3VRk1NIaSBgeIvXUj13y5CFk/edit?pli=1 under Vitess Monthly Meeting - 20 April 2023 to deprecate the k8stopo. In Vitess 17, using it will print a warning and with Vitess 18 the code will be removed. The main reasons are:

  • No one is using this in production as far as we know.
  • The code has existed for a long time but it was broken most of the time and not actually usable. That this was never reported and only found in Improve topo handling and add additional functionality #10906 (comment) when adding some additional unit tests. This also supports the previous point that no one is using this.
  • Kubernetes as a dependency is heavy and anecdotally increases for example vttablet binary by ~40% in size. That's for something apparently unused. The dependency is also complex as it requires specific versioning that then causes issues for example with updating the https://github.com/planetscale/vitess-operator for specific Kubernetes versions. If that conflicts, we're in a problematic dependency conflict. Removing k8stopo allows for removing the entire Kubernetes dependency from Vitess itself, creating smaller binaries and easier to maintain code.
  • Since no once is using it, there's no stakeholder to keep it updated if for example Kubernetes issues CVEs that force is to update.

Metadata

Metadata

Assignees

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions