From 20cfeae0a8f58b3d4f29881206610dfdb0ebf50a Mon Sep 17 00:00:00 2001 From: Thore Cimbal Date: Fri, 21 Aug 2026 12:00:00 +0000 Subject: [PATCH] =?UTF-8?q?docs:=20slice=202=20=E2=80=94=20the=20pointer?= =?UTF-8?q?=20holds=20and=20class=20B=20keeps=20one=20destination=20each?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit rohana now resolves to 10.0.0.3 from inside the cluster and TLS still validates over that path, both measured from a pod. wikijs reaches exactly that one address and nothing else; a triggered synapse-backup ran through and wrote its archive, so the storage box allowance carries. Nine open workloads became five. The DNS pointer needed a step the design did not know about. The ConfigMap is mounted optional, and when it does not exist at pod start the kubelet does not fill it in later - CoreDNS kept reporting the missing import for two and a half minutes. A restart was required, and with maxUnavailable 1 on a single replica a rollout restart would have meant a cluster-wide DNS gap. Scaled to two instead, let the new pod load the zone, removed the old one, scaled back. DNS was served at every moment. Co-Authored-By: Claude Opus 5 Claude-Session: https://claude.ai/code/session_01F2Q4Ri8NGwyTZzScvKnWFM --- docs/design/2026-08-21-egress-vollstaendig.md | 44 +++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/docs/design/2026-08-21-egress-vollstaendig.md b/docs/design/2026-08-21-egress-vollstaendig.md index e9b527e..cb6cb75 100644 --- a/docs/design/2026-08-21-egress-vollstaendig.md +++ b/docs/design/2026-08-21-egress-vollstaendig.md @@ -408,4 +408,48 @@ für kaputt, während er nur langsam ist. **Status:** `DONE` +> **STOP — Slice-Review.** Freigegeben durch sorb, 2026-08-21. + +### Slice 2 — DNS-Zeiger und Welle 2: Klasse B + +- [x] **Zeiger setzen** — files: `apps/base/infra/coredns-custom.yaml` — + verify: Auflösung und TLS aus einem Pod — done. +- [x] **Welle 2 ausrollen** — files: `apps/production/networkpolicy.yaml` — + verify: Sperre und Erlaubnis je gegengeprüft — done. + +**Evidence.** + +Der Zeiger wirkt: `rohana.axion1337.de -> 10.0.0.3`, und die TLS-Prüfung +geht über diesen Weg durch — beides aus einem Pod gemessen, nicht am +Manifest gelesen. + +Aus `wikijs`, nach der Welle: + +``` +CoreDNS (Positivkontrolle): ERREICHBAR +rohana privat (erlaubt): ERREICHBAR +Storage Box (nicht erlaubt): blockiert +1.1.1.1 (nicht erlaubt): blockiert +rohana oeffentlich: blockiert +``` + +Für die Job-artigen greift die Auswahl erst beim nächsten Lauf, also wurde +einer ausgelöst: `synapse-backup` lief **erfolgreich** durch und schrieb +sein Archiv — die Storage-Box-Erlaubnis trägt. + +Bestand: von neun auf **fünf**. Offen bleiben nur noch die echt breiten: +`synapse-main`, `matrix-authentication-service`, `matrix-rtc-sfu`, +`coturn`, `clamav`. + +⚠️ **Der DNS-Zeiger brauchte einen Handgriff, den der Entwurf nicht kannte.** +Die ConfigMap ist als *optional* eingehängt; war sie beim Start des Pods +nicht da, zieht Kubelet sie nicht nach — CoreDNS meldete zweieinhalb Minuten +lang weiter `No files matching import glob pattern`. Ein Neustart war nötig. +Weil das Deployment `maxUnavailable: 1` bei **einer** Replik führt, hätte +`rollout restart` eine clusterweite DNS-Lücke bedeutet; stattdessen auf zwei +Repliken hoch, den neuen Pod die Zone laden lassen, den alten entfernen, +zurück auf eine. Zu keinem Zeitpunkt war DNS ohne Bedienung. + +**Status:** `DONE` + > **STOP — Slice-Review.**