Polycrate API 0.15.0 released: Bundled Feature Release mit 126 Changes
ayedo Redaktion 3 Minuten Lesezeit

Polycrate API 0.15.0 released: Bundled Feature Release mit 126 Changes

Polycrate API 0.15.0 ist ein grosses Bundled-Release mit 126 Changes seit 0.14.17: User/Contact-Migration mit Keycloak, Artifacts-zu-Blocks-Refactoring abgeschlossen, externe DNS via Lexicon, K8sVolume und DNSZone als Productized Models, Managed Object Dashboard flaechendeckend, generisches RBAC und Labels via OpenAPI.

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

Vollstaendige Release Notes

Pflicht-Schritte nach Upgrade

  1. polycrate-operator-Block upgraden — ohne Upgrade wird installed_version nicht korrekt propagiert
  2. API-/CLI-Clients regenerieren — OpenAPI-Schema hat breaking-artige Aenderungen bei K8sApp und /api/v1/contacts//api/v1/users/
  3. SystemConfig-Defaults setzendefault_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 →

Ähnliche Artikel