diff --git a/STATUS.md b/STATUS.md index 9638b9b..d3cc144 100644 --- a/STATUS.md +++ b/STATUS.md @@ -2,9 +2,9 @@ -## Issues (23 open, 24 closed) +## Issues (22 open, 25 closed) -Verteilung: M1 6 · M2 13 · M4 2 · M5 2 +Verteilung: M1 6 · M2 13 · M4 2 · M5 1 | Issue | Status | Meilenstein | Priorität | Title | |---|---|---|---|---| @@ -27,7 +27,6 @@ Verteilung: M1 6 · M2 13 · M4 2 · M5 2 | [0034](docs/issues/0034-cfgmon-11-gitea-ci-rueckbau-abschliessen.md) | open | M2 | medium | CFGMON-11 — Gitea-CI-Rückbau abschließen (sicher rückbaubare Schritte) | | [0040](docs/issues/0040-neckbeard-rueckmeldungen-einreichen.md) | open | M2 | low | neckbeard-Rückmeldungen aus dem Feldtest einreichen | | [0042](docs/issues/0042-migration-in-betrieb-nehmen-push-spiegel-schedule.md) | open | M2 | high | Migration in Betrieb nehmen: Push, erster Spiegel-Lauf, CI-Schedule | -| [0044](docs/issues/0044-sops-secret-aenderung-startet-dienst-nicht-neu.md) | open | M5 | low | SOPS-Values-Secret-Änderung startet den konsumierenden Dienst nicht neu | | [0045](docs/issues/0045-report-event-kein-kontaktweg-fuer-melder.md) | open | M1 | low | Inhalts-Meldung führt ins Leere: kein Kontaktweg für Melder | | [0051](docs/issues/0051-cve-remediation-pass.md) | open | M5 | high | CVE-Remediation-Pass: Schwachstellen-Report abarbeiten | | [0053](docs/issues/0053-historien-durchgang-nicht-kanonische-commits.md) | open | M2 | low | Historien-Durchgang: acht nicht-kanonische Commits mitziehen | diff --git a/docs/issues/0044-sops-secret-aenderung-startet-dienst-nicht-neu.md b/docs/issues/0044-sops-secret-aenderung-startet-dienst-nicht-neu.md index 1565b2b..cf11349 100644 --- a/docs/issues/0044-sops-secret-aenderung-startet-dienst-nicht-neu.md +++ b/docs/issues/0044-sops-secret-aenderung-startet-dienst-nicht-neu.md @@ -1,7 +1,7 @@ --- type: issue id: "0044" -status: open +status: done created: 2026-08-11 milestone: M5 priority: low @@ -87,3 +87,32 @@ ADR-0011-Regel (aktiv verifizieren) für die drei Nachzügler gelten lassen. Wer ist, hat mit Reloader einen sauberen Weg — die Chart erlaubt Annotationen je Komponente (`matrixAuthenticationService.annotations`, schema-geprüft), sie landen am Deployment **und** am Pod-Template. + +## Geschlossen 2026-08-15 — Entscheidung sorb: kein Reloader + +Die Abdeckungskarte oben ist das Ergebnis; ein zusätzlicher Controller wird **bewusst nicht** +eingebaut. + +**Begründung.** Das Ziel des Issues — „Änderungen an einem konsumierten Values-Secret lösen +automatisch einen Rollout aus" — ist für die Dienste, bei denen sich Secrets real bewegen, +**bereits erfüllt**, nur anders als vermutet: + +- **MAS und die übrigen ESS-Komponenten** über die Hash-Labels der Chart am Pod-Template + (live verifiziert), zusammen mit `interval: 1m` am HelmRelease. +- **coturn und Synapse** über den `rotated-at`-Bump des Rotations-CronJobs — der einzige Fall + mit regelmäßiger, unbeaufsichtigter Secret-Änderung, und genau deshalb schon gelöst (#38). + +Übrig bleiben `draupnir`, `wikijs` und `concierge-bot`: Secrets, die sich **selten und stets +durch bewusstes Handeln** ändern — also in dem Moment, in dem ohnehin jemand hinschaut und die +ADR-0011-Regel (aktiv verifizieren) greift. Dafür einen Dauer-Controller mit Rechten, beliebige +Deployments zu patchen, in die Produktion zu stellen, ist der schlechtere Tausch: bleibende +Angriffsfläche und Wartungslast gegen ein Restrisiko, das genau dort klein ist, wo es zählt. + +**Das eigentliche Ergebnis dieses Issues ist die Karte, nicht der Einbau.** Vorher wusste +niemand, dass MAS abgedeckt ist — die Annahme war das Gegenteil, und ein Reloader wäre auf ein +bereits gelöstes Problem gesetzt worden. + +**Falls die Entscheidung später kippt** (etwa wenn ein Dienst dazukommt, dessen Secret +automatisiert rotiert): Der Weg ist vorbereitet — die ESS-Chart erlaubt Annotationen je +Komponente (`matrixAuthenticationService.annotations`, schema-geprüft), und sie landen sowohl am +Deployment als auch am Pod-Template, also genau dort, wo stakater/Reloader sie liest.