From a9c19fdc3ac5ea00f5106e7ed5116b9a0b063551 Mon Sep 17 00:00:00 2001 From: Douglas J Hunley Date: Fri, 21 Nov 2025 15:04:59 -0500 Subject: [PATCH 1/2] refactor: Move PostgreSQL auto_explain config to conf.d Moves `auto_explain.log_min_duration` setting from inline Dockerfile definitions and the main PostgreSQL configuration file to a dedicated `auto_explain.conf` file within the `conf.d` directory. This change centralizes the configuration for better management and consistency across different PostgreSQL versions. Updates PostgreSQL release versions in `ansible/vars.yml` with the project-specific suffix. --- Dockerfile-15 | 1 - Dockerfile-17 | 1 - Dockerfile-orioledb-17 | 1 - .../files/postgresql_config/conf.d/auto_explain.conf | 1 + ansible/files/postgresql_config/postgresql.conf.j2 | 1 - ansible/tasks/finalize-ami.yml | 11 +++++++++++ ansible/vars.yml | 6 +++--- 7 files changed, 15 insertions(+), 7 deletions(-) create mode 100644 ansible/files/postgresql_config/conf.d/auto_explain.conf diff --git a/Dockerfile-15 b/Dockerfile-15 index d1d34bca5..aa497a346 100644 --- a/Dockerfile-15 +++ b/Dockerfile-15 @@ -192,7 +192,6 @@ RUN sed -i \ #echo "pljava.libjvm_location = '/usr/lib/jvm/java-11-openjdk-${TARGETARCH}/lib/server/libjvm.so'" >> /etc/postgresql/postgresql.conf && \ echo "pgsodium.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \ echo "vault.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \ - echo 'auto_explain.log_min_duration = 10s' >> /etc/postgresql/postgresql.conf && \ usermod -aG postgres wal-g && \ mkdir -p /etc/postgresql-custom/conf.d && \ chown -R postgres:postgres /etc/postgresql-custom diff --git a/Dockerfile-17 b/Dockerfile-17 index 537a7fec3..2aeb44157 100644 --- a/Dockerfile-17 +++ b/Dockerfile-17 @@ -197,7 +197,6 @@ RUN sed -i \ #echo "pljava.libjvm_location = '/usr/lib/jvm/java-11-openjdk-${TARGETARCH}/lib/server/libjvm.so'" >> /etc/postgresql/postgresql.conf && \ echo "pgsodium.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \ echo "vault.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \ - echo 'auto_explain.log_min_duration = 10s' >> /etc/postgresql/postgresql.conf && \ usermod -aG postgres wal-g && \ mkdir -p /etc/postgresql-custom/conf.d && \ chown -R postgres:postgres /etc/postgresql-custom diff --git a/Dockerfile-orioledb-17 b/Dockerfile-orioledb-17 index 33184aba3..0e117ab05 100644 --- a/Dockerfile-orioledb-17 +++ b/Dockerfile-orioledb-17 @@ -197,7 +197,6 @@ RUN sed -i \ #echo "pljava.libjvm_location = '/usr/lib/jvm/java-11-openjdk-${TARGETARCH}/lib/server/libjvm.so'" >> /etc/postgresql/postgresql.conf && \ echo "pgsodium.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \ echo "vault.getkey_script= '/usr/lib/postgresql/bin/pgsodium_getkey.sh'" >> /etc/postgresql/postgresql.conf && \ - echo 'auto_explain.log_min_duration = 10s' >> /etc/postgresql/postgresql.conf && \ usermod -aG postgres wal-g && \ mkdir -p /etc/postgresql-custom/conf.d && \ chown -R postgres:postgres /etc/postgresql-custom diff --git a/ansible/files/postgresql_config/conf.d/auto_explain.conf b/ansible/files/postgresql_config/conf.d/auto_explain.conf new file mode 100644 index 000000000..c95c01e2a --- /dev/null +++ b/ansible/files/postgresql_config/conf.d/auto_explain.conf @@ -0,0 +1 @@ +auto_explain.log_min_duration = 10s diff --git a/ansible/files/postgresql_config/postgresql.conf.j2 b/ansible/files/postgresql_config/postgresql.conf.j2 index bc2eab604..fc77c63bc 100644 --- a/ansible/files/postgresql_config/postgresql.conf.j2 +++ b/ansible/files/postgresql_config/postgresql.conf.j2 @@ -773,5 +773,4 @@ include_dir = '/etc/postgresql-custom/conf.d' # include files ending in '.conf' #------------------------------------------------------------------------------ # Add settings for extensions here -auto_explain.log_min_duration = 10s cron.database_name = 'postgres' diff --git a/ansible/tasks/finalize-ami.yml b/ansible/tasks/finalize-ami.yml index 1cc729fc0..10202caac 100644 --- a/ansible/tasks/finalize-ami.yml +++ b/ansible/tasks/finalize-ami.yml @@ -4,6 +4,17 @@ group: 'postgres' src: 'files/postgresql_config/postgresql-csvlog.conf' +- name: auto_explain and pg_cron confs + ansible.builtin.template: + dest: "/etc/postgresql-custom/conf.d/{{ ext_item }}.conf" + group: 'postgres' + src: "files/postgresql_config/conf.d/{{ ext_item | split('_') | join('') }}.conf" + loop: + - auto_explain + # - pg_cron + loop_control: + loop_var: 'ext_item' + - name: UFW - Allow SSH connections community.general.ufw: name: 'OpenSSH' diff --git a/ansible/vars.yml b/ansible/vars.yml index a7e55c0a9..5423e9367 100644 --- a/ansible/vars.yml +++ b/ansible/vars.yml @@ -10,9 +10,9 @@ postgres_major: # Full version strings for each major version postgres_release: - postgresorioledb-17: "17.6.0.011-orioledb" - postgres17: "17.6.1.054" - postgres15: "15.14.1.054" + postgresorioledb-17: "17.6.0.011-orioledb-INDATA-255" + postgres17: "17.6.1.054-INDATA-255" + postgres15: "15.14.1.054-INDATA-255" # Non Postgres Extensions pgbouncer_release: 1.19.0 From 808110f89176d7657be02621efbde525f8dc54a4 Mon Sep 17 00:00:00 2001 From: Douglas J Hunley Date: Mon, 24 Nov 2025 16:15:29 -0500 Subject: [PATCH 2/2] refactor: Simplify PostgreSQL conf template sourcing The source path for PostgreSQL configuration templates has been simplified. Previously, underscores in `ext_item` were removed when constructing the template filename. This change removes that transformation, directly using `{{ ext_item }}.conf`. This implies that template files in `files/postgresql_config/conf.d/` now match the `ext_item` loop variables directly (e.g., `auto_explain.conf`). --- ansible/tasks/finalize-ami.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ansible/tasks/finalize-ami.yml b/ansible/tasks/finalize-ami.yml index 10202caac..5b9dee913 100644 --- a/ansible/tasks/finalize-ami.yml +++ b/ansible/tasks/finalize-ami.yml @@ -8,7 +8,7 @@ ansible.builtin.template: dest: "/etc/postgresql-custom/conf.d/{{ ext_item }}.conf" group: 'postgres' - src: "files/postgresql_config/conf.d/{{ ext_item | split('_') | join('') }}.conf" + src: "files/postgresql_config/conf.d/{{ ext_item }}.conf" loop: - auto_explain # - pg_cron