Skip to content

1.2.0

Latest

Choose a tag to compare

@peshay peshay released this 30 Nov 09:55

Summary

This release updates the role to use current PostgreSQL PGDG packages (including PostgreSQL 17), improves default observability via pg_stat_statements, and refreshes the CI/Molecule setup. It also adds automation to publish the role to Ansible Galaxy on GitHub releases.

Potentially breaking / behaviour changes

  • The default PostgreSQL version installed by the role changes from 15.3 to 17.6.
  • Package handling is now based on explicit PGDG package/version/release variables. Existing users who relied on the previous implicit package naming or default version may see a change in what gets installed unless they pin postgresql_version (and related variables) explicitly.

Added

  • Support for PostgreSQL 17 via PGDG packages.
  • Extended, verified matrix of OS/PostgreSQL combinations in the README:
    • Rocky Linux 8/9 with PostgreSQL 14.19, 15.14, 16.10, and 17.6.
  • New defaults for observability:
    • postgresql_required_shared_preload_libraries now includes pg_stat_statements by default.
    • postgresql_extensions ensures pg_stat_statements is installed in the postgres database.
  • New defaults for PGDG repository handling:
    • Architecture-aware GPG key lists for x86_64 and aarch64/arm64.
    • Derived postgresql_pgdg_repo_arch and postgresql_pgdg_repo_url for building the correct PGDG repo configuration.

Changed

  • Default PostgreSQL version:
    • postgresql_version changed from "15.3" to "17.6".
  • Package pinning behaviour:
    • New postgresql_package_version (defaults to the value of postgresql_version) to control whether packages are pinned to a specific patch version.
    • New postgresql_package_release (defaults to 1PGDG.rhel{{ postgresql_distribution_major_version }}) to control the PGDG release suffix.
    • New postgresql_package_version_suffix helper for building package names:
      • Server and contrib packages now use postgresql{{ postgresql_version_major }}-server{{ postgresql_package_version_suffix }} and postgresql{{ postgresql_version_major }}-contrib{{ postgresql_package_version_suffix }} instead of hard-coding the version.
  • README updates:
    • Describes support for PostgreSQL 14–17.
    • Documents the new pg_stat_statements defaults.
    • Documents the package pinning behaviour with postgresql_package_version and postgresql_package_release.
    • Example playbook now uses postgresql_version: 17.6.

CI, Molecule & Internal

  • Added an ansible.cfg for Molecule runs to force a stable remote_tmp directory under /var/tmp/ansible-tmp.
  • Modernised CI workflow:
    • Uses ubuntu-latest instead of ubuntu-20.04.
    • Updates actions/checkout to @v5.
    • Switches ansible-lint to ansible-actions/ansible-lint-action@v1.1.0 with an explicit target: ..
  • Molecule test matrix refresh:
    • Replaces eniocarboni/docker-rockylinux-systemd images with geerlingguy/docker-rockylinux*-ansible images.
    • Tests relevant combinations of Rocky 8/9 and PostgreSQL versions (14.19, 15.14, 16.10, 17.6).
    • Later CI tweaks reduce the matrix to a smaller set of versions and limit max-parallel to keep runs manageable.
  • New Galaxy release job in ci.yml:
    • Triggered on release.published.
    • Installs ansible-core and runs
      ansible-galaxy role import ahu-services ansible-role-postgresql
      to publish the new version to Ansible Galaxy.
  • Repository hygiene:
    • Added .gitignore.
    • Removed editor-specific .vscode configuration from the role.