๐ Pluggable Architecture
Ivory started as a Postgres/Patroni-only tool. v2 is the first step towards a pluggable architecture, where support for other databases and HA tools is added as plugins instead of being baked into the core.
- New core concept โ Keeper: a generic management layer responsible for cluster manipulations. A Keeper can be a standalone agent running beside the database, or a management system embedded directly in the database engine
- Patroni is now just one Keeper implementation (for PostgreSQL) among others
- Groundwork laid for growing database/HA-tool support without touching the core
๐๏ธ New Database & Tooling Support
With the pluggable Keeper architecture in place, v2 ships the first wave of database and DCS support beyond Patroni. Here's what's now on board:
- PostgreSQL (Patroni) โ the original Keeper implementation, carried over from v1
- MongoDB โ first non-Patroni Keeper, bringing native replica-set HA management into Ivory
- Redis โ initial plugin support for Redis clusters/replication
- ClickHouse โ initial plugin support, coordinating replication over a real ZooKeeper protocol
- Zookeeper โ usable both as its own managed ensemble and as the external DCS other keepers point at
- etcd โ added as an additional DCS option alongside Zookeeper
๐ Cluster Deployment
- Deploy fresh clusters directly from Ivory, instead of only registering existing ones โ clusters can now be created end-to-end from the UI
- Deployment templates โ reusable templates let you define cluster configuration once with you own docker image and spin up new clusters from them instead of filling out the same setup every time
๐ค User Management
- New user management system in Settings โ admins can now create additional Ivory users directly from the UI, instead of user accounts being limited/managed externally
๐งน Maintenance
- Dependency bumps
- Release preparation and stabilization work across alpha/beta cycles
โ ๏ธ Breaking Changes
This release requires a fresh installation. As with v1.4.0, a major architecture change (pluggable Keeper model) means v2.0.0 is not guaranteed to be backward compatible with v1.4.x.
Before upgrading:
- Export cluster configurations and credentials
- Back up custom queries and templates
- Use Ivory's Backup/Restore feature (Settings page) where possible, or check the [backward compatibility page](https://github.com/veegres/ivory/blob/master/SECURITY.md) before mounting the same data directory across major versions
What's Changed
- cluster deployment by [@anselvo](https://github.com/anselvo) in [#724](#724)
- add redis, clickhouse, zookeper plugins by [@anselvo](https://github.com/anselvo) in [#731](#731)
- improve item in settings by [@anselvo](https://github.com/anselvo) in [#734](#734)
- mongo keeper by [@anselvo](https://github.com/anselvo) in [#735](#735)
- release preparation by [@anselvo](https://github.com/anselvo) in [#741](#741)
- finale by [@anselvo](https://github.com/anselvo) in [#744](#744)
- Bump github/codeql-action from 4 to 4.37.3 by [@dependabot](https://github.com/dependabot) in [#682](#682)
- Bump github/codeql-action from 4.37.3 to 4.37.4 by [@dependabot](https://github.com/dependabot) in [#732](#732)
- Bump github/codeql-action from 4.37.4 to 4.37.9 by [@dependabot](https://github.com/dependabot) in [#740](#740)
Full Changelog: [v1.4.2...master](v1.4.2...master)