Wartungsfenster¶
Übersicht¶
Wartungsfenster (Maintenance Windows) ermöglichen die Planung von Wartungsarbeiten mit automatischer Benachrichtigung der betroffenen Kontakte und Unterdrückung von Alerts während der Wartungszeit.
graph LR
PLAN[Planung] --> ANNOUNCE[Ankündigung<br/>automatisch]
ANNOUNCE --> ACTIVE[Wartungsfenster<br/>aktiv]
ACTIVE --> END[Wartungsende<br/>Notification] Wartungsfenster erstellen¶
Über die Web-UI¶
- Navigieren Sie zu Operations → Wartungsfenster
- Klicken Sie + Neues Wartungsfenster
- Füllen Sie die Details aus:
| Feld | Beschreibung | Beispiel |
|---|---|---|
| Titel | Kurze Beschreibung | "K8s Cluster Upgrade" |
| Beschreibung | Detaillierte Informationen | "Upgrade auf K8s 1.29" |
| Start | Beginn der Wartung | 2025-01-20 02:00 |
| Ende | Ende der Wartung | 2025-01-20 04:00 |
| Betroffene Ressourcen | Welche Systeme | Cluster, Endpoints, etc. |
| Kontakte | Wer wird benachrichtigt | DevOps-Team, Kunden |
Betroffene Ressourcen¶
Wählen Sie, welche Ressourcen von der Wartung betroffen sind:
- Kubernetes Cluster: Gesamter Cluster oder spezifische Namespaces
- Endpoints: HTTP/ICMP-Endpunkte
- Hosts: Linux-Server
- Workspaces: Alle Ressourcen eines Workspaces
# Beispiel: Betroffene Ressourcen
affected_resources:
clusters:
- prod-eu-cluster
endpoints:
- api.example.com
- app.example.com
namespaces:
- production
Ankündigungen¶
Automatische Benachrichtigungen¶
Das System sendet automatisch Ankündigungen:
| Zeitpunkt | Nachricht |
|---|---|
| Beim Erstellen | "Wartungsfenster geplant für [Datum]" |
| 24h vorher | Erinnerung an bevorstehende Wartung |
| 1h vorher | Letzte Warnung vor Wartungsbeginn |
| Bei Start | "Wartung hat begonnen" |
| Bei Ende | "Wartung abgeschlossen" |
Ankündigungs-Konfiguration¶
Passen Sie an, wann und wie benachrichtigt wird:
maintenance:
announcements:
pre_announcement_hours: [24, 1] # 24h und 1h vorher
send_start_notification: true
send_end_notification: true
channels:
- email
- webhook
E-Mail-Template¶
Die Ankündigungs-E-Mails enthalten:
- Wartungszeitraum: Start und Ende
- Betroffene Systeme: Liste der Ressourcen
- Erwartete Auswirkungen: Was funktioniert nicht?
- Kontaktinformationen: Bei Fragen
- Kalender-Link: ICS-Datei zum Importieren
Alert-Unterdrückung¶
Während der Wartung¶
Alerts für betroffene Ressourcen werden automatisch unterdrückt:
graph TB
MW[Wartungsfenster aktiv] --> ALERT[Alert wird generiert]
ALERT --> CHECK{Ressource in<br/>Maintenance?}
CHECK -->|Ja| SUPPRESS[Suppress<br/>silent]
CHECK -->|Nein| NORMAL[Normal<br/>notify] Unterdrückte Alerts¶
- Kein Notification-Versand während Wartung
- Alert wird trotzdem erstellt (für Audit)
- Label:
suppressed_by_maintenance: true - Nach Wartungsende: Re-Evaluation aller Alerts
Override-Option¶
Kritische Alerts können trotzdem durchkommen:
maintenance:
alert_suppression:
enabled: true
override_severities:
- critical # Critical Alerts werden trotzdem gesendet
Wiederkehrende Wartungsfenster¶
Regelmäßige Wartungen¶
Für geplante, wiederkehrende Wartungen:
recurring_maintenance:
name: "Wöchentliches Update Window"
schedule:
day: sunday
time: "02:00"
duration: "2h"
timezone: "Europe/Berlin"
affected_resources:
- all_clusters
Cron-basierte Schedules¶
# Jeden 1. Sonntag im Monat, 03:00-05:00 UTC
recurring_maintenance:
cron: "0 3 1-7 * 0" # 1.-7. Tag, wenn Sonntag
duration: "2h"
Wartungsfenster-Dashboard¶
Übersicht¶
Das Dashboard zeigt:
- Aktive Wartungen: Aktuell laufende Fenster
- Geplante Wartungen: Kommende Wartungen
- Vergangene Wartungen: Historie
- Kalender-Ansicht: Monatliche Übersicht
Kalender-Integration¶
Wartungsfenster können in externe Kalender exportiert werden:
- iCal-Feed: URL für Kalender-Apps
- ICS-Export: Einzelne Events herunterladen
- Google Calendar: Direkter Import
Best Practices¶
Planung¶
- Rechtzeitig ankündigen: Mindestens 48h für kritische Systeme
- Off-Peak-Zeiten wählen: Nachts oder am Wochenende
- Realistische Dauer: Puffer einplanen
- Rollback-Plan: Was wenn etwas schiefgeht?
Kommunikation¶
- Klare Beschreibungen: Was wird gemacht?
- Auswirkungen beschreiben: Was funktioniert nicht?
- Status-Updates: Während langer Wartungen
- Abschlussmeldung: Bestätigung nach Ende
Dokumentation¶
# Wartungs-Checkliste
pre_maintenance:
- [ ] Backup erstellt
- [ ] Rollback-Plan dokumentiert
- [ ] Team informiert
- [ ] Wartungsfenster in API erstellt
during_maintenance:
- [ ] Änderungen durchführen
- [ ] Tests nach Änderung
- [ ] Probleme dokumentieren
post_maintenance:
- [ ] Funktionalität verifiziert
- [ ] Wartungsfenster schließen
- [ ] Post-Mortem bei Problemen
Management-Commands¶
Wartungen können auch über Management-Commands gesteuert werden:
# Anstehende Ankündigungen verarbeiten
python manage.py process_maintenance_announcements
# Start-Benachrichtigungen (15 Min vor Beginn)
python manage.py process_start_announcements --minutes 15
# End-Benachrichtigungen (5 Min nach Ende)
python manage.py process_end_announcements --minutes 5
# Dry-Run (ohne tatsächlichen Versand)
python manage.py process_maintenance_announcements --dry-run
API-Zugriff¶
Wartungsfenster erstellen¶
curl -X POST https://hub.polycrate.io/api/v1/maintenances/ \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"title": "Database Upgrade",
"description": "PostgreSQL 15 → 16 Upgrade",
"start_time": "2025-01-20T02:00:00Z",
"end_time": "2025-01-20T04:00:00Z",
"organization": "acme-corp",
"affected_resources": ["db-cluster-1"]
}'