Skip to content

Release 2.0 (Clouds and UI)

Latest
Compare
Choose a tag to compare
@vitabaks vitabaks released this 18 Aug 18:48
· 22 commits to master since this release
23d0219

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.

image

With this release, postgresql_cluster will automatically configure the following:

  1. A virtual machine (with a dedicated data disk), with all cluster components installed and configured.
  2. A cloud load balancer to serve as the entry point for database connections.
  3. 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 the mount.fstype variable.
  • 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'
  • 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
  • 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.

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

Full Changelog: 1.11.0...2.0.0