Polycrate API 0.15.0 ist das erste grosse Bundled-Release seit 0.14.17 und buendelt 126 Changes. Kernthemen sind die User/Contact-Migration mit automatischer Keycloak-Provisionierung, das abgeschlossene Artifacts-zu-Blocks-Refactoring, externe DNS-Zonen via python-lexicon, K8sVolume und DNSZone als Productized Models, das flaechendeckend ausgerollte Managed Object Dashboard und ein neues generisches RBAC-Permission-System.
User- und Contact-Migration mit Keycloak
Contacts werden zu First-Class-Usern: Bei User.save() werden Keycloak-User automatisch provisioniert, wenn KEYCLOAK_INTEGRATION_ENABLED=true. Fehler beim Keycloak-Sync blockieren save() nicht mehr, sondern werden sauber geloggt — die API bleibt unter Keycloak-Ausfaellen verfuegbar. Eine neue User-Admin-UI mit API-Endpoints unter /api/v1/users/ ersetzt den bisherigen Contact-Endpoint.
Artifacts → Blocks Refactoring abgeschlossen
Operator- und Loadbalancer-Lookup laufen jetzt ueber Block statt Artifact. K8sApp.installed_version ist Block-basiert; Auto-Deployment aktualisiert die Version korrekt. ArtifactHub-Integration und ArtifactRepository-Discovery sind entfernt; stattdessen gibt es die DataSource polycrate-hub fuer Template-Block-Imports. Der polycrate-operator-Block muss auf eine kompatible Version aktualisiert werden, damit das Block-basierte Lookup funktioniert.
Externe DNS-Zonen via Lexicon
DNSZones unterstuetzen jetzt zwei Arten: internal (PowerDNS) und external (beliebige Provider via python-lexicon — Route53, Cloudflare, Hetzner-DNS, etc.). Provider-Credentials werden zentral verwaltet; Records synchronisieren bidirektional mit dem externen DNS-Backend.
K8sVolume & DNSZone als Productized Models
K8sVolume bekommt automatische Product-Zuordnung via SystemConfig.default_k8s_volume_product und einen neuen get_billing_quantity-Hook fuer usage-basierte Abrechnung. DNSZone ist ebenfalls productized — mit separaten Produkten fuer internal und external Zonen. OrganizationProduct.active_from wird bei Auto-Reconciliation korrekt gesetzt (Proration-Bug-Fix).
Managed Object Dashboard flaechendeckend
16 Detail-UIs wurden auf das einheitliche Managed Object Dashboard migriert: K8sApp, Workspace, S3Cluster, Endpoint, S3Bucket, Host, LoadbalancerInstance, K8sVolume, K8sCluster, Project, Block, Note, DataSource, ActionRun, Downtime, Credential. Einheitliches Tab-Layout, konsistente Conditions/Labels/Annotations-Tabs und neue Metrics-Tabs fuer Host, LoadBalancer, K8sVolume und K8sCluster.
Generisches RBAC-Permission-System
Einheitliche Permission-Checks fuer alle ManagedObjects — API und UI teilen das gleiche Permission-System. End-to-end-getestet mit Nicht-Admin-Usern. Credentials bekommen einen eigenen Top-Level-Sidebar-Eintrag und ein Managed-Object-Dashboard-Detail-UI. User-Assignment auf ManagedObjects ist auf Superuser beschraenkt.
Labels via OpenAPI als Single Source of Truth
Label-Konstanten werden via OpenAPI-Schema an API und CLI ausgeliefert — keine hart kodierten Label-Keys mehr. LabelKey-Enum erweitert um criticality, priority und controlled_by. Der interne Log Explorer V2 wurde auf die neuen polycrate_*-Keys migriert; externe VictoriaLogs-/Grafana-Dashboards muessen nur dann angepasst werden, wenn sie direkt auf *.polycrate.io/*-Labels zugreifen.
Weitere Highlights
- Vydeo-Integration erweitert — Meeting-Notes mit Vydeo-Sync, granulare Trigger-Steuerung, Cancel bei Note-Resolve/Delete, User-Sync als Celery-Task
- Downtime-Timeline Graph + SLO-Filter — SRE/SLO-Views bekommen Custom Time Ranges und verbesserte Reset-Toolbar
- S3Cluster Capacity-Tracking via Prometheus,
allow_new_buckets-Feld, S3Bucket Agent-Permissions + Auto-Assignment - K8sCluster
kind=loopback— lokale Setups ohne echten Cluster - Endpoint Auto-Do-Not-Monitor — dauerhaft fehlerhafte Endpoints werden automatisch aus dem Monitoring genommen
- Dashboard-Revamp — Tab-Layout, System-Uebersicht, archivierte Objekte gefiltert, Kontextmenues fuer Add-Note / Execute-Actions / Restart
/portal/entfernt — Organization-Portal-Code vollstaendig rueckgebaut; Bookmarks liefern 404
Pflicht-Schritte nach Upgrade
- polycrate-operator-Block upgraden — ohne Upgrade wird
installed_versionnicht korrekt propagiert - API-/CLI-Clients regenerieren — OpenAPI-Schema hat breaking-artige Aenderungen bei
K8sAppund/api/v1/contacts/→/api/v1/users/ - SystemConfig-Defaults setzen —
default_k8s_volume_product,default_external_dns_zone_product,default_internal_dns_zone_product; falls Keycloak/Vydeo genutzt: entsprechende Integrations-Keys
Datenbank-Backup vor Upgrade erstellen — die Release enthaelt mehrere Data-Migrations (Contact→User, DNSZone.kind, OrganizationProduct.active_from, K8sVolume.product).
polycrate-api Block
Der polycrate-api Block wird zeitgleich aktualisiert (siehe Block-CHANGELOG).
polycrate pull cargo.ayedo.cloud/ayedo/k8s/polycrate-api
polycrate run polycrate-api install
Jetzt aktualisieren
polycrate run polycrate-api install
Oder laden Sie das Docker Image direkt:
docker pull cargo.ayedo.cloud/polycrate/polycrate-api:0.15.0
Polycrate API ist die zentrale Management-Plattform von ayedo fuer Multi-Cluster-Kubernetes-Umgebungen. Mehr erfahren →