Infrastruktur-Autonomie â Fortschrittsbericht Juli 2026
Die openDesk-Edu-Bereitstellung am HRZ Marburg hat diesen Monat zwei bedeutende Meilensteine erreicht: die vollstÀndige SSO-Integration aller Dienste und eine weitgehende Infrastruktur-Autonomie von externen Registries.
Stalwart v0.16 ersetzt Postfix
Nach monatelanger Planung wurde Stalwart Mail Server von v0.15 auf v0.16.15 aktualisiert und hat die Rolle des primĂ€ren Mail Transfer Agents (MTA) ĂŒbernommen. Postfix wurde deaktiviert.
Neuerungen:
- 9 Listener â SMTP (25), Submission (587), IMAP (143, 993), POP3 (110, 995), Sieve (4190) und JMAP (8080) â alle aktiv
- Konfigurationsformat â von TOML zu JSON mit RocksDB-Backend gewechselt
- Pfade â auf
/var/lib/stalwart/(Daten) und/etc/stalwart/config.json(Konfiguration) vereinheitlicht - Probes â von httpGet (kein
/api/health-Endpunkt in v0.16) auf TCP-Socket-Probes umgestellt - Sicherheit â
allowPrivilegeEscalation=true, leerescapabilities.drop(erforderlich fĂŒr v0.16 auf K3s v1.32.3)
Dienste nutzen nun Stalwart als SMTP-Relay:
- SOGo â
smtp://stalwart-stalwart:587 - OpenCloud â
stalwart-stalwart.opendesk.svc.cluster.local:587 - Alle weiteren benachrichtigungsversendenden Dienste
Einheitliches SSO per Keycloak
Jeder Dienst authentifiziert sich jetzt ĂŒber den zentralen Keycloak-Realm (opendesk):
| Client-ID | Dienst | Status |
|---|---|---|
opendesk-opencloud |
OpenCloud Cloud-Speicher | â |
stalwart |
Stalwart Mailserver | â |
sogo |
SOGo Groupware | â |
opendesk-matrix |
Element/Synapse Chat | â |
opendesk-xwiki |
XWiki Wissensdatenbank | â |
univention/oidc |
Portal (Nubus) | â |
Der Keycloak-Bootstrap-Chart (opendesk-keycloak-bootstrap) wurde repariert (DNS-Problem ums-keycloak..svc.cluster.local â ums-keycloak.opendesk.svc.cluster.local) und erstellt nun automatisch alle OIDC-Clients und benutzerdefinierten Scopes.
ArgoCD-GitOps-Erweiterung
Die ArgoCD-Verwaltung wurde von 2 auf 27 Edu-Anwendungen erweitert, indem CMP-basierte (Helmfile-Plugin) Apps in Helm-basierte Child-Apps umgewandelt wurden:
- Helm-basiert (verwaltet) â opencloud, stalwart, sogo, etherpad, portal-entries (5)
- CE-verwaltet (Synced) â 22 Apps
- CMP-basiert (kosmetisch Unknown) â 23 Edu-Apps (laufen einwandfrei, Sync-Status ist kosmetisch)
Herausforderungen:
- Chart-Fehler behoben â fehlende
fullname-Vorlage in_helpers.tpl(ilias, etherpad) bitnami/kubectl:1.32-Tag existiert nicht (404) â durch eigenes Image ersetzt- Init-Container funktionieren nicht in abgeschotteten Netzwerken â
initSchemadeaktiviert - Helm-Hooks mit OCI-Registry-Images blockieren Sync â
skipOidcHook-Option hinzugefĂŒgt
Eigene Infrastruktur-Repos
Zur Entkopplung von externen Registries, die vom HRZ-Cluster-Netzwerk aus nicht erreichbar sind, wurden vier unabhÀngige Repositories erstellt:
| Repository | GitHub | GitLab | Zweck |
|---|---|---|---|
| opendesk-kubectl | tobias-weiss-ai-xr/opendesk-kubectl | tbsweiss/opendesk-kubectl | Minimales kubectl (~30MB, Alpine-basiert) |
| opendesk-helm-charts | tobias-weiss-ai-xr/opendesk-helm-charts | tbsweiss/opendesk-helm-charts | Gepatche Charts + OCI-Spiegelwerkzeuge |
| opendesk-sogo-image | tobias-weiss-ai-xr/opendesk-sogo-image | tbsweiss/opendesk-sogo-image | SOGo mit OIDC/SSO-UnterstĂŒtzung |
| opendesk-collab-dashboard | tobias-weiss-ai-xr/opendesk-collab-dashboard | tbsweiss/opendesk-collab-dashboard | Dashboard mit Ăbersicht aller Edu-Dienste |
Jedes Repository enthÀlt:
- Dockerfile mit Metadaten und Lizenz
- Makefile mit
build- undpush-Zielen - GitHub-Actions- und GitLab-CI-Pipelines
- AusfĂŒhrliche README
Das kubectl-Image wurde nach registry.gitlab.com/tbsweiss/opendesk-kubectl:1.32.3 und registry.hrz.uni-marburg.de/opendesk/kubectl gepusht und ersetzt bitnami/kubectl (Tag 1.32 nicht gefunden) sowie lachlanevenson/k8s-kubectl.
Monitoring und Backups
- 28/29 Vertragstests bestanden (1 Ăbersprung: Stalwart-Versionserkennung kosmetisch)
- 11 Prometheus-Alarmregeln fĂŒr Dienststatus, Kontingenterschöpfung, Backup-Fehler
- k8up-Operator â 0 Neustarts, BinĂ€r via Init-Container bereitgestellt
- Backup-PlĂ€ne â
backup-live(RWX-PVCs, tÀglich 00:42),backup-stalwart(RWO via Label, tÀglich 01:00) - Alle 29 RWO-PVCs mit
k8up.io/exclude: trueannotiert
Ausblick
- Smarthost-Relay â Stalwart-Auslieferung ĂŒber den UniversitĂ€ts-MX-Relay konfigurieren
- Helm-Chart-OCI-Spiegel â zwischengespeicherte Charts in die GitLab-Container-Registry ĂŒbertragen
- GitHub-Container-Registry â PAT-Berechtigungen fĂŒr ghcr.io-Pushes korrigieren
- Weitere ArgoCD-Konvertierungen â verbleibende CMP-basierte Apps auf Helm-basiert umstellen
- Leistungsoptimierung â Ressourcenoptimierung fĂŒr 76+ laufende Dienste
Betrieben auf K3s v1.32.3 · 9 Knoten · Ceph-CSI-Speicher · HRZ Marburg