Wire conditional restart for Traefik and update setup-all to force restarts

- Traefik's service list entry now uses the `traefik_restart_necessary`
  variable (computed by the Traefik role) instead of hardcoded `true`,
  so it is only restarted when its config, systemd unit, or image changed.

- `just setup-all` now passes
  `devture_systemd_service_manager_conditional_restart_enabled=false`
  to force unconditional restarts, matching its "full setup" semantics.

- Document the conditional restart behavior in docs/just.md.

Some benchmarks follow for `just install-service traefik -l matrix.example.com`
when Traefik settings did not change and a restart is not really necessary:

- Before:
  - total time: 56 seconds 🐌
  - Traefik restarted: yes 
  - Services that depend on Traefik restarted: yes; all of them restarted 

- After:
  - total time: 27 seconds 
  - Traefik restarted: no 
  - Services that depend on Traefik restarted: no; none restarted 

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Slavi Pantaleev
2026-02-13 12:24:51 +02:00
parent af193043ab
commit 9accc848c4
3 changed files with 12 additions and 2 deletions

View File

@@ -886,7 +886,7 @@ devture_systemd_service_manager_services_list_auto: |
([{
'name': (traefik_identifier + '.service'),
'priority': 250,
'restart_necessary': true,
'restart_necessary': (traefik_restart_necessary | bool),
'groups': ['matrix', 'traefik', 'reverse-proxies'],
}] if traefik_enabled else [])
+