Vorher: edgeguard-scheduler war 60s-sleep-Stub. LE-Certs liefen nach 90 Tagen ab und mussten manuell re-issued werden. Jetzt: * internal/services/certrenewer — Pipeline (find expiring → ACME-Issue → certstore.WriteCombined → Repo.Upsert → haproxy reload). Kapselt was der /tls-certs/issue-Handler macht, nur DB-driven für N Certs. * edgeguard-scheduler nutzt acme.Service + tlscerts.Repo + certrenewer. Tick alle 6h, Threshold 30 Tage Restlaufzeit. Sofort-Run bei Startup damit eine frisch eingespielte Box auch ohne 6h-Wartezeit prüft. * Issuer == "letsencrypt" als Filter — manuell hochgeladene PEMs bleiben unangetastet (Operator owns lifecycle). * Errors landen in tls_certs.last_error, retry beim nächsten Tick (transiente ACME-Failures self-heal). * systemd-Unit edgeguard-scheduler.service: ReadWritePaths um /etc/edgeguard erweitert (für Cert-PEM-Writes), NoNewPrivileges auf false (sudo systemctl reload haproxy braucht setuid). Spiegelt edgeguard-api-Unit. Version 1.0.16. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
29 lines
671 B
Desktop File
29 lines
671 B
Desktop File
[Unit]
|
|
Description=EdgeGuard Scheduler (cron-like jobs)
|
|
Documentation=https://git.netcell-it.de/projekte/edgeguard-native
|
|
After=edgeguard-api.service
|
|
Requires=edgeguard-api.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=edgeguard
|
|
Group=edgeguard
|
|
ExecStart=/usr/bin/edgeguard-scheduler
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
|
|
NoNewPrivileges=false
|
|
ProtectSystem=strict
|
|
ProtectHome=true
|
|
ProtectKernelTunables=true
|
|
ProtectKernelModules=true
|
|
ProtectControlGroups=true
|
|
PrivateTmp=true
|
|
PrivateDevices=true
|
|
RestrictAddressFamilies=AF_UNIX AF_INET AF_INET6
|
|
SystemCallFilter=@system-service
|
|
ReadWritePaths=/etc/edgeguard /var/lib/edgeguard /var/log/edgeguard
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|