Repository navigation
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.3to17.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_librariesnow includespg_stat_statementsby default.postgresql_extensionsensurespg_stat_statementsis installed in thepostgresdatabase.
- New defaults for PGDG repository handling:
- Architecture-aware GPG key lists for x86_64 and aarch64/arm64.
- Derived
postgresql_pgdg_repo_archandpostgresql_pgdg_repo_urlfor building the correct PGDG repo configuration.
Changed
- Default PostgreSQL version:
postgresql_versionchanged from"15.3"to"17.6".
- Package pinning behaviour:
- New
postgresql_package_version(defaults to the value ofpostgresql_version) to control whether packages are pinned to a specific patch version. - New
postgresql_package_release(defaults to1PGDG.rhel{{ postgresql_distribution_major_version }}) to control the PGDG release suffix. - New
postgresql_package_version_suffixhelper for building package names:- Server and contrib packages now use
postgresql{{ postgresql_version_major }}-server{{ postgresql_package_version_suffix }}andpostgresql{{ postgresql_version_major }}-contrib{{ postgresql_package_version_suffix }}instead of hard-coding the version.
- Server and contrib packages now use
- New
- README updates:
- Describes support for PostgreSQL 14–17.
- Documents the new
pg_stat_statementsdefaults. - Documents the package pinning behaviour with
postgresql_package_versionandpostgresql_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_tmpdirectory under/var/tmp/ansible-tmp. - Modernised CI workflow:
- Uses
ubuntu-latestinstead ofubuntu-20.04. - Updates
actions/checkoutto@v5. - Switches
ansible-linttoansible-actions/ansible-lint-action@v1.1.0with an explicittarget: ..
- Uses
- Molecule test matrix refresh:
- Replaces
eniocarboni/docker-rockylinux-systemdimages withgeerlingguy/docker-rockylinux*-ansibleimages. - 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-parallelto keep runs manageable.
- Replaces
- New Galaxy release job in
ci.yml:- Triggered on
release.published. - Installs
ansible-coreand runs
ansible-galaxy role import ahu-services ansible-role-postgresql
to publish the new version to Ansible Galaxy.
- Triggered on
- Repository hygiene:
- Added
.gitignore. - Removed editor-specific
.vscodeconfiguration from the role.
- Added