Skip to content
Release 1.0.0

Added

- New parameter `topology.replicasets[].all_rw` in clusterwide config
for configuring all instances in the replicaset as `read_only = false`.
It can be managed with both GraphQL and Lua API `edit_replicaset`.

- Remote Control server - a partial replacement for the
`box.cfg({listen})`, independent on `box.cfg`. The server is only to be
used internally for bootstrapping new instances.

- New module `argparse` for gathering configuration options from
command-line arguments, environment variables, and configuration files.
It is used internally and overrides `cluster.cfg` and `box.cfg` options.

- Auth parameter `cookie_max_age` is now configurable with GraphQL API.
Also now it's stored in clusterwide config, so changing it on a single
server will affect all others in cluster.

- Detect that we run under systemd and switch to syslog logging from
stderr. This allows to filter log messages by severity with `journalctl`

- Redesign WebUI

Changed

- The project renamed to **cartridge**. Use `require('cartridge')`
instead of `require('cluster')`. All submodules are renamed too.
**(incompatible change)**

- Submodule `cluster.test_helpers` renamed to `cartridge.test-helpers`
for consistency. **(incompatible change)**

- Modifying auth params with GraphQL before the cluster was bootstrapped
is now forbidden and returns an error.

- Introducing a new auth parameter `cookie_renew_age`. When cluster
handles an HTTP request with the cookie, whose age in older then
specified, it refreshes the cookie. It may be useful to set
`cookie_max_age` to a small value (for example 10 minutes), so the user
will be logged out after `cookie_max_age` seconds of inactivity.
Otherwise, if he's active, the cookie will be updated every
`cookie_renew_age` seconds and the session will not be interrupted.

- Changed configuration options for `cluster.cfg()`: `roles` now is a
mandatory table, `workdir` is optional now (defaults to ".")

- Parameter `advertise_uri` is optional now, default value is derived as
follows. `advertise_uri` is a compound of `<HOST>` and `<PORT>`. When
`<HOST>` isn't specified, it's detected as the only non-local IP
address. If it can't be determined or there is more than one IP address
available it defaults to `"localhost"`. When `<PORT>` isn't specified,
it's derived from numeric suffix `_<N>` of `TARANTOOL_INSTANCE_NAME`:
`<PORT> = 3300+<N>`. Otherwise default `<PORT> = 3301` is used.

- Parameter `http_port` is derived from instance name too. If it can't
be derived it defaults to 8081. New parameter `http_enabled = false` is
used to disable it (by default it's enabled).

- Removed user `cluster`, which was used internally for orchestration
over netbox. Tarantool built-in user `admin` is used instead now. It can
also be used for HTTP authentication to access WebUI. Cluster cookie is
used as a password in both cases.

Removed

Two-layer table structure in API, which was deprecated earlier, is now
removed completely:

- `cartridge.service_registry.*`
- `cartridge.confapplier.*`
- `cartridge.admin.*`

Instead you can use top-level functions:

- `cartridge.config_get_readonly`
- `cartridge.config_get_deepcopy`
- `cartridge.config_patch_clusterwide`
- `cartridge.service_get`
- `cartridge.admin_get_servers`
- `cartridge.admin_get_replicasets`
- `cartridge.admin_probe_server`
- `cartridge.admin_join_server`
- `cartridge.admin_edit_server`
- `cartridge.admin_expel_server`
- `cartridge.admin_enable_servers`
- `cartridge.admin_disable_servers`
- `cartridge.admin_edit_replicaset`
- `cartridge.admin_get_failover`
- `cartridge.admin_enable_failover`
- `cartridge.admin_disable_failover`