From 0de5ea44ac584a16ae2e3ba8c833a8e2724fed24 Mon Sep 17 00:00:00 2001 From: Mathieu Garcia Date: Thu, 6 Nov 2025 15:54:01 +0100 Subject: [PATCH] feat(postgresql): switch to official postgres image and adjust paths --- .../saas/roles/postgresql/tasks/build.yml | 2 +- .../saas/roles/postgresql/tasks/main.yml | 15 ++++----------- .../saas/roles/postgresql/templates/nomad.hcl | 13 +++++++++---- .../playbooks/saas/roles/postgresql/vars/main.yml | 2 -- 4 files changed, 14 insertions(+), 18 deletions(-) diff --git a/ansible/playbooks/saas/roles/postgresql/tasks/build.yml b/ansible/playbooks/saas/roles/postgresql/tasks/build.yml index f28cf257..416eb26b 100644 --- a/ansible/playbooks/saas/roles/postgresql/tasks/build.yml +++ b/ansible/playbooks/saas/roles/postgresql/tasks/build.yml @@ -1,7 +1,7 @@ --- - name: Set custom variables ansible.builtin.set_fact: - image_version: "{{ latest_version }}" + image_version: "18.0" image_name: "{{ image.name }}" image_labels: "{{ image.labels }}" image_build: "{{ image.build }}" diff --git a/ansible/playbooks/saas/roles/postgresql/tasks/main.yml b/ansible/playbooks/saas/roles/postgresql/tasks/main.yml index f3a78961..690840ea 100644 --- a/ansible/playbooks/saas/roles/postgresql/tasks/main.yml +++ b/ansible/playbooks/saas/roles/postgresql/tasks/main.yml @@ -5,20 +5,12 @@ state: directory owner: "{{ item.owner | default('root') }}" group: "{{ item.group | default('root') }}" - mode: "{{ item.mode | default('0755') }}" + mode: "{{ item.mode | default('0755') }}" loop: - - path: "{{ software_path }}/bitnami/postgresql" - - path: "{{ software_path }}/bitnami/postgresql/data" - owner: 1001 - group: root - - path: "{{ software_path }}/var/backup" - owner: nobody - group: nogroup - mode: '777' - - path: "{{ software_path }}/tmp" + - path: "{{ software_path }}/var/lib/postgresql" owner: root group: root - mode: '1777' + delegate_to: "{{ software.instance }}" - name: Copy script to operate software ansible.builtin.copy: @@ -30,6 +22,7 @@ loop: - backup - restore + delegate_to: "{{ software.instance }}" - name: Copy nomad job ansible.builtin.template: diff --git a/ansible/playbooks/saas/roles/postgresql/templates/nomad.hcl b/ansible/playbooks/saas/roles/postgresql/templates/nomad.hcl index 8bce6575..1368f368 100644 --- a/ansible/playbooks/saas/roles/postgresql/templates/nomad.hcl +++ b/ansible/playbooks/saas/roles/postgresql/templates/nomad.hcl @@ -21,11 +21,14 @@ job "{{ domain }}" { network { port "postgresql" { to = 5432 +{% if software.static_port is defined %} + static = {{ software.static_port }} +{% endif %} } } service { - name = "{{ service_name }}-postgresql" + name = "{{ service_name }}" port = "postgresql" provider = "nomad" tags = [] @@ -36,13 +39,15 @@ job "{{ domain }}" { driver = "docker" env { - POSTGRESQL_PASSWORD = "{{ lookup('simple-stack-ui', type='secret', key=domain, subkey='passwd', missing='create', length=12) }}" + POSTGRES_PASSWORD = "{{ lookup('simple-stack-ui', type='secret', key=domain, subkey='passwd', missing='create', length=12) }}" + POSTGRES_HOST_AUTH_METHOD = "trust" } config { - image = "bitnami/postgresql:{{ softwares.postgresql.version }}" + image = "postgres:{{ softwares.postgresql.version }}" + ports = ["postgresql"] volumes = [ - "{{ software_path }}/bitnami/postgresql:/bitnami/postgresql:rw", + "{{ software_path }}/var/lib/postgresql:/var/lib/postgresql:rw", "{{ software_path }}/tmp:/tmp:rw" ] } diff --git a/ansible/playbooks/saas/roles/postgresql/vars/main.yml b/ansible/playbooks/saas/roles/postgresql/vars/main.yml index 55ad2b2b..62f71dd5 100644 --- a/ansible/playbooks/saas/roles/postgresql/vars/main.yml +++ b/ansible/playbooks/saas/roles/postgresql/vars/main.yml @@ -11,5 +11,3 @@ image: os: linux labels: {} name: postgresql - -latest_version: "17.4.0"