Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add vtctldclient info to the 18.0 summary #14259

Merged
merged 4 commits into from
Oct 12, 2023
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 26 additions & 0 deletions changelog/18.0/18.0.0/summary.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@
- **[Major Changes](#major-changes)**
- **[Breaking Changes](#breaking-changes)**
- [Local examples now use etcd v3 storage and API](#local-examples-etcd-v3)
- **[Deprecations and Removals](#deprecations-and-removals)**
- [Legacy Clients](#legacy-clients)
mattlord marked this conversation as resolved.
Show resolved Hide resolved
- **[New command line flags and behavior](#new-flag)**
- [VTOrc flag `--allow-emergency-reparent`](#new-flag-toggle-ers)
- [VTOrc flag `--change-tablets-with-errant-gtid-to-drained`](#new-flag-errant-gtid-convert)
Expand Down Expand Up @@ -47,6 +49,30 @@ removed this legacy etcd usage and instead use the new (default) etcd v3 storage
examples in any sort of long-term non-testing capacity, then you will need to explicitly use the v2 storage
and API mode or [migrate your existing data from v2 to v3](https://etcd.io/docs/v3.5/tutorials/how-to-migrate/).

### <a id="deprecations-and-removals"/>Deprecations and Removals

#### <a id="legacy-clients"/>Legacy Clients

`vtctldclient` is our new modern *Vitess controller daemon* (`vtctld`) *client* – which you will use to perform commands
and take actions in your Vitess clusters. It is [replacing the legacy `vtctl`/`vtctlclient` clients](https://vitess.io/docs/18.0/reference/vtctldclient-transition/overview/).
Some of the benefits are:

- [Dedicated RPCs for each command](https://github.com/vitessio/vitess/blob/release-18.0/proto/vtctlservice.proto#L32-L353)
that are used between `vtctldclient` and `vtctld` – this offers clean separation of commands and makes it easier to
develop new features without impacting other commands. This also presents an [API that other clients (both Vitess and
3rd party) can use to interface with Vitess](https://vitess.io/blog/2023-04-17-vtctldserver-api/).
- Use of modern frameworks: [`pFlag`](https://github.com/spf13/pflag#readme), [`Cobra`](https://cobra.dev), and [`Viper`](https://github.com/spf13/viper#readme).
This makes development easier while also offering a better UX. For example, this offers a way to use
[configuration files](https://vitess.io/docs/18.0/reference/viper/config-files/) with support for
[dynamic configuration](https://vitess.io/docs/18.0/reference/viper/dynamic-values/) ([see also](https://github.com/vitessio/vitess/blob/release-18.0/doc/viper/viper.md)).
- The [reference documentation](https://vitess.io/docs/reference/programs/vtctldclient/) is now built through code. This
removes a burden from developers while helping users by ensuring the docs are always correct and up-to-date.

In Vitess 18.0 we have completed migrating all client commands to `vtctldclient` – the last ones being the [OnlineDDL](https://github.com/vitessio/vitess/issues/13712)
and [VReplication](https://github.com/vitessio/vitess/issues/12152) commands. With this work now completed, the
legacy `vtctl`/`vtctlclient` binaries are now fully deprecated and we plan to remove them in Vitess 19.0. You should
Copy link
Contributor

Choose a reason for hiding this comment

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

I'd rename this section "Deprecated binaries" since vtctl isn't really a cilent per se

Copy link
Contributor Author

Choose a reason for hiding this comment

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

I did a mix of that as I want client to be obvious too.

[begin your transition](https://vitess.io/docs/18.0/reference/vtctldclient-transition/) before upgrading to 18.0.

### <a id="new-flag"/>New command line flags and behavior

#### <a id="new-flag-toggle-ers"/>VTOrc flag `--allow-emergency-reparent`
Expand Down