[2.5.0] - 2021-03-05 Issues and suggestions - Show an issue when `ConfiguringRoles` state gets stuck for more than 5s. - Show a suggestion to disable broken instances. - Show a suggestion to force reapply clusterwide configuration. Configuration options - New `cartridge.cfg` option `webui_enabled` (default: `true`). Otherwise, HTTP server remains operable (and GraphQL too), but serves user-defined roles API only. - New `cartridge.cfg` option `http_host` (default: `0.0.0.0`) which allows to specify the bind address of the HTTP server. Miscellaneous enhancements - Allow observing cluster from an unconfigured instance WebUI. - Introduce a new graphql parser (`libgraphqlparser` instead of `lulpeg`). It conforms to the newer GraphQL specification and provides better error messages. The "null" literal is now supported. But some other GraphQL expressions are considered invalid (e.g. empty subselection). - Properly handle etcd index updates while polling stateful failover updates. The problem affected long-running clusters and resulted in flooding logs with the "Etcd cluster id mismatch" warnings. - Refactor two-phase commit (`patch_clusterwide`) logics: don't use hardcoded timeout for the `prepare` stage, move `upload` to a separate stage. - Eliminate GraphQL error "No value provided for non-null ReplicaStatus" when a replica is removed from the `box.space._cluster`. - Allow specifying server zone in `join_server` API. - Don't make formatting ugly during config upload. - Hide the bootstrap button when it's not necessary (e.g. before the cluster is bootstrapped, and in vshardless cluster too). - Properly display an error if changing server zone fails. - Fix disabled instances style.