MaintenanceWindow
Fonctionnalité en préparation. Cette page décrit l'interface cible pour recueillir vos retours ; rien n'est encore utilisable.
Le manifeste est accepté pour figer son format, mais aucune fenêtre n'est encore appliquée.
apiVersion | monitoring.stackngo.io/v1alpha1 |
kind | MaintenanceWindow |
| Appliqué par | sng apply ; sans effet dans cette version |
| Commandes liées | sng template gen MaintenanceWindow, sng apply, sng kind list MaintenanceWindow, sng kind delete MaintenanceWindow NAME |
À quoi ça servira
Une MaintenanceWindow décrit une période d'intervention, unique ou récurrente, pendant
laquelle les alertes de certains Monitor seront silencées, leur état affiché
« maintenance » et, par défaut, la période exclue du calcul d'uptime.
Le manifeste est validé et enregistré, mais rien ne le lit : les alertes partent normalement,
la page de statut n'affiche pas d'état de maintenance, l'uptime n'est pas corrigé et le
status reste vide. Pour une intervention, suspendez les moniteurs concernés
(paused: true) puis réactivez-les.
Exemple minimal
apiVersion: monitoring.stackngo.io/v1alpha1
kind: MaintenanceWindow
metadata:
name: samedi-soir
spec:
monitors: [api]
schedule:
cron: "0 22 * * 6"
duration: 2h
sng apply samedi-soir.yml
Exemple complet commenté
apiVersion: monitoring.stackngo.io/v1alpha1
kind: MaintenanceWindow
metadata:
name: migration
spec:
monitors: [api, www] # moniteurs visés, par leur nom (100 au plus)
schedule:
start: "2026-10-10T22:00:00Z" # occurrence unique — ou cron, pas les deux
# cron: "0 22 * * 6" # récurrence, cron à 5 champs
duration: 90m # durée : <entier>m ou <entier>h
timeZone: Europe/Paris # fuseau du cron (défaut Europe/Paris)
excludeFromUptime: true # exclura la fenêtre du calcul d'uptime (défaut true)
Champs
Règles de validation croisées
Le schéma refuse, dès sng apply :
monitorsabsent ;selector: les moniteurs se désignent par leur nom dansmonitors(un moniteur ne porte pas de labels) ;schedule.startetschedule.cronensemble, ou aucun des deux ;schedule.durationabsente ou hors de la forme<entier>m/<entier>h;- plus de 100
monitors, un nom de moniteur qui n'est pas un label DNS, uncronde plus de 100 caractères, untimeZonede plus de 64 caractères.
La syntaxe du cron et l'existence des moniteurs ne sont pas vérifiées dans cette version.
MaintenanceWindow
MaintenanceWindow planifie une maintenance pendant laquelle vos monitors n'envoient pas d'alerte.
| Champ | Description | Défaut | Validation |
|---|---|---|---|
apiVersion string | monitoring.stackngo.io/v1alpha1 | ||
kind string | MaintenanceWindow | ||
metadata ObjectMeta | Seul metadata.name est à renseigner (nom de la ressource dans votre tenant). | ||
spec MaintenanceWindowSpec | |||
status MaintenanceWindowStatus |
MaintenanceWindowSpec
MaintenanceWindowSpec : période planifiée pendant laquelle les alertes des monitors visés sont suspendues. Les fenêtres de maintenance ne sont pas encore appliquées dans cette version.
| Champ | Description | Défaut | Validation |
|---|---|---|---|
monitors string array | Noms des Monitor concernés (exclusif avec selector). | MaxItems: 100 items:Pattern: ^[a-z0-9]([-a-z0-9]\{0,61\}[a-z0-9])?$ Optional: {} | |
selector LabelSelector | Monitor concernés, choisis par leurs labels (exclusif avec monitors). | Optional: {} | |
schedule MaintenanceSchedule | Planification de la fenêtre. | ||
excludeFromUptime boolean | Exclut la fenêtre du calcul d'uptime. | true |
MaintenanceWindowStatus
MaintenanceWindowStatus : état de la fenêtre de maintenance.
| Champ | Description | Défaut | Validation |
|---|---|---|---|
active boolean | Indique si une fenêtre est en cours. | Optional: {} | |
nextStart Time | Début de la prochaine fenêtre. | Optional: {} | |
silenceIDs string array | Identifiants des suspensions d'alertes en cours (réservé à la plateforme). | Optional: {} | |
conditions Condition array | Conditions de la fenêtre (Ready…), avec leur reason et un message lisible. | Optional: {} |
MaintenanceSchedule
MaintenanceSchedule : occurrence unique (start) ou récurrente (cron).
| Champ | Description | Défaut | Validation |
|---|---|---|---|
start Time | Début d'une fenêtre unique (exclusif avec cron). | Optional: {} | |
cron string | Expression cron à 5 champs. | MaxLength: 100 Optional: {} | |
duration string | Durée de la fenêtre, en minutes ou en heures (ex. 30m, 2h). | Pattern: ^([1-9][0-9]*)(m|h)$ | |
timeZone string | Fuseau horaire de start et de cron (défaut : Europe/Paris). | Europe/Paris | MaxLength: 64 |
Statut et conditions
Le status prévoit active (fenêtre en cours), nextStart (prochaine occurrence),
silenceIDs et conditions. Aucun de ces champs n'est renseigné dans cette version.
Ce qui se passe quand vous supprimez
sng kind delete MaintenanceWindow NAME retire le manifeste. Dans cette version, une fenêtre de
maintenance n'a d'effet ni sur les moniteurs, ni sur les alertes, ni sur la page de statut :
la créer ou la supprimer ne change rien de visible.
Erreurs fréquentes
| Symptôme | Cause | Correction |
|---|---|---|
sng apply refuse : spec.selector non accepté : utilisez spec.monitors | Moniteurs choisis par labels | Les nommer dans monitors |
sng apply refuse : monitors ou selector : exactement un des deux | monitors absent | Nommer les moniteurs dans monitors |
sng apply refuse : start ou cron : exactement un des deux | Les deux donnés, ou aucun | En garder un |
sng apply refuse sur duration | 1h30m ou 90 | Une seule unité : 90m |
| Alertes reçues pendant la fenêtre | Les fenêtres ne sont pas encore appliquées | Suspendre les moniteurs (paused: true) |
Voir aussi
- Guide : Page de statut — fenêtres de maintenance
- Autres kinds :
Monitor,NotificationChannel,StatusPage