We are excited to announce the release of version 2.0 🎉 , a major update that brings significant new features to the postgresql_cluster
project:
- This release introduces the capability to deploy PostgreSQL clusters across various cloud providers, including AWS, GCP, Azure, DigitalOcean, and Hetzner Cloud.
- Additionally, we’ve developed a User Interface (UI) - PostgreSQL Cluster Console, designed to streamline the deployment process, making it easier than ever to set up your clusters.
With this release, postgresql_cluster
will automatically configure the following:
- A virtual machine (with a dedicated data disk), with all cluster components installed and configured.
- A cloud load balancer to serve as the entry point for database connections.
- A storage bucket, and configured backups using pgBackRest.
🙏 A special thanks to @gslabs-dev for his contribution, @Rainbrand for developing the UI, and @ngurban for the API development.
✨Inspiration: We drew inspiration from the designs of Google Cloud Console, Aiven for PostgreSQL, and Postgres.AI, which greatly influenced our approach.
🔭 Looking ahead, we are planning to enhance the PostgreSQL Cluster Console with features that will enable you to manage your PostgreSQL clusters directly through the UI. If you’re interested in supporting the continued development of this feature, please consider becoming a sponsor.
New features
- Provision of resources in a popular cloud providers for PostgreSQL cluster deployment by @vitabaks in #464
- PostgreSQL Cluster Console (UI/API) by @gslabs-dev in #667
- Docker image '
vitabaks/postgresql_cluster
'- includes repository code, ansible, and all necessary dependencies.
- New roles:
authorized-keys
- These SSH public keys will be added to the server's ~/.ssh/authorized_keys file.
- variable:
ssh_public_keys
(optional, default '')
mount
- Configure mount points in
/etc/fstab
and mount the file system - variables:
mount
(optional, default ''),pg_data_mount_path
(default '/pgdata'),pg_data_mount_fstype
(default 'ext4') - Note: an empty disk will be automatically detected for cloud providers.
- ZFS pool will be created if '
zfs
' specified in themount.fstype
variable.
- Configure mount points in
- Automatically generate passwords (if not defined) for:
patroni_superuser_password
,patroni_replication_password
,patroni_restapi_password
,pgbouncer_auth_password
. - install
perf
,FlameGraph
and postgres dbgsym/debuginfo packages- variable
install_perf
, default 'false'
- variable
- Extension Auto-Setup
- This feature simplifies the integration and configuration process for PostgreSQL third-party extensions. This automated approach eliminates the need for manual configuration, allowing users to seamlessly integrate PostgreSQL extensions. To activate the "Extension Auto-Setup", specify the
enable_<extension_name>=true
variable. - List of extensions: timescaledb, citus, pg_repack, pg_cron, pgaudit, pgvector, postgis, pgrouting, pg_stat_kcache, pg_wait_sampling, pg_partman
- This feature simplifies the integration and configuration process for PostgreSQL third-party extensions. This automated approach eliminates the need for manual configuration, allowing users to seamlessly integrate PostgreSQL extensions. To activate the "Extension Auto-Setup", specify the
- Add the ability to execute pre and post-deploy command
- Variables:
pre_deploy_command
,post_deploy_command
- This can be a direct command, a bash script content, or a path to a script on the host.
- Variables:
Other changes
- Support Ubuntu 24.04; Install Patroni via deb/rpm package by @vitabaks in #642
- Update WAL-G to v3.0.3 by @vitabaks in #725
- Remove support for RHEL 7, Debian 10 and Ubuntu 20.04 by @vitabaks in #729
- Added default
ansible_python_interpreter
; Compatibility with Ansible 10 by @tk-nguyen in #730 - Using deb822_repository module instead of apt_key and apt_repository by @FactorT in #591
- Remove extra quotes from log_line_prefix by @vitabaks in #733
New Contributors
- @tk-nguyen made their first contribution in #730
- @Rainbrand (UI)
- @ngurban (API)
Full Changelog: 1.11.0...2.0.0