ADR-007: Renovate fuer automatische Dependency-Updates¶
| Feld | Wert |
|---|---|
| Status | accepted |
| Datum | 2026-03-21 |
| Betrifft | alle |
Kontext¶
Alle Projekte nutzen Docker-Images, GitHub Actions und teilweise Python-Pakete. Diese Abhaengigkeiten muessen regelmaessig aktualisiert werden, um Sicherheitsluecken zu schliessen und Kompatibilitaet sicherzustellen.
Manuelles Pruefen und Aktualisieren ueber mehrere Repositories hinweg ist fehleranfaellig und wird bei steigender Service-Anzahl (~40 Container) unzuverlaessig.
Entscheidung¶
Renovate wird in allen Repositories als Bot fuer automatische Dependency-Updates eingesetzt. Konfiguration:
- Patch-Updates: Auto-Merge nach erfolgreichem CI-Lauf
- Minor-Updates: PR erstellen, manuelles Review
- Major-Updates: Gruppierte PRs pro Ecosystem, manuelles Review
- Pin-Digests: Docker-Images werden auf SHA-Digests gepinnt
- Schedule: Woechentliche Update-Fenster, 7-Tage Cooldown
Alternativen¶
| Option | Ergebnis |
|---|---|
| Dependabot | GitHub-native Loesung, einfacheres Setup. Aber weniger flexibel bei Gruppierung, kein Auto-Merge auf Patch-Level, keine Docker-Compose-Unterstuetzung fuer Image-Pinning. |
| Watchtower | Aktualisiert laufende Container automatisch. Kein PR-Workflow, keine Versionskontrolle, kein CI-Gate. Gefaehrlich fuer Stabilitaet. |
| Manuell | Volle Kontrolle, aber nicht skalierbar. Bei ~40 Services und mehreren Repos werden Updates schnell vergessen. |
Konsequenzen¶
Positiv:
- Automatische PRs mit Changelog und Kompatibilitaetshinweisen
- Version-Pinning wird durch Renovate erzwungen und aktuell gehalten
- CI validiert jedes Update vor dem Merge
- Dashboard-Issue gibt Ueberblick ueber alle offenen Updates pro Repo
Negativ:
- Renovate-Konfiguration (
renovate.json) muss pro Repo gepflegt werden - Auto-Merge erfordert zuverlaessige CI-Pipeline als Gate
- Bei vielen Updates kann PR-Flut entstehen (Gruppierung hilft)