diff --git a/ansible/roles/semaphore/tasks/postgres.yml b/ansible/roles/semaphore/tasks/postgres.yml index 6883eb0..1318693 100644 --- a/ansible/roles/semaphore/tasks/postgres.yml +++ b/ansible/roles/semaphore/tasks/postgres.yml @@ -33,3 +33,11 @@ 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 diff --git a/ansible/roles/semaphore/tasks/semaphore.yml b/ansible/roles/semaphore/tasks/semaphore.yml index f7c24ac..4ef6389 100644 --- a/ansible/roles/semaphore/tasks/semaphore.yml +++ b/ansible/roles/semaphore/tasks/semaphore.yml @@ -22,3 +22,13 @@ name: "{{ semaphore_container_name }}.service" state: started enabled: true + +# Quadlet does NOT auto-restart a running container when its .container +# file changes — the systemd unit is regenerated, but the container +# process keeps its original env. Force a restart when the Quadlet +# template was modified so env-var changes actually take effect. +- name: Restart Semaphore on Quadlet change + ansible.builtin.systemd: + name: "{{ semaphore_container_name }}.service" + state: restarted + when: semaphore_quadlet.changed