--- # ============================================================================ # PostgreSQL container (Quadlet) # ============================================================================ - name: Deploy PostgreSQL Quadlet ansible.builtin.template: src: semaphore-postgres.container.j2 dest: "{{ semaphore_quadlet_dir }}/{{ semaphore_postgres_container_name }}.container" owner: root group: root mode: "0644" register: postgres_quadlet - name: Reload systemd to pick up Quadlet changes ansible.builtin.systemd: daemon_reload: true when: postgres_quadlet.changed - name: Ensure PostgreSQL container is started and enabled ansible.builtin.systemd: name: "{{ semaphore_postgres_container_name }}.service" state: started enabled: true - name: Wait for PostgreSQL to accept connections ansible.builtin.command: cmd: >- podman exec {{ semaphore_postgres_container_name }} pg_isready -U {{ semaphore_db_user }} -d {{ semaphore_db_name }} register: pg_ready until: pg_ready.rc == 0 retries: 30 delay: 2 changed_when: false # Same Quadlet-restart caveat as Semaphore: regenerated unit but the # running container keeps its original env until forced. - name: Restart PostgreSQL on Quadlet change ansible.builtin.systemd: name: "{{ semaphore_postgres_container_name }}.service" state: restarted when: postgres_quadlet.changed