All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
tt connect,tt replicaset,tt cluster topology,tt backup: added--sslpasswordand--sslpasswordfileto decrypt password-protected private SSL keys.tt connect,tt replicaset,tt cluster topology,tt backup: added--connect-timeout, with a default of one second, to bound binary connection establishment.
This release extends cluster backup and restore: tt backup-id generates
backup identifiers, tt backup start and finalize gain --dir and iproto
TLS flags, and tt restore can restore a subset of replicasets into separate
snapshot, WAL and vinyl directories. It also parallelizes tt status and fixes
duplicated lines and stalls in tt log -f after log rotation.
tt backup-id: prints an identifier for a new backup, the current UTC time as20060102T150405Z, to pass as--backup-idtott backup start,uploadandfinalize. Identifiers sort in the order they are generated, and the command exits once the printed second is over, so two consecutive calls never print the same one.status: added--instance-timeoutflag to bound how long collecting a single instance's status may take.tt restore apply: restore into the three data directories Tarantool configures separately.--snapshot-dir,--wal-dirand--vinyl-dirname one directory each, and-c/--configwith--instancereads them out of a cluster configuration, resolvingsnapshot.dir,wal.dir,vinyl.dir, theirvar/lib/{{ instance_name }}defaults andprocess.work_dirthe way Tarantool does. Each directory is decided on its own, taking the flag that names it, else the configuration, else--work-dir. The marker is written beside the snapshot directory as<absolute snapshot directory>.restore_state.jsonand records all three, resolved.tt backup start/tt backup finalize: added--dirflag to choose the directory of the local archive and manifest fragment instead of$TMPDIR/tt-backup/<backup-id>.tt backup start/tt backup finalize: added--sslkeyfile,--sslcertfile,--sslcafileand--sslciphersflags to connect to an instance with iproto TLS enabled.tt restore plan: added--replicasetsto restrict the restore to the named replicasets, by the names the cluster config gives them, which is why it requires-c. The cluster recovery point is then searched over those replicasets alone, and so are the downloads, the restore targets and the trim positions. The others -- a stateless router, say -- are not restored and are reported in the warnings.
status: status requests now have a default timeout of 5 seconds.status: status requests were parallelized for faster collection.tt restore apply:--work-diris no longer required. It still puts every kind of file in one directory when used alone; with--configit is the directory the instance is launched from, which the configuration's relative paths resolve against. A call that does not add up to three directories is rejected with exit code 3 and touches nothing.tt backup/tt restore apply: a memtx sort data file (<signature>.sortdata, Tarantool 3.8+) counts as a snapshot, so it is backed up againstmemtx_dirand restored beside the snapshot it belongs to.--target-pointdrops the sort data of a snapshot it drops, instead of leaving a file describing a snapshot that is no longer there.tt log -f/tt tcm log --follow: only complete lines are printed. A half-written line stays buffered until its newline arrives instead of being split into two records.- Commands working with a Tarantool 3 application (
tt start,tt statusand others) read its cluster configuration once instead of once per instance, which was slow on applications with hundreds of instances.
status: replication errors were ignored.tt backup start: an archive entry is named against the data directory that holds files of its own kind, so an instance keeping one data directory inside another no longer names a vinyl run againstwal_dirand has it restored a level too deep.tt restore applynormalizes the names older archives carry, so a backup already taken from such an instance restores correctly too.tt cluster publish/tt cluster show: fix a connection timeout to anhttps://Tarantool Config Storage or etcd endpoint with SSL enabled but no client certificate configured.tt log -f/tt tcm log --follow: a line could be delivered twice right after a log rotation, and the follow could stall, never picking up the rotated file.tt log -f: the message about an unavailable log file printed%!q(MISSING)instead of the file name.tt clean: fixed showing files to delete before confirmation. Verbose option added.
This release introduces cluster backup and restore: tt backup plans a
backup, takes it on the nodes, uploads the archives with a cluster manifest
to file or S3 storage, and verifies and prunes that storage, while
tt restore plans a recovery point and prepares the instance work
directories for it. It also adds cluster topology discovery with
tt cluster topology and the \history command in the interactive console,
and fixes line loss and hangs in tt log -f around log rotation.
tt backup startandtt backup finalize: add support for creating and finalizing local backup artifacts.--backup-idmust be a single safe path component: it names a directory and a file on the node and an object key in the storage, so an empty id, a path separator, a leading dot or an absolute path is rejected before the instance is dialed.tt cluster topology: add cluster topology discovery from a file, etcd, or Tarantool Config Storage with table and JSON output.tt backup last: add support for displaying the latest backup manifest from file or S3 storage.tt backup verify: add a read-only health check of a backup storage: missing and corrupted archives, breaks in the backup chain, and dangling archives. Exits with 2 when problems are found. Archives of a backup newer than every stored manifest are reported as an upload in progress and do not make the storage unhealthy. A manifest carrying a warning code this tt does not know is read normally:warnings[]is diagnostic, so an unfamiliar code neither invalidates the manifest nor breaks the chain below it.tt backup gc: add retention-based cleanup of a backup storage:--keep-full/--keep-daysdelete whole backup chains from their newest end,--orphan-agecollects dangling archives, and--dry-runreports what a run would delete. The chain holding the newest manifest and the newest chain that can still be recovered from are never deleted, so no combination of flags empties a storage.tt backup plan: add backup planning command that computes last valid manifest fortt backup start. The plan carriesformat_version, andtt backup uploadrefuses a version it does not know instead of reading the fields it knows: the plan crosses hosts, and possibly a tt upgrade, between the two commands. When the plan names no chain head,previous_backup_idandbase_full_backup_idarenullrather than absent, so a consumer reads them without a special case. The cluster manifest does the same withprevious_backup_idfor the first full backup of a chain. The plan also carrieschecksum_sha256of its own content, which is howtt backup uploadtells a plan tt produced from one written or edited by hand.tt backup upload: add a command that builds a cluster manifest from per-shard fragments and uploads archives and the manifest to file or S3 storage. Every archive is read through and checked against the checksum its fragment carries before anything is stored, so a copy that went wrong between the node and the manager host is refused rather than published as healthy. A fragment with no checksum gets the computed one, and the run reports that nothing was verified for that shard. The storage is also compared against the plan before the first object is written: an increment whose chain head moved since the plan was made, and a backup id that does not sort above the newest stored backup, are both refused — the second is what a host with a clock behind produces, and reusing an id looks the same. A full backup landing on a chain whose replicaset set or master changed recordspromoted_to_fullinwarnings[]with the reason, so a forced full backup is distinguishable from a scheduled one; being informational, it leaves the manifest status alone. The fragments are compared against the plan as well: one taken on an instance the plan does not name as that replicaset's master — a failover betweenplanandstart— or one of a different backup type than the plan asked for is refused. This holds the plan to its word only when tt wrote it: for a plan written or edited by hand, checked by itschecksum_sha256, the same disagreements are reported and the upload continues, which is also how an operator overrides the check. A shard that produced nothing does not fail the run: a replicaset the plan expects and no fragment covers is stored as a failed shard withshard_unreachableinwarnings[], a fragment whose archive never arrived as one withshard_partial, and every shard that did produce data is uploaded either way — the run reports the manifest status, so a degraded backup is visible in the log of a run that exited 0. An archive no fragment describes is still refused: its checksum can be compared against nothing, and storing it would leave an object no manifest refers to.tt backup plan,upload,verify,gc,lastandtt restore plan:--cluster-nameand--environmentselect the<storage_root>/<cluster_name>/<environment>/subtree of the storage, so one storage can hold several clusters. Every command that reads or writes a storage takes the pair and has to be given the same one: a backup uploaded with it is invisible to a reader run without it.--environmentwithout--cluster-name, and either of them holding a path separator, are refused rather than silently pointing at another storage location. Object keys inside the subtree, and the archive paths the manifest records, stay relative to it.tt backup planrecords the pair it was given in the plan, andtt backup uploadtakes it from there — its own flags are only needed to override the plan, which it reports when they do.tt restore plan: add restore planning on the manager host. Lists the storage itself, walks the backup chain, resolves--target-timeinto the latest cluster recovery point not later than it, downloads the manifests and archives that point needs into-d/--dirand verifies their checksums there. Prints the download plan, the chosen point with its per-replicaset trim positions, and — when the requested time cannot be reached — the recovery times on either side of it.restore_targetsnames, per replicaset, the node its chain is restored onto and the instance UUID that node has to own afterwards, which is whattt restore apply --patch-uuidstamps in: a replicaset is backed up on its master, so the master is the node whose headers the archives already fit. With-cthe other configured members are listed beside it underrejoin— they are wiped before the restore and come back by joining the restored node, needing no UUID of their own because Tarantool 3.x identifies an instance by name. With-cthe point's topology is also checked against the cluster being restored: the composition comes from the configuration rather than from the instances, and replicasets are matched by instance name rather than by UUID, so a restore into a freshly deployed cluster passes. Exits with 2 for a topology boundary, 3 when no point is available, 4 for a broken chain, 5 for a time outside the coverage and 6 for a topology that does not match the cluster config. A missing or corrupt archive stops the plan; nothing is distributed to the nodes and nothing is deleted.tt restore apply: add preparation of an instance work directory from a backup chain. Unpacks the archives in order, stamps--patch-uuidinto every snap/xlog header, and cuts the chain at--target-point: the xlog holding the point is truncated and the files starting past it are removed.--checksumsverifies the archives before anything is touched, and a chain that is not one — archives out of order, a gap between an increment and its base, or archives taken on different instances — is refused rather than restored into a healthy-looking instance sitting at the wrong position. Re-running for the same point is idempotent, and only the files a restore owns are cleared, so an instance config kept in the same directory survives. Exits with 2 when no xlog covers the point and 3 when an input is rejected, in which case the work directory is left as it was. Arestore_state.jsonmarker is written next to the work directory for the orchestrator to compare across the restored nodes before the cluster is started.tt connect: add\historycommand to display the last executed commands in the interactive console.
tt stop: preliminary interrupts the processes to enable parallel termination.tt create vshard_cluster: the generated rockspec now pinsvshard 0.1.42instead of0.1.25. 0.1.42 is the first release shipping thevshard-routerbackend of theroles.recovery-point-managerrole, which is what lets a backup take a cluster-wide recovery point.tt backup: removecreation_durationfrom the cluster manifest — the field was unused and is no longer serialized.
tt log -f: possible line loss/duplication on rename, hanging after a watched log directory is removed, and lines written just as the file was read to the end not showing up until the next write.
This release adds cluster worker configuration management and fixes
incorrect error reporting in tt start on insufficient directory
permissions.
tt cluster: worker publish subcommand.tt cluster: worker show subcommand.tt cluster: worker delete subcommand.
tt start: fixed a bug where an error did not appear when access rights to the var directive were insufficient.
This maintenance release marks the end of active development on the v2 branch.
tt pack: support nested.packignoreat the root of tt environment.tt status: add--formatoption to support JSON and YAML output formats for machine-readable output.
tt status: deprecate--prettyoption in favor of--format=pretty-table.
tt pack: fix.packignorefor directories with regexp symbols in their names.tt: return non-zero exit code on unknown command.
The release includes fixes identified by CVE linters.
The auxilary release just to keep version matching with tt-ee
(no functional changes in tt).
The release updates the dependencies and fixes discovering of the available
versions with tt search.
tt search: fix unknown dev tags parsing.
The release includes minor fixes identified by Svacer and CVE linters.
The release allows --cartridge-compat flag for the tt pack deb|rpm commands.
Also it includes several fixes for the tt install and tt pack commands and
docker container used by these commands is upgraded to Ubuntu 20.04.
pack: if the--cartridge-compatflag is setpack debandpack rpmcommands add files with application and tarantool versions to the package.
- Container that is used to build tarantool when
--use-dockeris specified withtt installortt packcommand is upgraded to Ubuntu 20.04.
tt coredump: adjust Tarantool GDB-extention to avoid load failure ifmain_cordsymbol isoptimized outin gdb session.tt pack: corrupts relative symbolic links.tt install: fails to install tarantool by commit hash.tt install: fails to install tarantool 3.6.0 using docker (--use-docker).ttcan be built without linking to OpenSSL.
The release supports Tarantool Config Storage in tt cluster failover
commands and introduces templates to create Tarantool Config Storage and
non-vshard cluster.
tt create: add template for Tarantool Config Storage.tt create: add template for non-vshard Cluster.tt cluster failover: support Tarantool Config Storage.
tt cluster failover switch: minor change in output that displays correspondingswitch-statuscommand with quoted URI argument so it could be copy-pasted for subsequent launch as-is.tt rs vshard bootstrap: make more informative error message when sharding roles are not configured (for example when launched against non-vshard cluster).
The release introduces a fix for the tt logrotate command, which now properly
releases the descriptor of the old log file.
tt logrotate: properly release descriptor of the old log file.
The release introduces command support for working with Tarantool
Cluster Manager (TCM). Also added support for fish shell autocompletion.
In addition, code verification with pre-commit hooks has been configured.
- In commands
tt cat|play <DIR>added options-r/--recursiveto allow find WAL files inside nested subdirectories. tt search tcm- the command performs a search for tarantool cluster manager (TCM) in the customer zone or localdistfilesdirectory.tt install tcm- the command performs an install for tarantool cluster manager (TCM) from the customer zone or localdistfilesdirectory.tt uninstall tcm [version]- the command removes installed tarantool cluster manager from thebindirectory.tt tcm status: added command to check TCM runtime status (modes:watchdogorinteractive).tt tcm stop: add command for graceful termination of TCM processes (modes:watchdogorinteractive).- Add support manage installed
tcmversions viatt binariesCLI. - Added support for completion with shell
fishsee the commandtt completion fish. - Repository use
pre-commithooks to check code style. - Added support for showing TCM logs with
tt tcm logcommand.
tt pack: packs TCM config, if any.
- Fixed a crash in
tt aeon connectwhen processing responses from certain SQL commands. tt cat|play <DIR>with directories handles only.snapor.xlogfiles.rs vshard bootstrap: ignore an error and retry withintimeoutflag period.packwith modules include only under rootttenvironment directory. Modules outside of the directory withtt.yamlwill be ignored.tt connect|replicaset|cluster|aeon|play: fixed using of IPv6 in instance URI.play: extend error message if space to play is unavailable or user does not have permission to work with it, because thenet.boxmodule does not have means to distinguish between these errors.
The release includes minor fixes identified by Svacer and CVE linters.
The release introduces advanced features to connect to the Aeon database and start tcm commands. Further improvements on packaging the customized application. Major changes on working with external modules.
-
tt aeon connectadded tests for connect file/app. -
tt modules listadded command to show available modules. If support extra flags:--version- to show information about version.--path- to show module executables.
-
tt aeon connectadded tests for connect file/app. -
tt aeon connect: add connection from the etcd/tcs config. -
tt pack: support.packignorefile to specify files that should not be included in package (works the same as.gitignore). -
tt tcm start: add the tcm command. -
tt tcm startORtt tcm start --path /path/to/tcm: added the capability to run TCM in interactive mode. -
tt tcm start --watchdog: implemented Watchdog mode for automatic restarting of TCM upon unexpected termination.
- The following functions were moved from
cluster/cmdtolib/cluster:- CreateCollector → lib/cluster/cluster.go,
- ConnectEtcdUriOpts → lib/cluster/etcd.go,
- DoOnStorage → lib/cluster/etcd.go,
- MakeEtcdOptsFromUriOpts → lib/cluster/etcd.go,
- MakeConnectOptsFromUriOpts → lib/cluster/tarantool.go,
- ConnectTarantool → lib/cluster/tarantool.go.
- Added new submodule
lib/connect.
-
tt pack: added TCM packing when executing the tt pack command, except for the flag without-binaries in this case TCM will not be in the archive. -
Arguments of an internal command are not parsed if it is forced over its existent external counterpart.
-
aeon: fix SSL paths configuration for aeon connection.
-
tt pack rpm: failed to pack if only one of--preinst/--postinstoptions is specified.
The release introduces minor changes in stabilization of tt connect
command. Expanded possibility to connect to aeon base.
Improvement in the work of templates.
tt aeon connect: add connection from theapp:instance_name.- Added support for the
{{ metricsPort }}construct in Go text templates. This new function allows template users to generate a monitoring port value directly within their templates, providing more flexibility and simplifying configuration management.
tt connect: allow to disconnect withCtrl+CorCtrl+\if script execution hung.- Moved
cluster.cmd.UriOptstoconnect.UriOpts.
tt connect: return Lua parse error.tt connect: panic on render empty table.ttcan be built without linking to OpenSSL.
The release introduces an expanded ways to connect to aeon DB using:
configuration file and fixing of using root certificates.
TCM binary could be packed with pack subcommand.
tt pack: added TCM file packaging.tt aeon connect: add connection from the cluster config.
tt aeon: did not use system CAs by default.
The release introduces an experimental support of console for AeonDB and
continues to improve tt play command.
tt aeon connect: add support to connect Aeon database.tt play: support of the SSL parameters by using next flags:sslkeyfile- path to a private SSL key file,sslcertfile- path to an SSL certificate file,sslcafile- path to a trusted certificate authorities (CA) file,sslciphers- colon-separated list of SSL cipher suites the connection.
tt play: support connection to a target instance byapplicationname orapplication:instancename.tt coredump pack: add options to customize coredump packing:-e (--executable): specify Tarantool executable path.-p (--pid): specify PID of the dumped process.-t (--time): specify time of dump (seconds since the Epoch).
tt.yaml: allows to specify a list of modules directories.- Environment variable TT_CLI_MODULES_PATH can be used to specify an extra path with modules.
tt stop/kill/clean/logrotate: no longer need:- Instances scripts for multi-instance applications.
- Cluster config for tarantool3-based cluster applications.
tt logrotate: don't exit at non-running instance, just warn and proceed with the other instances, likett stopandtt killdo.tt coredump pack: if-eoption is omitted first search tarantool executable in tt environment then inPATHinstead of using the hardcoded path/usr/bin/tarantool.tt replicaset downgrade: drop option-v(--version). Pass version as a positional argument rather than option.
tt coredump inspect: fails for tarantool-ee coredump archive if the source directory is missing.tt pack: fails ifetcdortcsare present in the configuration and not available.
The release introduces upgrade and downgrade subcommands for
tt replicaset and adds minor improves to tt cat, tt play and
tt connect.
tt replicaset downgrade: command to downgrade the schema on a Tarantool cluster.-v (--version): (required) specify schema version to downgrade to.-r (--replicaset): specify the replicaset name(s) to downgrade.-t (--timeout): timeout for waiting the LSN synchronization (in seconds) (default 5).
tt replicaset upgrade: command to upgrade the schema on a Tarantool cluster.-r (--replicaset): specify the replicaset name(s) to upgrade.-t (--timeout): timeout for waiting the LSN synchronization (in seconds) (default 5).- supports upgrading the database schema on remote cluster by upgrading
each replicaset individually using
tt replicaset upgrade <URI>.
- New flag
--timestampoftt catandtt playcommands is added to specify operations ending with the given timestamp. This value can be specified as a number or using RFC3339/RFC3339Nano time format. tt connect: add new--evaleroption to support for customizing the way user input is processed.tt cat/play: allows to specify a list of directories to search WAL files.
tt rocks: don't load local configs.
The release updates luarocks and libraries version.
tt rocks: a wrong Lua interpreter is selected.
The release updates the MessagePack library in a release build.
- Release packages were built using the outdated and buggy MessagePack library.
The release introduces a set of subcommands for replicaset roles, improves
clarity regarding the version number to install, enhances the status display,
and adds a flag to disable interactivity when the application is stopped.
Additionally, several fixes were implemented to improve stability.
tt status: displayconfig,box, andreplication upstreamstatuses.--details: display detailed reports of errors and warnings from instances.
tt stopconfirmation prompt.-yoption is added to accept stop without prompting.tt cluster replicaset roles add: command to add roles in config scope provided by flags.tt cluster replicaset roles remove: command to remove roles from config scope provided by flags.tt replicaset roles add: command to add roles in the tarantool replicaset with cluster config (3.0) or cartridge orchestrator.tt replicaset roles remove: command to remove roles in the tarantool replicaset with cluster config (3.0) or cartridge orchestrator.tt install tt|tarantool <version>- allow be incomplete. So2.3will install the the last available release with specified <major=2>.<minor=3> in .
tt consolecommand\set delimiter [marker]don't hangtt.tt log -fcrash on removing log directory.tt connectcrash due to an empty response.tt starterror on start Tarantool 3 with encrypted etcd.tt replicaset vshard bootstrapunable to bootstrap large clusters due to a timeout.tt replicaset vshard bootstraptimeout was 3s instead of 10s.
tt log: a module for viewing instances logs. Supported options:--linesnumber of lines to print.--followprint appended data as log files grow.
tt connect: support format for Tarantool tuples for Tarantool versions >= 3.2.tt enable: create a symbolic link in 'instances_enabled' directory to a script or an application directory.tt replicaset bootstrap: command to bootstrap a Cartridge cluster or an instance.tt rs rebootstrap: re-bootstraps an instance.-s (--self)flag to executettitself and don't search for othertts in bin_dir provided in config.tt startinteractive mode with-ioption.
- Sorted by name order of columns for
tableandttableformats. tt switch tt: does not work withx.x.xversion format.tt install ttreturns expected exit status code on unsuccessful dependency check.tt pack: failed to start instances using systemctl due topermissions denied.tt uninstall tt: does not work withx.y.zversion format.- Ability to update a latest version of
mastertarantool and tt withtt install.
- Do not create Dockerfile.* in application's directory.
- Building Linux AArch64
ttpackages.
tt status: displays the mode of the instance.tt coredump: enhances coredump inspection:tt coredump pack: puts gdb.sh and GDB-extensions into the archive so that it contains everything necessary for convenient coredump inspection.tt coredump inspect: allows archive path as an argument (archive should be created withtt coredump pack).tt coredump inspect: added-soption to specify the location of tarantool sources.
tt cluster publish: ability to publish a new instance config.tt packdoes not create unnecessary directories and removes files that are required only for building from the resulting package.
tt cluster failover: added supervised failover management commands.tt status: addedprettyoption for pretty-formatted table output.TT_CLI_CFG: environment variable to specify the path to the configuration file.tt pack: systemd unit parameterize support.tt replicaset vshard: module to manage vshard in the tarantool replicaset.tt replicaset vshard bootstrap: command to bootstrap vshard.
tt cleanno longer tries to clean files multiple times.- Tarantool 3 config instance fails to use 108 symbols control socket on
tt start. - Incorrect application name in case of explicit providing config path without directories.
- Application build failure during pack with Tarantool from the current environment.
tt create: added single instance application template.tt replicaset promote: command to promote an instance in the tarantool replicaset with cluster config (3.0) or cartridge orchestrator.tt replicaset demote: command to demote an instance in the tarantool replicaset with cluster config (3.0) orchestrator.tt cluster replicaset: module to manage replicaset via 3.0 cluster config storage.tt cluster replicaset promote: command to promote an instance in the replicaset.tt cluster replicaset demote: command to demote an instance in the replicaset.
tt connect --binary: connect to instance using binary port.tt kill: command to stop instance(s) with SIGQUIT and SIGKILL signals.
tt startnow creates binary port.
tt packgenerates a separate systemd unit for each packed application. Common (all instances) unit is removed.tt packdefault data, run, log files location is changed for rpm/deb packages to/var/[log | run | lib]/tarantool/<env_name>- create
/var/[log | run | lib]/tarantool/<env_name>on target system for packed applications.
tt start: not working on FreeBSD.tt packandtt buildfail in verbose mode with "invalid argument" error.tt packpacks applications, which are not valid: instances file is empty, for example.tt packwith--use-dockerfails due to incompatible versions ofttbetween local system and docker container. Install currentttversion in docker image if possible.tt binaries listinvalid argument error iftarantoolis not a symlink.- if a user provides pre or post install script to
tt pack rpm, it uses file name as a script instead of its content.
- Built-in vshard cluster application template.
- Building tt in Linux-aarch64, FreeBSD environments.
tt binaries switch: switch to installed binary.tt download: download Tarantool SDK.
tt replicaset: prefer cartridge instances without critical issues on it during discovery.tt binariesrenamed tott binaries list
tt rocks: not working on macOs.tt install tarantoolfails due to checkout error.tt binaries list: not showingactivetag formasterversion.- missing 3.0 SDK in search results for
tarantool-ee.
- Module
tt replicaset, to manage replicasets:tt replicaset statusto show a cluster status information.
- Disable
tt runtarantool flag parsing.
tt start: not working globalttflags.
- Make cartridge app dependencies less strict.
tt connectauto-completion shows directories and files when there are no running apps.tt rocks --servernow accepts several URL's.- Disable
tt runtarantool flag parsing. - Now
tt runstarts instance without our wrapper.
tt env: add current environment binaries location to the PATH variable.tt cluster: add an ability to specify a key forshow/publishvia URI.tt cluster: add an ability to publish/show configuration from tarantool config storage.
- Print log messages to stderr.
- Global flags are required to be positioned only before child
commands. Example:
tt --cfg tt.yaml install tt. - tt config format: separate tt environment options from application options.
- tt version: additional version information for non-release builds.
- Working directory is changed to an application source directory. If the application is a script, new working directory will be created in instances enabled location.
- Re-worked application runtime artifacts layout:
appsection relative paths are considered relative to working directory, which is an application source directory. Application name sub-directory no longer used for relative paths. Default names are changed for PID-files, control sockets and log files. - Enable logging to file by default for
tarantoolcluster instances. Default log file name for an instance istarantool.log.tarantool's stdout/stderr andttlogs go tott.logfile. - Remove URI with credentials from console title and prompt.
- Ignore app-instance delimiters for Tarantool 3.0 instances.
- Don't use dash as an app-instance delimiter. At the same time,
cartridge_app-stateboardtreated as a special case. - Log rotation functionality and configuration is removed from
tt.tt logrotatecommand re-opens a log file and sends SIGHUP to the childtarantoolprocesses. tt cat: all diagnostic messages are printed to stderr.- Print
tarantoolstdout/stderr and watchdog logs to the same log file -tt.log.
- tt completion: added luarocks completions.
- tarantool-ee: search and install development builds.
tt play: ability to pass username and password via flags and environment variables.- tt cluster: credentials could be passed via environment variables and command flags.
tt rocks: broken--verboseoption.tt binaries: tarantool-ee binaries not shown.tt cluster: recognize app:instance as a etcd URL.
- Use CLI arg connect string for the prompt line and the title to avoid too long prompt line when using 'app:instance' target format.
tt rocks: luarocks version has been updated to 3.9.2.
tt install tarantool/tt: ability to install tarantool and tt from an arbitrary commit. The binary has the name tt/tarantool_ + seven-digit hash.- New
tt packflag--tarantool-versionis added to specify tarantool version for pack in docker. It is supported only with--use-dockerenabled. - Module
tt cluster, to show or publish a cluster or an instance configuration. tt connect: added command\helpto show the help with a list of available commands.tt connect: added command\quitto quit from the console.tt connect: expanded formatting modes for the interactive console.tt rocks: addedadmincommands tree.tt rocks adminimplementsluarocks-admincommands tree.
- Installation failure from a commit hash.
- Crash on
tt install <tool> master. --with-binariesflag fortt packnot working while packing with--cartridge-compat.tarantoolbinary afterpacknow always named"tarantool".
tt packnow skips all.gitfiles in packed environment, not only in main directory.tt connect: the reverse search function to work consistently with tarantool.
tt install tarantool-dev: ability to install tarantool from the local build directory.tt uninstall: smart auto-completion. It shows installed versions of programs.tt uninstall: when removing symlinks and an existing installed version, the symlink will be switched to the latest installed version, so thatttcan continue working with the program.tt connect: support for multi-line commands in the history.- New
tt packflag--cartridge-compatis added to maintain backward compatibility with the cartridge-cli. It is supported only bytgztype packing. tt pack: added option--without-modulesallowing not to take external modules into the pack bundle.tt connect: added command\shortcutslisting all available shortcuts and hotkeys in go-prompt.- initial support for Tarantool 3.0 instances running using cluster config.
tt install tarantool: symlink to the directory with tarantool headers is now updated when installing an existing version.tt connect: terminal failure after throwing an error.
- Set
compat.fiber_slice_defaulttonewby default in cartridge application template. - Treat the directory containing the instances file (instances.y[a]ml) as an application.
tt connect: support for the../and~/at the beginning of the URI, when using unix sockets.
- Panic in tarantool 1.10.15 static build by
tt. - Removed
--use-dockerflag fromtt uninstall tarantoolsince it was added by mistake.
tt buildnow hides building output if-Vis not provided.
tt startnow does not start an instance if it is already running.tt rocksuses rocks repo path relative to tt environment config location.tt connectnow does not crash on\qinput.
- smart auto-completion for
tt start,tt stop,tt restart,tt connect,tt build,tt clean,tt logrotate,tt status. It shows suitable apps, in case of the pattern doesn't contain delimiter:, and suitable instances otherwise. - support tt environment directories overriding using environment variables:
- TT_CLI_REPO_ROCKS environment variable value is used as rocks repository path if it is set and there is no tt.repo.rocks in tt configuration file or tt.repo.rocks directory does not include repository manifest file.
- TT_CLI_TARANTOOL_PREFIX environment variable value is used for as tarantool installation prefix directory for rocks commands if it is set and tarantool executable is found in PATH.
- smart auto-completion for
tt create. It shows a list of built-in templates and templates from the config. tt connect: support for the timestamp format in the history file.
tt install tarantoolwithout version specification now installs the latest release.tt install/search tarantool-eenow uses credentials fromtarantool.iocustomer zone. Also, installation now requires specifying the version.tt search tarantool-eeoptions changed. A new--versionflag has been added to allow search for a specific release. The--devand--dbgoptions have been merged into a single--debugoption.tt searchnow uses subcommands for searching tarantool/tarantool-ee/tt binaries
--dynamicoption fortt install tarantoolcommand to build non-static tarantool executable.
tt connectcommand does not break a console after executingos.exit()command anymore.
tt cartridgecommand takes into account run dir path from thettenvironment. So most of thett cartridgesub-commands are able to work without specifying--run-diroption.tt installcommand checks it's write rights to binary and include directories before installing binaries.
tt install/uninstallcommand line interface is updated. Program names have become sub-commands with their own options.
- A configurable variable
cluster_cookiefortt create cartridgetemplate. tt buildaccepts application name for building.- Creating wal, vinyl and memtx directories for
tt pack. If these directories are not located in the same directory in the environment for packing, the result package will contain separate snap/vinyl/wal directories for corresponding artifacts.
- Packing symlinks into RPM package.
tt uninstalldoes not ask version if only one version of a program is installed.tt rocks initis disabled.
- Follow-up message support for application templates.
- tarantool_layout config option to enable compatibility mode with tarantoolctl
artifacts layout. If this option is set to
true,ttwill not create sub-directories for runtime artifacts such as control socket, pid file and log file. This option affects only single instance applications. - An ability to set different directories for WAL, vinyl and snapshots artifacts.
tt instancescommand to print a list of enabled applications.- SSL options for
tt connectcommand. - An ability to pass arguments to a connect command.
tt binariescommand. It shows a list of installed binaries and their versions.
- tt config is renamed to tt.yaml.
- Do not use
makecommand options fortarantoolbuild ifMAKEFLAGSenvironment variable is set. binaries,build,check,clean,create,install,instances,logrotate,pack,restart,run,start,status,stop,uninstallrequire environment configuration file.
- Output of the
helpwith all commands. - Allow more characters for URI credentials.
- Support of rocks repository specified in tt config.
cfg dumpmodule. It prints tt environment configuration.--use-dockeroption fortt packfor packing environments in docker container.- Support of MacOS.
- Updated cartridge-cli version to 2.12.4.
tt restartconfirmation prompt.-yoption is added to accept restart without prompting.tt packwill generate systemd unit for rpm and deb packages.--use-dockeroption fortt installto build Tarantool in Ubuntu 16.04 container.- Ability to use the
start/stop/restart/status/checkcommands without arguments to interact with all instances of the environment simultaneously. - Starting from version 2.8.1, we can specify configuration parameters of tarantool via special environment variables. Added support for this feature when running older versions of tarantools via tt.
tt cartridgesub-commandscreate,build,packare removed.removecommand is renamed touninstall.- Updated values in system
tarantool.yamlforbin_dir,inc_dirandrepo: distfiles.
- Working of the
helpmodule with multi-level commands (commands with several subcommands). - Using the system
tarantool.yamlwhen installing from the repository.
- Fixed building for MacOS.
- A unified error writing style has been introduced.
- Module
tt init, to create tt environment configuration file. - Module
tt daemon, to manage thettdaemon. - Built-in application templates support. Cartridge application template is added.
- Using
default_cfgfrom.tarantoolctlfortarantool.yamlgeneration intt init.
- Modules
tt start,tt connectandtt cartridgenow use relative paths for unix sockets. It allows to use socket paths longer than sun_path limit.(108/106 on linux/macOS) e.g foo/bar.sock -> ./bar.sock
- Module
tt version, to get information about the version of the CLI. - Module
tt completion, to generate autocompletion for a specified shell. - Module
tt help, to get information about the CLI and its modules. - Module
tt start, responsible for launching the instance according to the application file. - Module
tt stop, responsible for terminating the instance. - Module
tt status, to get information about the state of the instance. - Module
tt restart, responsible for restarting of the instance. - Module
tt logrotate, to rotate instance logs. - Module
tt check, to check an application file for syntax errors. - Module
tt connect, used to connect to a running instance. - Module
tt rocks, LuaRocks package manager. - Module
tt cat, to print into stdout the contents of .snap/.xlog files. - Module
tt play, to play the contents of .snap/.xlog files to another Tarantool instance. - Module
tt coredump, to pack/unpack/inspect tarantool coredump. - Module
tt run, to start tarantool instance using tt wrapper. - Module
tt search, to show available tt/tarantool versions. - Module
tt create, to create an application from a template. - Module
tt build, to build an application. - Module
tt install, to install tarantool/tt. - Module
tt remove, to remove tarantool/tt.