🔌 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)