Zum Inhalt

Polycrate API 0.11.30

Release-Datum: 8. Februar 2026
Typ: Feature-Release

Highlights

Diese Version bringt umfangreiche neue Features fuer SLO/SLA Breach-Tracking, automatisches Operator-Deployment, K8sCluster API Endpoint Monitoring, Backup Retention, Ceph-Metriken und mehrere Bugfixes.

  • ServiceLevelBreach Model -- Materialisierte Breach-Records statt Live-Berechnung
  • Automatisches Operator-Deployment auf alle K8sCluster via Reconciliation
  • K8sCluster API Endpoint Monitoring ueber das allgemeine Endpoint-Monitoring-System
  • Backup Retention via SystemConfig + Celery Task mit WARNING Condition
  • Ceph Bucket Metriken via VictoriaMetrics statt Admin API
  • State-Migration von READY/DEGRADED/DOWN auf OK/WARNING/CRITICAL

Artefakte

Docker Images

docker pull cargo.ayedo.cloud/polycrate/polycrate-api:0.11.30

Deployment

polycrate run polycrate-api deploy

Neue Features

ServiceLevelBreach Model

Neues Model ServiceLevelBreach materialisiert Breach-Events statt sie bei jedem Dashboard-Aufruf live zu berechnen. Das fuehrt zu signifikant besserer Performance im SLO Dashboard (von 3-8s auf unter 100ms) und ermoeglicht historische Breach-Analyse.

  • Breaches werden waehrend Reconciliation automatisch erzeugt und aufgeloest
  • Unterstuetzt SLO- und SLA-Breaches mit separatem Tracking
  • Historische Daten fuer Reporting (Beginn, Ende, Dauer)
  • Ersetzt den zuvor geplanten Redis-Cache-Ansatz

Automatisches Operator-Deployment

Der Polycrate Operator wird automatisch auf alle registrierten K8sCluster ausgerollt. Die Reconciliation prueft den Deployment-Status und fuehrt bei Bedarf Installation oder Updates durch.

  • Artifact-Version und Package ueber SystemConfig konfigurierbar
  • Direkte Verknuepfung Agent <-> K8sApp via FK
  • Bestehende manuelle Deployments werden nahtlos uebernommen
  • Config-Hash-basierte Update-Erkennung

K8sCluster API Endpoint Monitoring

K8sCluster API Server Erreichbarkeit wird jetzt ueber das allgemeine Endpoint-Monitoring-System ueberwacht statt per Soft-Check waehrend der Reconciliation.

  • Automatische Erstellung eines HTTP-Endpoints aus der Kubeconfig
  • Multi-Agent-Monitoring mit historischen Verfuegbarkeits- und Latenz-Daten
  • KUBECONFIG_API_SERVER_UNREACHABLE Condition wird aus dem Endpoint-Status abgeleitet

Backup Retention via SystemConfig

Taeglich prueft ein Celery Beat Task alle Backups auf ueberschrittenes Ablaufdatum. Retention-Defaults sind pro Backup-Kind (cluster, app, database) via SystemConfig konfigurierbar.

  • BACKUP_RETENTION_EXCEEDED WARNING Condition auf betroffene Backups
  • Automatische Entfernung der Condition bei Loeschung durch den Operator
  • Konfigurierbare Retention-Defaults pro Kind

Ceph Bucket Metriken via VictoriaMetrics

Ceph-Buckets (rook-ceph) holen Metriken jetzt ueber VictoriaMetrics statt per RadosGW Admin API. Das vereinheitlicht die Metrik-Abfrage mit MinIO-Buckets und eliminiert die direkte Abhaengigkeit von Cluster-Credentials.

Endpoint-K8sApp-Assoziation

Neues FK-Feld k8s_app auf dem Endpoint Model. Wird vom Polycrate Operator via Ingress Label Discovery gesetzt und ermoeglicht praezisere Downtime Detection pro K8sApp.

LoadbalancerInstance consumer_meta + Label Propagation

  • Neues consumer_meta JSONField fuer beliebige Consumer-Metadaten
  • Anzeige im Info-Drawer als JSON-Code-Collapsible
  • Label-Propagation-Analyse bei Multi-Region-Deployments
  • ip_address Label automatisch gesetzt

Keycloak IDs fuer Contact/ContactGroup

keycloak_user_id (Contact) und keycloak_group_id (ContactGroup) sind jetzt per API read-write exponiert. Ermoeglicht externen Tools die direkte Zuordnung zwischen Keycloak-Entitaeten und Polycrate-Objekten.

Maintenance reference_url + Drawer Fixes

  • Neues reference_url URLField fuer externe Referenzen (z.B. Ticket-URLs)
  • Anzeige in Classification Box und Info Drawer
  • Bugfixes: Notification-Felder, Progress-Status im Drawer

Bugfixes

State-Migration OK/WARNING/CRITICAL

Migration des State-Systems von READY/DEGRADED/DOWN auf OK/WARNING/CRITICAL. Die neuen States bilden die Semantik gaengiger Observability-Tools ab (Nagios, Prometheus, Icinga, Grafana).

Alt Neu Semantik
READY OK Objekt funktionsfaehig
DEGRADED WARNING Conditions vorhanden, funktionsfaehig
DOWN CRITICAL Nicht verfuegbar

Hinweis: DB-Migration erforderlich.

Criticality Cleanup

Verbleibende tier-* Referenzen in Views, Templates, JS und criticality_weight Property auf high/medium/low umgestellt (Nachtrag zu 0.11.28).

Flowbite drawer-right Console-Errors

Race Condition zwischen Flowbite Auto-Init und manuellem drawerManager behoben. Keine Console-Warnings mehr beim Seitenladen.

Maintenance Timeline Early Return Bug

Fehlende End-Events ("Maintenance ended", "Ended notification sent") in der Timeline durch Early Return in run_reconciliation() behoben.

Betroffene Komponenten

Komponente Aenderung
ServiceLevelBreach Neues Model fuer materialisierte Breach-Records
Operator Auto-Deployment Automatisches Deployment + Agent-K8sApp FK
K8sCluster API Endpoint Monitoring via Endpoint-System
Backup Retention Pruefung via SystemConfig + Celery Task
S3Bucket Ceph-Metriken via VictoriaMetrics
Endpoint K8sApp FK-Feld
LoadbalancerInstance consumer_meta JSONField + Label Propagation
Contact/ContactGroup Keycloak IDs read-write
Maintenance reference_url + Drawer Fixes + Timeline Fix
ManagedObject State-Migration OK/WARNING/CRITICAL
Criticality Cleanup tier-* auf high/medium/low
Flowbite drawer-right Console-Error Fix

Migration

DB-Migrationen erforderlich fuer:

  • ServiceLevelBreach Model (neues Model)
  • Endpoint.k8s_app FK (neues Feld)
  • LoadbalancerInstance.consumer_meta JSONField (neues Feld)
  • Contact.keycloak_user_id / ContactGroup.keycloak_group_id (Serializer-Aenderung, Model-Felder ggf. schon vorhanden)
  • Maintenance.reference_url URLField (neues Feld)
  • State-Migration READY/DEGRADED/DOWN -> OK/WARNING/CRITICAL (Data-Migration)
  • Operator Auto-Deployment: Agent-K8sApp FK + Through-Table
# Migrationen erstellen und ausfuehren
make make-migrations
make migrate

polycrate-api Block

Block-Version: 0.5.34

polycrate blocks push polycrate-api
polycrate run polycrate-api install