fix(semaphore): force container restart when Quadlet template changes

Quadlet regenerates the systemd unit on daemon-reload but does not
restart the running container — the process keeps its original
environment until restarted. Add explicit 'state: restarted' tasks
gated on the Quadlet template's changed status so env-var updates
actually take effect on re-runs.
This commit is contained in:
Hermes Agent service account
2026-05-29 21:53:47 -05:00
parent 9e68802090
commit 72fa38e928
2 changed files with 18 additions and 0 deletions

View File

@@ -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

View File

@@ -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