Zum Inhalt

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)